UNPKG

create-aiot

Version:

An easy way to start aiot project

85 lines (84 loc) 2.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getUxCreateCommand = getUxCreateCommand; var _sharedUtils = require("@aiot-toolkit/shared-utils"); var _fs = _interopRequireDefault(require("fs")); var _path = _interopRequireDefault(require("path")); var _TemplateUtil = _interopRequireDefault(require("./utils/TemplateUtil")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } async function createAction(options, projectType) { try { const templateList = await _TemplateUtil.default.requestTemplateList(projectType); const { name, aspect, packageName, template, eslint = false } = options; const templateItem = templateList.find(item => item.name === template); if (templateItem) { const param = { name, template: templateItem, packageName, tools: { eslint }, aspect }; await _TemplateUtil.default.createProject(param, { data: { appName: name, packageName }, includes: path => { const stats = _fs.default.statSync(path); if (stats.isDirectory()) { return ['src'].includes(_path.default.basename(path)); } else { return ['.json', '.ux'].includes(_path.default.extname(path)); } } }); } else { throw new Error(''); } } catch (error) { _sharedUtils.ColorConsole.error(`Create project error: ${error}`); process.exit(); } } async function getUxCreateCommand() { const templateList = await _TemplateUtil.default.requestTemplateList('ux'); return { name: 'ux', description: 'default', paramList: [{ name: 'template', description: 'prject template', type: 'select', enableInquirer: true, choices: templateList.map(item => { return { value: item.name, description: item.description }; }) }, { name: 'name', description: 'poject name', enableInquirer: true, defaultValue: 'aiot-project', type: 'string', validate(value) { return _TemplateUtil.default.validateProjectName(value); } }], action: option => { createAction(option, 'ux'); } }; }