nadle
Version:
A modern, type-safe task runner for Node.js inspired by the awesome Gradle build tool
62 lines (58 loc) • 1.51 kB
JavaScript
import {
optionRegistry,
taskRegistry
} from "./chunk-U7OSCGJU.js";
// src/core/register-task.ts
function registerTask(name, task, optionsResolver) {
if (taskRegistry.has(name)) {
throw new Error(`Task "${name}" already registered`);
}
let configCollector = () => ({});
const register = () => {
taskRegistry.register(name, {
name,
status: "registered" /* Registered */,
result: { duration: null, startTime: null },
configResolver: (params) => {
return typeof configCollector === "function" ? configCollector(params) : configCollector;
},
...computeTaskInfo(task, optionsResolver)
});
};
register();
return {
config: (collector) => {
configCollector = collector;
register();
}
};
}
function computeTaskInfo(task, optionsResolver) {
if (task === void 0) {
return { run: () => {
}, optionsResolver: void 0 };
}
if (typeof task === "function") {
return { run: task, optionsResolver: void 0 };
}
if (optionsResolver === void 0) {
throw new Error("Option builder is required for option task");
}
return { ...task, optionsResolver };
}
// src/core/api.ts
var tasks = {
register: registerTask
};
// src/core/options/configure.ts
function configure(options) {
if (typeof options !== "object" || options === null) {
throw new TypeError("Options must be an object");
}
optionRegistry.add(options);
}
export {
tasks,
configure
};
//# sourceMappingURL=chunk-JXJCDWE4.js.map