import * as esbuild from "esbuild"; import path from "path"; import { fileURLToPath } from "url"; const __dirname = path.dirname(fileURLToPath(import.meta.url)); const isProduction = process.env.NODE_ENV === "production"; const isWatch = process.argv.includes("--watch"); /** @type {import('esbuild').BuildOptions} */ const opts = { alias: { "koenig-styles": path.resolve( __dirname, "node_modules/@tryghost/koenig-lexical/dist/index.css" ), }, entryPoints: ["src/index.jsx"], bundle: true, outdir: "../static/scripts", entryNames: "editor", format: "iife", target: "es2020", jsx: "automatic", minify: isProduction, define: { "process.env.NODE_ENV": JSON.stringify( isProduction ? "production" : "development" ), }, loader: { ".svg": "dataurl", ".woff": "file", ".woff2": "file", ".ttf": "file", }, logLevel: "info", }; if (isWatch) { const ctx = await esbuild.context(opts); await ctx.watch(); console.log("Watching for changes..."); } else { await esbuild.build(opts); }