UNPKG

mihawk

Version:

A tiny & simple mock server tool, support json,js,cjs,ts(typescript).

106 lines (105 loc) 4.37 kB
#!/usr/bin/env node "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 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) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const color_cc_1 = __importDefault(require("color-cc")); const cli_1 = require("../src/utils/cli"); const loader_1 = require("../src/composites/loader"); const print_1 = require("../src/utils/print"); const init_1 = __importDefault(require("./sub-cmds/init")); const start_1 = __importDefault(require("./sub-cmds/start")); const { name, version } = (0, loader_1.readPackageJson)() || {}; (() => __awaiter(void 0, void 0, void 0, function* () { var _a; const args = (0, cli_1.getCliArgs)(); const { _, v, V, ver, version, h, H, help } = args; if (v || V || ver || version) { showVersion(); } else if (h || H || help) { showHelp(); } else { const subCmdName = ((_a = _ === null || _ === void 0 ? void 0 : _[0]) === null || _a === void 0 ? void 0 : _a.trim()) || ''; const isMainCmd = !subCmdName; if (isMainCmd) { print_1.Printer.log(color_cc_1.default.gray(`mihawk ${_.join(' ')}`)); try { yield (0, start_1.default)(args); } catch (error) { errorHandler(error); } } else { let callback = null; switch (subCmdName) { case 'i': case 'init': case 'initial': callback = init_1.default; break; default: break; } if (typeof callback === 'function') { const newArgs = Object.assign(Object.assign({}, args), { _: (_ === null || _ === void 0 ? void 0 : _.slice(1)) || [] }); print_1.Printer.log(color_cc_1.default.gray(`mihawk ${subCmdName}`), color_cc_1.default.gray(newArgs._.join(' '))); try { yield callback(newArgs); } catch (error) { errorHandler(error); } } else { print_1.Debugger.log('process.argv=', process.argv, 'args=', args); showPkgInfo(); showHelp(); process.exit(1); } } } }))(); function errorHandler(error) { print_1.Printer.log(color_cc_1.default.yellow('Oops... It looks like something went wrong:'), error, '\n'); showHelp(); process.exit(1); } function showPkgInfo() { print_1.Printer.log(`${name}@${version}\n`); } function showHelp() { console.log([ '', `Usage: ${name} [options]`, 'Options:', ' -v, -V, --ver --version Show version information', ' -h, -H, --help Display help for command', ` -p, --port ${color_cc_1.default.gray('<number>')} Specify the port number(1024-10000)`, ` -d, --mockDir ${color_cc_1.default.gray('<string>')} Specify the mock data directory(non-empty-string)`, ` -w, --watch ${color_cc_1.default.gray('<boolean>')} Enable watch mode`, 'Examples:', color_cc_1.default.gray(` > ${name} -p 8888 -d ./mocks`), color_cc_1.default.green('Recommended:'), ` 1. init a ${color_cc_1.default.gray(`.${name}rc.json`)} file`, color_cc_1.default.gray(` > ${name} init`), ` 2. then start mihawk server directly`, color_cc_1.default.gray(` > ${name}`), '\n', ].join('\n')); } function showVersion() { console.log(`v${version}\n`); }