import esbuild from "esbuild"; import process from "node:process"; import builtins from "builtin-modules"; import { denoPlugin } from "@deno/esbuild-plugin"; const banner = `/* THIS IS A GENERATED/BUNDLED FILE BY ESBUILD */ `; const prod = process.argv[2] === "production"; const context = await esbuild.context({ banner: { js: banner, }, entryPoints: ["plugin.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: "es2020", logLevel: "info", sourcemap: prod ? false : "inline", treeShaking: true, outfile: "dist/main.js", loader: { ".wasm": "binary", ".workerjs": "text", }, define: { "import.meta.url": '"obsidian-plugin"', }, plugins: [denoPlugin()], }); if (prod) { await context.rebuild(); process.exit(0); } else { await context.watch(); }