glob.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.extensionsToGlob = exports.ensureGlob = exports.glob = undefined;
  6. require('nodent-runtime');
  7. var _path = require('path');
  8. var _path2 = _interopRequireDefault(_path);
  9. var _globby = require('globby');
  10. var _globby2 = _interopRequireDefault(_globby);
  11. var _isGlob = require('is-glob');
  12. var _isGlob2 = _interopRequireDefault(_isGlob);
  13. var _globParent = require('glob-parent');
  14. var _globParent2 = _interopRequireDefault(_globParent);
  15. var _normalizePath = require('normalize-path');
  16. var _normalizePath2 = _interopRequireDefault(_normalizePath);
  17. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  18. var isDirectory = function isDirectory(filePath) {
  19. return _path2.default.extname(filePath).length === 0;
  20. };
  21. var glob = exports.glob = function glob(patterns, options) {
  22. return new Promise(function ($return, $error) {
  23. return $return((0, _globby2.default)(patterns, options));
  24. }.$asyncbind(this));
  25. };
  26. var ensureGlob = exports.ensureGlob = function ensureGlob(entry) {
  27. var recursive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  28. var pattern = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '*.js';
  29. var normalized = (0, _normalizePath2.default)(entry);
  30. if ((0, _isGlob2.default)(normalized)) {
  31. return normalized;
  32. } else if (isDirectory(normalized)) {
  33. if (!(0, _isGlob2.default)(pattern)) {
  34. throw new Error('Provided Glob ' + pattern + ' is not a valid glob pattern');
  35. }
  36. var parent = (0, _globParent2.default)(pattern);
  37. if (parent !== '.' || pattern.indexOf('**') !== -1) {
  38. throw new Error('Provided Glob ' + pattern + ' must be a file pattern like *.js');
  39. }
  40. var globstar = recursive ? '**/' : '';
  41. return normalized + '/' + globstar + pattern;
  42. }
  43. return normalized;
  44. };
  45. var extensionsToGlob = exports.extensionsToGlob = function extensionsToGlob(extensions) {
  46. var filtered = extensions.filter(Boolean);
  47. if (filtered.length === 0) {
  48. return '*.js';
  49. } else if (filtered.length === 1) {
  50. return '*' + filtered[0];
  51. }
  52. return '*{' + filtered.join(',') + '}';
  53. };