import esbuild from "esbuild"; import process from "process"; import esbuildSvelte from "esbuild-svelte"; import { sveltePreprocess } from "svelte-preprocess"; import fs from "fs"; 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"; // Simple plugin to rename main.css to styles.css const renameStyles = { name: "rename-styles", setup(build) { build.onEnd(() => { if (fs.existsSync("main.css")) { fs.renameSync("main.css", "styles.css"); } }); }, }; const context = await esbuild.context({ plugins: [ esbuildSvelte({ compilerOptions: { css: "external", }, preprocess: sveltePreprocess(), }), renameStyles, ], 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: "es2022", logLevel: "info", sourcemap: prod ? false : "inline", treeShaking: true, outfile: "main.js", minify: prod, pure: prod ? ["console.debug"] : [], }); if (prod) { await context.rebuild(); process.exit(0); } else { await context.watch(); }