create-aiot
Version:
An easy way to start aiot project
129 lines (128 loc) • 3.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getCrerateXtsCommand = getCrerateXtsCommand;
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');
}
};
}
async function getCrerateXtsCommand() {
const templateList = await _TemplateUtil.default.requestTemplateList('xts');
return {
name: 'xts',
description: 'create xts template project',
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: 'xts-project',
type: 'string',
validate(value) {
return _TemplateUtil.default.validateProjectName(value);
}
}, {
name: 'packageName',
description: 'package name',
enableInquirer: true,
defaultValue: 'xts.app.test',
type: 'string'
}, {
name: 'aspect',
type: 'string',
defaultValue: 'aspect1',
description: 'Do you need to create some aspect, with multiple aspect names separated by commas',
enableInquirer: true
}],
action: option => {
createAction(option, 'xts');
}
};
}