UNPKG

@sanpjs/cmd-init

Version:

Sanp init command

76 lines 2.67 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.handler = exports.builder = exports.description = exports.command = void 0; /** * @file main process * @author zttonly <zttonly@baidu.com> */ const path_1 = __importDefault(require("path")); const utils_1 = require("@sanpjs/utils"); const check_1 = __importDefault(require("./check")); const getTemplate_1 = __importDefault(require("./getTemplate")); const generate_1 = __importDefault(require("./generate")); exports.command = 'init [template] [folder-name]'; exports.description = 'Create a component or directory'; exports.builder = { 'no-cache': { default: true, type: 'boolean', describe: 'Use local cache' }, config: { type: 'string', hidden: true, describe: 'config file or JSON string of config' }, force: { type: 'boolean', default: false, describe: 'Forced coverage' }, username: { type: 'string', alias: 'u', default: '', describe: 'Specify the username used by git clone command' } }; const handler = (args) => { let { template, folderName } = args; let isCurrentDir = false; if (!template) { utils_1.logger.error('Template name is required'); process.exit(1); } if (!folderName || folderName === '.' || folderName === './') { isCurrentDir = true; folderName = './'; } const dest = path_1.default.resolve(folderName); // 记录一下开始新建工程时的起始时间 const startTime = Date.now(); const options = Object.assign({}, args, { template, folderName, isCurrentDir }); const tasks = [ { title: '🔍 Checking directory status...', task: (0, check_1.default)(template, dest, options) }, { title: '🚚 Getting project scaffolding template...', task: (0, getTemplate_1.default)(template, dest, options) }, { title: '🔨 Generating directory structure...', task: (0, generate_1.default)(template, dest, options) } ]; const taskList = new utils_1.TaskList(tasks); taskList .run() .then(() => { const duration = ((Date.now() - +new Date(startTime)) / 1e3).toFixed(2); // eslint-disable-next-line no-console console.log('✨ Done in ' + duration + 's.'); process.exit(0); }) .catch((e) => { utils_1.logger.error(e); process.exit(1); }); }; exports.handler = handler; //# sourceMappingURL=index.js.map