import esbuild from "esbuild"; import { readFileSync } from "fs"; const prod = process.argv[2] === "production"; const manifest = JSON.parse(readFileSync("manifest.json", "utf8")); const context = await esbuild.context({ entryPoints: ["src/main.ts"], bundle: true, platform: "node", 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: "es2021", logLevel: "info", sourcemap: prod ? false : "inline", treeShaking: true, outfile: "main.js", minify: prod, define: { "process.env.NODE_ENV": prod ? '"production"' : '"development"', }, }); if (prod) { await context.rebuild(); await context.dispose(); } else { await context.watch(); }