import esbuild from "esbuild"; const isWatch = process.argv.includes("--watch"); const buildOptions = { entryPoints: ["main.ts"], bundle: true, platform: "node", format: "cjs", minify: true, external: ["obsidian", "child_process"], }; const outputFiles = ["main.js", "dist/main.js"]; if (isWatch) { const contexts = await Promise.all( outputFiles.map((outfile) => esbuild.context({ ...buildOptions, outfile })), ); await Promise.all(contexts.map((ctx) => ctx.watch())); console.log("Watching for changes..."); } else { await Promise.all(outputFiles.map((outfile) => esbuild.build({ ...buildOptions, outfile }))); }