react-torch
Version:
A lib to server-side render with react.
72 lines (71 loc) • 2.73 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var commander_1 = require("commander");
var chalk_1 = __importDefault(require("chalk"));
var leven_1 = __importDefault(require("leven"));
var dev_1 = __importDefault(require("../scripts/dev"));
var build_1 = __importDefault(require("../scripts/build"));
var start_1 = __importDefault(require("../scripts/start"));
var pkg = require('../../package.json');
var program = new commander_1.Command();
program.version(pkg.version).name(pkg.name);
program
.command('dev')
.description("start development mode at " + process.cwd())
.option('-d, --dir <dir>', 'root path')
.option('-p, --port <port>', 'listening port')
.option('-c, --config <config>', 'config file path')
.action(function (options) {
(0, dev_1.default)(options);
});
program
.command('build')
.description("build project at " + process.cwd())
.option('-d, --dir <dir>', 'root path')
.option('-p, --port <port>', 'listening port')
.option('-c, --config <config>', 'config file path')
.action(function (options) {
(0, build_1.default)(options);
});
program
.command('start')
.description("start production mode at " + process.cwd())
.option('-d, --dir <dir>', 'root path')
.option('-p, --port <port>', 'listening port')
.option('-c, --config <config>', 'config file path')
.action(function (options) {
(0, start_1.default)(options);
});
// output help information on unknown COMMANDS
program.arguments('<command>').action(function (cmd) {
program.outputHelp();
console.log(" " + chalk_1.default.red("Unknown command " + chalk_1.default.yellow(cmd) + "."));
console.log();
suggestCommands(cmd);
});
program.on('--help', function () {
console.log('');
console.log('Example call:');
console.log(' $ ' + pkg.name + ' --help');
});
program.parse(process.argv);
if (!process.argv.slice(2).length) {
program.outputHelp();
}
function suggestCommands(unknownCommand) {
// @ts-ignore
var availableCommands = program.commands.map(function (cmd) { return cmd._name; });
var suggestion = undefined;
availableCommands.forEach(function (cmd) {
var isBestMatch = (0, leven_1.default)(cmd, unknownCommand) < (0, leven_1.default)(suggestion || '', unknownCommand);
if ((0, leven_1.default)(cmd, unknownCommand) < 3 && isBestMatch) {
suggestion = cmd;
}
});
if (suggestion) {
console.log(" " + chalk_1.default.red("Did you mean " + chalk_1.default.yellow(suggestion) + "?"));
}
}