import esbuild from "esbuild";
import process from "process";
import builtins from 'builtin-modules'
// import esbuildSvelte from "esbuild-svelte";		// 可能会报错，需要将`??`改成一般的三元运算符
// import sveltePreprocess from "svelte-preprocess";

const banner =
`/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/
`;

const prod = (process.argv[2] === 'production');

esbuild.build({
	plugins: [
		// esbuildSvelte({
		// 	compilerOptions: { css: true },
		// 	preprocess: sveltePreprocess(),
		// })
	],
	banner: {
		js: banner,
	},
	entryPoints: ['./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',
	watch: !prod,
	target: 'es2018',
	logLevel: "info",
	sourcemap: prod ? false : 'inline',
	treeShaking: true,
	// outdir: '../../',
	outfile: '../../main.js',
	minify: false, // 压缩，参考 1.9MB->995.8KB
}).catch(() => process.exit(1));
