gxd-vue-library
Version:
依赖与element Ui插件库,聚福宝福利PC端插件库
90 lines (76 loc) • 2.22 kB
JavaScript
;
const fileHelper = require('./../fileHepler');
const basePath = require('./../path');
const apiDirectory = basePath.apiDirectory;
const storeDirectory = basePath.storeDirectory;
const mixinsDirectory = basePath.mixinsDirectory;
const apiUrlDirectory = basePath.apiUrlDirectory;
const rootSchemas = require('./../schemas/system');
const clog = require('./../clog');
let schemasArray = [rootSchemas];
let schemas = fileHelper.getDirFiles(basePath.schemasDirectory, ['js']);
Object.keys(schemas).map(key => {
schemasArray.push(require(basePath.schemasDirectory + '/' + schemas[key]['fullName']));
});
const getPromise = (item)=>{
return new Promise((resolve) => {
fileHelper.existFile(item.url)
.then(() => {
fileHelper.readFile(item.url)
.then(res=>{
if(res['indexOf']('@author coder') === -1) {
resolve({item, isExist: true})
}
else {
resolve({item, isExist: false})
}
})
.catch(()=>{
resolve({item, isExist: false});
})
})
.catch(() => {
resolve({item, isExist: false});
})
});
};
let apisPromise = [];
let filesArray = [];
const init= (modes) =>{
return new Promise((resolve)=>{
modes.map(item=>{
filesArray.push({
url: `${apiDirectory}/${item.name}.js`,
type:'api',
item
});
filesArray.push({
url: `${storeDirectory}/modules/${item.name}.js`,
type: 'store',
item
});
filesArray.push({
url: `${apiUrlDirectory}/modules/${item.name}.js`,
type: 'apiurl',
item
});
filesArray.push({
url: `${mixinsDirectory}/${item.name}.js`,
type: 'mixins',
item
});
});
filesArray.map(item => {
apisPromise.push(getPromise(item))
});
Promise.all(apisPromise)
.then(res=>{
res.map(({item, isExist })=>{
clog(`${isExist?'(已存在)': '(可创建)'} 模块:${item.item.name},类型:${item.type}, 路径:${item.url}`, isExist ? 'red' : 'green');
});
resolve(res);
})
.catch()
})
};
init(schemasArray);