utils.js
937 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
'use strict';
var _require = require('util'),
inspect = _require.inspect;
var _ = require('lodash');
exports.createAssetsFilter = createAssetsFilter;
function createAssetsFilter(excludePatterns) {
var excludeFunctions = _(excludePatterns).castArray().compact().map(function (pattern) {
if (typeof pattern === 'string') {
pattern = new RegExp(pattern);
}
if (_.isRegExp(pattern)) {
return function (asset) {
return 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 function (asset) {
return _.every(excludeFunctions, function (fn) {
return fn(asset) !== true;
});
};
} else {
return function () {
return true;
};
}
}