1 | const match = require('minimatch')
|
2 | const evaluate = require('./eval')
|
3 |
|
4 | module.exports = (files, filters, data, done) => {
|
5 | if (!filters) {
|
6 | return done()
|
7 | }
|
8 | const fileNames = Object.keys(files)
|
9 | Object.keys(filters).forEach(glob => {
|
10 | fileNames.forEach(file => {
|
11 | if (match(file, glob, { dot: true })) {
|
12 | const condition = filters[glob]
|
13 | if (!evaluate(condition, data)) {
|
14 | delete files[file]
|
15 | }
|
16 | }
|
17 | })
|
18 | })
|
19 | done()
|
20 | }
|