alinea
Version:
Headless git-based CMS
38 lines (36 loc) • 828 B
JavaScript
import "../../chunks/chunk-NZLE2WMY.js";
// src/cli/build/BuildEmitter.ts
import esbuild from "esbuild";
import { createEmitter } from "../util/Emitter.js";
function buildEmitter(config) {
let context;
let canceled = false;
const results = createEmitter({
onReturn() {
context?.dispose();
canceled = true;
}
});
esbuild.context({
...config,
plugins: [
...config.plugins || [],
{
name: "build-iterator",
setup(build) {
build.onStart(
() => results.emit({ type: "start", result: void 0 })
);
build.onEnd((result) => results.emit({ type: "done", result }));
}
}
]
}).then((ctx) => {
context = ctx;
if (!canceled) ctx.watch();
}, results.throw);
return results;
}
export {
buildEmitter
};