fix some issues; migrate to bun'
This commit is contained in:
parent
cf3d5c6d6f
commit
54293ac3a1
56 changed files with 1360 additions and 764 deletions
38
automation/build/buildBanner.ts
Normal file
38
automation/build/buildBanner.ts
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
import manifest from '../../manifest.json' assert { type: 'json' };
|
||||
|
||||
export function getBuildBanner(buildType: string, getVersion: (version: string) => string) {
|
||||
return `/*
|
||||
-------------------------------------------
|
||||
${manifest.name} - ${buildType}
|
||||
-------------------------------------------
|
||||
By: ${manifest.author} (${manifest.authorUrl})
|
||||
Time: ${new Date().toUTCString()}
|
||||
Version: ${getVersion(manifest.version)}
|
||||
-------------------------------------------
|
||||
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
||||
if you want to view the source, please visit the github repository of this plugin
|
||||
-------------------------------------------
|
||||
MIT License
|
||||
|
||||
Copyright (c) ${new Date().getFullYear()} ${manifest.author}
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
`;
|
||||
}
|
||||
57
automation/build/esbuild.config.ts
Normal file
57
automation/build/esbuild.config.ts
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
import builtins from 'builtin-modules';
|
||||
import esbuild from 'esbuild';
|
||||
import esbuildSvelte from 'esbuild-svelte';
|
||||
import sveltePreprocess from 'svelte-preprocess';
|
||||
import { getBuildBanner } from 'build/buildBanner';
|
||||
|
||||
const banner = getBuildBanner('Release Build', version => version);
|
||||
|
||||
const build = await esbuild.build({
|
||||
banner: {
|
||||
js: banner,
|
||||
},
|
||||
entryPoints: ['src/main.ts'],
|
||||
bundle: true,
|
||||
external: [
|
||||
'obsidian',
|
||||
'electron',
|
||||
'@codemirror/autocomplete',
|
||||
'@codemirror/collab',
|
||||
'@codemirror/commands',
|
||||
'@codemirror/language',
|
||||
'@codemirror/lint',
|
||||
'@codemirror/search',
|
||||
'@codemirror/state',
|
||||
'@codemirror/view',
|
||||
'@lezer/common',
|
||||
'@lezer/highlight',
|
||||
'@lezer/lr',
|
||||
...builtins,
|
||||
],
|
||||
format: 'cjs',
|
||||
target: 'es2018',
|
||||
logLevel: 'info',
|
||||
sourcemap: false,
|
||||
treeShaking: true,
|
||||
outfile: 'main.js',
|
||||
minify: true,
|
||||
metafile: true,
|
||||
define: {
|
||||
MB_GLOBAL_CONFIG_DEV_BUILD: 'false',
|
||||
},
|
||||
plugins: [
|
||||
esbuildSvelte({
|
||||
compilerOptions: { css: 'injected', dev: false, sveltePath: 'svelte' },
|
||||
preprocess: sveltePreprocess(),
|
||||
filterWarnings: warning => {
|
||||
// we don't want warnings from node modules that we can do nothing about
|
||||
return !warning.filename?.includes('node_modules');
|
||||
},
|
||||
}),
|
||||
],
|
||||
});
|
||||
|
||||
const file = Bun.file('meta.txt');
|
||||
await Bun.write(file, JSON.stringify(build.metafile, null, '\t'));
|
||||
|
||||
process.exit(0);
|
||||
65
automation/build/esbuild.dev.config.ts
Normal file
65
automation/build/esbuild.dev.config.ts
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
import esbuild from 'esbuild';
|
||||
import copy from 'esbuild-plugin-copy-watch';
|
||||
import esbuildSvelte from 'esbuild-svelte';
|
||||
import sveltePreprocess from 'svelte-preprocess';
|
||||
import manifest from '../../manifest.json' assert { type: 'json' };
|
||||
import { getBuildBanner } from 'build/buildBanner';
|
||||
|
||||
const banner = getBuildBanner('Dev Build', _ => 'Dev Build');
|
||||
|
||||
const context = await esbuild.context({
|
||||
banner: {
|
||||
js: banner,
|
||||
},
|
||||
entryPoints: ['src/main.ts'],
|
||||
bundle: true,
|
||||
external: [
|
||||
'obsidian',
|
||||
'electron',
|
||||
'@codemirror/autocomplete',
|
||||
'@codemirror/collab',
|
||||
'@codemirror/commands',
|
||||
'@codemirror/language',
|
||||
'@codemirror/lint',
|
||||
'@codemirror/search',
|
||||
'@codemirror/state',
|
||||
'@codemirror/view',
|
||||
'@lezer/common',
|
||||
'@lezer/highlight',
|
||||
'@lezer/lr',
|
||||
],
|
||||
format: 'cjs',
|
||||
target: 'es2018',
|
||||
logLevel: 'info',
|
||||
sourcemap: 'inline',
|
||||
treeShaking: true,
|
||||
outdir: `exampleVault/.obsidian/plugins/${manifest.id}/`,
|
||||
outbase: 'src',
|
||||
define: {
|
||||
MB_GLOBAL_CONFIG_DEV_BUILD: 'true',
|
||||
},
|
||||
plugins: [
|
||||
copy({
|
||||
paths: [
|
||||
{
|
||||
from: './styles.css',
|
||||
to: '',
|
||||
},
|
||||
{
|
||||
from: './manifest.json',
|
||||
to: '',
|
||||
},
|
||||
],
|
||||
}),
|
||||
esbuildSvelte({
|
||||
compilerOptions: { css: 'injected', dev: true, sveltePath: 'svelte' },
|
||||
preprocess: sveltePreprocess(),
|
||||
filterWarnings: warning => {
|
||||
// we don't want warnings from node modules that we can do nothing about
|
||||
return !warning.filename?.includes('node_modules');
|
||||
},
|
||||
}),
|
||||
],
|
||||
});
|
||||
|
||||
await context.watch();
|
||||
Loading…
Add table
Add a link
Reference in a new issue