'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.extensionsToGlob = exports.ensureGlob = exports.glob = undefined; require('nodent-runtime'); var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _globby = require('globby'); var _globby2 = _interopRequireDefault(_globby); var _isGlob = require('is-glob'); var _isGlob2 = _interopRequireDefault(_isGlob); var _globParent = require('glob-parent'); var _globParent2 = _interopRequireDefault(_globParent); var _normalizePath = require('normalize-path'); var _normalizePath2 = _interopRequireDefault(_normalizePath); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var isDirectory = function isDirectory(filePath) { return _path2.default.extname(filePath).length === 0; }; var glob = exports.glob = function glob(patterns, options) { return new Promise(function ($return, $error) { return (0, _globby2.default)(patterns, options).then($return, $error); }.$asyncbind(this)); }; var ensureGlob = exports.ensureGlob = function ensureGlob(entry) { var recursive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var pattern = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '*.js'; var normalized = (0, _normalizePath2.default)(entry); if ((0, _isGlob2.default)(normalized)) { return normalized; } else if (isDirectory(normalized)) { if (!(0, _isGlob2.default)(pattern)) { throw new Error('Provided Glob ' + pattern + ' is not a valid glob pattern'); } var parent = (0, _globParent2.default)(pattern); if (parent !== '.' || pattern.indexOf('**') !== -1) { throw new Error('Provided Glob ' + pattern + ' must be a file pattern like *.js'); } var globstar = recursive ? '**/' : ''; return normalized + '/' + globstar + pattern; } return normalized; }; var extensionsToGlob = exports.extensionsToGlob = function extensionsToGlob(extensions) { var filtered = extensions.filter(Boolean); if (filtered.length === 0) { return '*.js'; } else if (filtered.length === 1) { return '*' + filtered[0]; } return '*{' + filtered.join(',') + '}'; };