egg-ts-helper
Version:
egg typescript helper
126 lines • 10.5 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Command = void 0;
const node_path_1 = __importDefault(require("node:path"));
const commander_1 = require("commander");
Object.defineProperty(exports, "Command", { enumerable: true, get: function () { return commander_1.Command; } });
const node_assert_1 = __importDefault(require("node:assert"));
const core_1 = __importStar(require("./core"));
const utils_1 = require("./utils");
class Commander {
constructor(options) {
this.commands = (0, utils_1.loadModules)(node_path_1.default.resolve(__dirname, './cmd'), true);
this.tsHelperClazz = options?.tsHelperClazz || core_1.default;
let version = options?.version;
if (!version) {
version = (0, utils_1.getPkgInfo)(node_path_1.default.dirname(__dirname)).version;
}
this.program = new commander_1.Command()
.version(version, '-v, --version')
.usage('[commands] [options]')
.option('-w, --watch', 'Watching files, d.ts would recreated while file changed')
.option('-c, --cwd [path]', 'Egg application base dir (default: process.cwd)')
.option('-C, --config [path]', 'Configuration file, The argument can be a file path to a valid JSON/JS configuration file.(default: {cwd}/tshelper.js')
.option('-f, --framework [name]', 'Egg framework(default: egg)')
.option('-o, --oneForAll [path]', 'Create a d.ts import all types (default: typings/ets.d.ts)')
.option('-s, --silent', 'Running without output')
.option('-i, --ignore [dirs]', 'Ignore watchDirs, your can ignore multiple dirs with comma like: -i controller,service')
.option('-e, --enabled [dirs]', 'Enable watchDirs, your can enable multiple dirs with comma like: -e proxy,other')
.option('-E, --extra [json]', 'Extra config, the value should be json string');
}
init(argv) {
const { program, commands } = this;
let executeCmd;
// override executeSubCommand to support async subcommand.
program.addImplicitHelpCommand = () => { };
program.executeSubCommand = async function (argv, args, unknown) {
const cwd = this.cwd || core_1.defaultConfig.cwd;
const command = commands[executeCmd];
(0, node_assert_1.default)(command, executeCmd + ' does not exist');
await command.run(this, { cwd, argv, args: args.filter(item => item !== this), unknown });
};
if (!argv.slice(2).length) {
this.execute();
}
else {
Object.keys(commands).forEach(cmd => {
const subCommand = commands[cmd];
const cmdName = subCommand.options ? `${cmd} ${subCommand.options}` : cmd;
program.command(cmdName, subCommand.description)
.action(command => executeCmd = command);
});
program.parse(argv);
if (!executeCmd) {
this.execute();
}
}
}
execute() {
const { program } = this;
const watchFiles = program.watch;
const generatorConfig = {};
program.ignore && program.ignore.split(',').forEach(key => (generatorConfig[key] = false));
program.enabled && program.enabled.split(',').forEach(key => (generatorConfig[key] = true));
const tsHelperConfig = {
cwd: program.cwd || core_1.defaultConfig.cwd,
framework: program.framework,
watch: watchFiles,
generatorConfig,
configFile: program.config,
...(program.extra ? JSON.parse(program.extra) : {}),
};
// silent
if (program.silent) {
tsHelperConfig.silent = true;
}
if ((0, utils_1.checkMaybeIsJsProj)(tsHelperConfig.cwd)) {
// write jsconfig if the project is wrote by js
(0, utils_1.writeJsConfig)(tsHelperConfig.cwd);
}
// create instance
const clazz = this.tsHelperClazz;
const tsHelper = new clazz(tsHelperConfig).build();
if (program.oneForAll) {
// create one for all
tsHelper.createOneForAll(program.oneForAll);
}
}
}
exports.default = Commander;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBEQUE2QjtBQUM3Qix5Q0FBb0M7QUF3RzNCLHdGQXhHQSxtQkFBTyxPQXdHQTtBQXZHaEIsOERBQWlDO0FBQ2pDLCtDQUFpRDtBQUNqRCxtQ0FBcUY7QUFPckYsTUFBcUIsU0FBUztJQUs1QixZQUFZLE9BQXVCO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBQSxtQkFBVyxFQUFhLG1CQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sRUFBRSxhQUFhLElBQUksY0FBUSxDQUFDO1FBQ3hELElBQUksT0FBTyxHQUFHLE9BQU8sRUFBRSxPQUFPLENBQUM7UUFDL0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTyxHQUFHLElBQUEsa0JBQVUsRUFBQyxtQkFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUN4RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLG1CQUFPLEVBQUU7YUFDekIsT0FBTyxDQUFDLE9BQVEsRUFBRSxlQUFlLENBQUM7YUFDbEMsS0FBSyxDQUFDLHNCQUFzQixDQUFDO2FBQzdCLE1BQU0sQ0FBQyxhQUFhLEVBQUUseURBQXlELENBQUM7YUFDaEYsTUFBTSxDQUFDLGtCQUFrQixFQUFFLGlEQUFpRCxDQUFDO2FBQzdFLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSx1SEFBdUgsQ0FBQzthQUN0SixNQUFNLENBQUMsd0JBQXdCLEVBQUUsNkJBQTZCLENBQUM7YUFDL0QsTUFBTSxDQUFDLHdCQUF3QixFQUFFLDREQUE0RCxDQUFDO2FBQzlGLE1BQU0sQ0FBQyxjQUFjLEVBQUUsd0JBQXdCLENBQUM7YUFDaEQsTUFBTSxDQUFDLHFCQUFxQixFQUFFLHdGQUF3RixDQUFDO2FBQ3ZILE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxpRkFBaUYsQ0FBQzthQUNqSCxNQUFNLENBQUMsb0JBQW9CLEVBQUUsK0NBQStDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQsSUFBSSxDQUFDLElBQWM7UUFDakIsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDbkMsSUFBSSxVQUE4QixDQUFDO1FBRW5DLDBEQUEwRDtRQUMxRCxPQUFPLENBQUMsc0JBQXNCLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQzFDLE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLFdBQVUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPO1lBQzVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksb0JBQWEsQ0FBQyxHQUFHLENBQUM7WUFDMUMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLFVBQVcsQ0FBQyxDQUFDO1lBQ3RDLElBQUEscUJBQU0sRUFBQyxPQUFPLEVBQUUsVUFBVSxHQUFHLGlCQUFpQixDQUFDLENBQUM7WUFDaEQsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUM1RixDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakIsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDbEMsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNqQyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQkFDMUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLFdBQVcsQ0FBQztxQkFDN0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1lBQzdDLENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVwQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQztRQUN6QixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ2pDLE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUMzQixPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDM0YsT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRTVGLE1BQU0sY0FBYyxHQUFHO1lBQ3JCLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLG9CQUFhLENBQUMsR0FBRztZQUNyQyxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7WUFDNUIsS0FBSyxFQUFFLFVBQVU7WUFDakIsZUFBZTtZQUNmLFVBQVUsRUFBRSxPQUFPLENBQUMsTUFBTTtZQUMxQixHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNwRCxDQUFDO1FBRUYsU0FBUztRQUNULElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25CLGNBQWMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQy9CLENBQUM7UUFFRCxJQUFJLElBQUEsMEJBQWtCLEVBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDM0MsK0NBQStDO1lBQy9DLElBQUEscUJBQWEsRUFBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELGtCQUFrQjtRQUNsQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRW5ELElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLHFCQUFxQjtZQUNyQixRQUFRLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBNUZELDRCQTRGQyJ9