UNPKG

cr-react-cli

Version:

Create react files with a single command

54 lines (53 loc) 2.24 kB
var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); // Libs const fs_1 = __importDefault(require("fs")); const case_1 = __importDefault(require("case")); const child_process_1 = require("child_process"); const lodash_1 = require("lodash"); // Helpers const file_path_1 = __importDefault(require("../../file-path")); const path_1 = require("../../utils/path"); const template_1 = require("../../utils/template"); // Configuration const configuration_1 = require("../../configuration"); // Templates const context_template_1 = __importDefault(require("../../templates/context/context.template")); // Base const base_action_1 = __importDefault(require("../base.action")); class CreateContextAction extends base_action_1.default { async handle(inputs, options) { const config = (0, lodash_1.merge)((0, configuration_1.loadScopeConfiguration)('context'), options); const name = !inputs.name.toLowerCase().endsWith('context') ? `${inputs.name}Context` : inputs.name; const filePath = new file_path_1.default({ name: inputs === null || inputs === void 0 ? void 0 : inputs.name, fileExtension: (config.typescript ? 'ts' : 'js') + (config.customProvider ? 'x' : ''), sourcePath: (0, configuration_1.getSourcePath)(), namePlaceholders: { '{type}': 'context', }, config: config, }); await (0, path_1.handlePathCheck)(filePath.baseDir); await (0, path_1.handleFileCheck)(filePath.full); if (config.inFolder) { this.createFolder(filePath.dir); } const template = new context_template_1.default(case_1.default.pascal(name), config).build(); await this.create(filePath.full, (0, template_1.formatTemplate)(template)); if (config.open) { (0, child_process_1.exec)(filePath.full); } } createFolder(path) { if (fs_1.default.existsSync(path)) { return; } fs_1.default.mkdirSync(path); } } exports.default = CreateContextAction;