UNPKG

@nadle/cli

Version:

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

53 lines 1.9 kB
import * as process from "node:process"; import yargs from "yargs"; import { hideBin } from "yargs/helpers"; import { Nadle, SupportLogLevels } from "nadle-core"; const argv = yargs(hideBin(process.argv)) .scriptName("nadle") .command("$0 [tasks...]", "Run one or many tasks") .option("config", { alias: "c", type: "string", default: "build.nadle.ts", description: "Path to config file", defaultDescription: "<cwd>/build.nadle.ts" }) .option("min-workers", { type: "string", default: undefined, describe: "Minimum number of workers (integer or percentage)", coerce: (value) => { const parsedValue = Number(value); if (!isNaN(parsedValue)) { return parsedValue; } return value; } }) .option("max-workers", { type: "string", default: undefined, describe: "Maximum number of workers (integer or percentage)", coerce: (value) => { const parsedValue = Number(value); if (!isNaN(parsedValue)) { return parsedValue; } return value; } }) .option("log-level", { type: "string", default: "log", choices: SupportLogLevels, describe: "Set the logging level" }) .option("list", { alias: "l", default: false, type: "boolean", description: "List all available tasks" }) .option("dry-run", { default: false, type: "boolean", description: "Run tasks in dry run mode" }) .option("show-summary", { hidden: true, type: "boolean" }) .help("help") .alias("help", "h") .parseSync(); const removedAliasArgv = Object.fromEntries(Object.entries(argv).filter(([key]) => !["$0", "_", "l", "c", "dry-run", "show-summary", "log-level", "min-workers", "max-workers"].includes(key))); new Nadle({ ...removedAliasArgv, configPath: argv.config, logLevel: removedAliasArgv.logLevel }).execute(); //# sourceMappingURL=cli.js.map