export default async function buildOnstartErrorHandler(params) { if (global.BUNEXT_BUNDLER_CTX_DISPOSED) { return; } global.BUNEXT_BUNDLER_CTX_DISPOSED = true; global.BUNEXT_RECOMPILING = false; global.BUNEXT_IS_SERVER_COMPONENT = false; // NOTE: must NOT dispose the currently-building context here. This // handler runs from the artifact-tracker plugin's onStart, i.e. while the // context's own build is in flight. esbuild's `dispose()` waits for the // in-flight build to finish, so disposing self = deadlock, which left the // dev server permanently stuck after a failed rebuild. // // Marking the context as disposed is enough: the next rebuild attempt // (watcher / fullRebuild) sees BUNEXT_BUNDLER_CTX_DISPOSED and recreates a // fresh context, whose cleanup disposes the old (now idle) one. }