lianghaijie-cli
Version:
A simple CLI for scaffolding futu5_ipo projects.
29 lines (27 loc) • 790 B
JavaScript
const match = require('minimatch')
const evaluate = require('./eval')
/**
* 结合模板配置对象中的 filter 字段及问题收集答案对文件进行过滤
* @param {[type]} files [description]
* @param {[type]} filters [description]
* @param {[type]} data [description]
* @param {Function} done [description]
* @return {[type]} [description]
*/
module.exports = (files, filters, data, done) => {
if (!filters) {
return done()
}
const fileNames = Object.keys(files)
Object.keys(filters).forEach(glob => {
fileNames.forEach(file => {
if (match(file, glob, { dot: true })) {
const condition = filters[glob]
if (!evaluate(condition, data)) {
delete files[file]
}
}
})
})
done()
}