utils.js 937 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. 'use strict';
  2. var _require = require('util'),
  3. inspect = _require.inspect;
  4. var _ = require('lodash');
  5. exports.createAssetsFilter = createAssetsFilter;
  6. function createAssetsFilter(excludePatterns) {
  7. var excludeFunctions = _(excludePatterns).castArray().compact().map(function (pattern) {
  8. if (typeof pattern === 'string') {
  9. pattern = new RegExp(pattern);
  10. }
  11. if (_.isRegExp(pattern)) {
  12. return function (asset) {
  13. return pattern.test(asset);
  14. };
  15. }
  16. if (!_.isFunction(pattern)) {
  17. throw new TypeError(`Pattern should be either string, RegExp or a function, but "${inspect(pattern, { depth: 0 })}" got.`);
  18. }
  19. return pattern;
  20. }).value();
  21. if (excludeFunctions.length) {
  22. return function (asset) {
  23. return _.every(excludeFunctions, function (fn) {
  24. return fn(asset) !== true;
  25. });
  26. };
  27. } else {
  28. return function () {
  29. return true;
  30. };
  31. }
  32. }