"use strict"; const { inspect } = require('util'); const _ = require('lodash'); exports.createAssetsFilter = createAssetsFilter; function createAssetsFilter(excludePatterns) { const excludeFunctions = _(excludePatterns).castArray().compact().map(pattern => { if (typeof pattern === 'string') { pattern = new RegExp(pattern, 'u'); } if (_.isRegExp(pattern)) { return asset => pattern.test(asset); } if (!_.isFunction(pattern)) { throw new TypeError(`Pattern should be either string, RegExp or a function, but "${inspect(pattern, { depth: 0 })}" got.`); } return pattern; }).value(); if (excludeFunctions.length) { return asset => _.every(excludeFunctions, fn => fn(asset) !== true); } else { return () => true; } }