UNPKG

daruk-cli

Version:
27 lines (24 loc) 603 B
const match = require('minimatch') const evaluate = require('./eval') module.exports = (filters) => { return (files, metalsmith, done) => { filter(files, filters, metalsmith.metadata(), done) } } function filter (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() }