mihawk
Version:
A tiny & simple mock server tool, support json,js,cjs,ts(typescript).
106 lines (105 loc) • 4.37 kB
JavaScript
;
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`);
}