create-aiot
Version:
An easy way to start aiot project
85 lines (84 loc) • 2.34 kB
JavaScript
;
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');
}
};
}