import * as esbuild from "esbuild"; import chalk from "chalk"; //todo override from cli const file = "src/bin.ts"; const runBuild = async () => { const ctx = await esbuild.context({ entryPoints: [file], bundle: true, outfile: `dist/bin.mjs`, format: "esm", platform: "node", external: ["esbuild"], banner: { js: "#!/usr/bin/env node" }, sourcemap: true, minify: false, inject: ["cjs-shim.ts"], define: { "process.env.NODE_ENV": `"development"`, }, plugins: [ { name: "worker-framework", setup(build) { // Register onLoad callback build.onEnd(async (args) => { await esbuild.build({ entryPoints: ["src/framework/workerFramework.ts"], outdir: "dist/framework", bundle: true, format: "esm", keepNames: true, platform: "node", }); }); console.log(`${chalk.green("build completed :)")} `); }, }, ], }); await ctx.watch(); }; runBuild();