UNPKG

nadle

Version:

A modern, type-safe task runner for Node.js inspired by the awesome Gradle build tool

34 lines (33 loc) 1.36 kB
import { Nadle, taskRegistry } from "./chunk-U7OSCGJU.js"; // src/core/worker.ts import Path from "path"; import { threadId } from "worker_threads"; var worker_default = async ({ name, port, options, env: originalEnv }) => { const nadle = new Nadle(options); await nadle.registerTask(); const task = taskRegistry.getByName(name); const { optionsResolver } = task; const context = { nadle }; const taskOptions = typeof optionsResolver === "function" ? optionsResolver(context) : optionsResolver; port.postMessage({ threadId, type: "start", taskName: name }); await new Promise((resolve) => setImmediate(resolve)); await new Promise((resolve) => process.nextTick(resolve)); const taskConfig = task.configResolver({ context }); const taskEnv = Object.fromEntries(Object.entries(taskConfig.env ?? {}).map(([key, val]) => [key, String(val)])); const workingDir = taskConfig.workingDir ? Path.resolve(taskConfig.workingDir) : process.cwd(); Object.assign(process.env, { ...originalEnv, ...taskEnv }); await task.run({ options: taskOptions, context: { ...context, workingDir } }); for (const [key] of Object.entries(taskEnv)) { delete process.env[key]; if (Object.hasOwn(originalEnv, key)) { process.env[key] = originalEnv[key]; } } }; export { worker_default as default }; //# sourceMappingURL=worker.js.map