UNPKG

@yolkai/nx-tao

Version:

CLI for generating code and running commands

60 lines (59 loc) 2.99 kB
#!/usr/bin/env node "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); require("./src/compat/compat"); function invokeCommand(command, root, commandArgs = []) { return __awaiter(this, void 0, void 0, function* () { if (command === undefined) { command = 'help'; } let verboseFlagIndex = commandArgs.indexOf('--verbose'); if (verboseFlagIndex < 0) { verboseFlagIndex = commandArgs.indexOf('-v'); } const isVerbose = verboseFlagIndex >= 0; if (isVerbose) { commandArgs.splice(verboseFlagIndex, 1); } switch (command) { case 'new': return (yield Promise.resolve().then(() => require('./src/commands/generate'))).taoNew(root, commandArgs, isVerbose); case 'generate': case 'g': return (yield Promise.resolve().then(() => require('./src/commands/generate'))).generate(root, commandArgs, isVerbose); case 'run': case 'r': return (yield Promise.resolve().then(() => require('./src/commands/run'))).run(root, commandArgs, isVerbose); case 'migrate': return (yield Promise.resolve().then(() => require('./src/commands/migrate'))).migrate(root, commandArgs, isVerbose); case 'help': case '--help': return (yield Promise.resolve().then(() => require('./src/commands/help'))).help(); default: const projectNameIncluded = commandArgs[0] && !commandArgs[0].startsWith('-'); const projectName = projectNameIncluded ? commandArgs[0] : ''; // this is to make `tao test mylib` same as `tao run mylib:test` return (yield Promise.resolve().then(() => require('./src/commands/run'))).run(root, [ `${projectName}:${command}`, ...(projectNameIncluded ? commandArgs.slice(1) : commandArgs) ], isVerbose); } }); } exports.invokeCommand = invokeCommand; function invokeCli(root, args) { return __awaiter(this, void 0, void 0, function* () { const [command, ...commandArgs] = args; process.exit(yield invokeCommand(command, root, commandArgs)); }); } exports.invokeCli = invokeCli; invokeCli(process.cwd(), process.argv.slice(2));