rolldown
Version:
Fast JavaScript/TypeScript bundler in Rust with Rollup-compatible API.
39 lines (37 loc) • 1.09 kB
JavaScript
import { import_binding } from "../shared/parse-ast-index-BN2JFoRu.mjs";
import { PluginContextData, bindingifyPlugin } from "../shared/src-DcMgB17h.mjs";
import { parentPort, workerData } from "node:worker_threads";
//#region src/parallel-plugin-worker.ts
const { registryId, pluginInfos, threadNumber } = workerData;
(async () => {
try {
const plugins = await Promise.all(pluginInfos.map(async (pluginInfo) => {
const pluginModule = await import(pluginInfo.fileUrl);
const definePluginImpl = pluginModule.default;
const plugin = await definePluginImpl(pluginInfo.options, { threadNumber });
return {
index: pluginInfo.index,
plugin: bindingifyPlugin(
plugin,
{},
{},
// TODO need to find a way to share pluginContextData
new PluginContextData(),
[],
() => {},
"info"
)
};
}));
(0, import_binding.registerPlugins)(registryId, plugins);
parentPort.postMessage({ type: "success" });
} catch (error) {
parentPort.postMessage({
type: "error",
error
});
} finally {
parentPort.unref();
}
})();
//#endregion