@rist/preset-react
Version:
前端react模板生成器
47 lines (46 loc) • 2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.shouldAskForComponent = exports.dispatch = exports.GeneratorAction = void 0;
const abstract_action_1 = require("../abstract/abstract.action");
const enum_1 = require("../utils/enum");
const inquirer = require("inquirer");
const core_1 = require("../../solutions/core");
const bootstrap_component_action_1 = require("./bootstrap.component.action");
class GeneratorAction extends abstract_action_1.AbstractAction {
async handle(inputs, options) {
await exports.dispatch(inputs.concat(options));
}
}
exports.GeneratorAction = GeneratorAction;
exports.dispatch = async (inputs) => {
const componentName = inputs.find((option) => option.name === enum_1.TYPES.COMPONENT.toLowerCase()).value;
const schematic = inputs.find((option) => option.name === enum_1.TYPES.SCHEMATIC.toLowerCase()).value;
const path = inputs.find((option) => option.name === enum_1.TYPES.PATH.toLowerCase()).value;
let framework = inputs.find((option) => option.name === enum_1.TYPES.NAME.toLowerCase()).value;
if (framework = await exports.shouldAskForComponent(framework)) {
switch (framework) {
case enum_1.TYPES.REACT:
new core_1.BootstrapComponentGen(new bootstrap_component_action_1.BootstrapComponentAction()).load({ framework, schematic, name: componentName, path });
return;
}
}
};
//选择框架模板
exports.shouldAskForComponent = async (framework) => {
if (!framework) {
const { action } = await inquirer.prompt([
{
name: 'action',
type: 'list',
message: `select a Template`,
choices: [
{ name: 'React', value: 'React' },
{ name: 'Vue', value: 'Vue' },
{ name: 'Angular', value: 'Angular' },
]
}
]);
return action;
}
return framework;
};