cucumber
Version:
The official JavaScript implementation of Cucumber.
37 lines (28 loc) • 4.68 kB
JavaScript
;Object.defineProperty(exports, "__esModule", { value: true });var _regenerator = require('babel-runtime/regenerator');var _regenerator2 = _interopRequireDefault(_regenerator);var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);var _createClass2 = require('babel-runtime/helpers/createClass');var _createClass3 = _interopRequireDefault(_createClass2);var _lodash = require('lodash');var _lodash2 = _interopRequireDefault(_lodash);
var _fs = require('mz/fs');var _fs2 = _interopRequireDefault(_fs);
var _glob = require('glob');var _glob2 = _interopRequireDefault(_glob);
var _path = require('path');var _path2 = _interopRequireDefault(_path);
var _bluebird = require('bluebird');var _bluebird2 = _interopRequireDefault(_bluebird);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var
PathExpander = function () {
function PathExpander(directory) {(0, _classCallCheck3.default)(this, PathExpander);
this.directory = directory;
}(0, _createClass3.default)(PathExpander, [{ key: 'expandPathsWithExtensions', value: function () {var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee2(
paths, extensions) {var _this = this;var expandedPaths;return _regenerator2.default.wrap(function _callee2$(_context2) {while (1) {switch (_context2.prev = _context2.next) {case 0:_context2.next = 2;return (
_bluebird2.default.map(paths, function () {var _ref2 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(p) {return _regenerator2.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:_context.next = 2;return (
_this.expandPathWithExtensions(p, extensions));case 2:return _context.abrupt('return', _context.sent);case 3:case 'end':return _context.stop();}}}, _callee, _this);}));return function (_x3) {return _ref2.apply(this, arguments);};}()));case 2:expandedPaths = _context2.sent;return _context2.abrupt('return',
_lodash2.default.uniq(_lodash2.default.flatten(expandedPaths)));case 4:case 'end':return _context2.stop();}}}, _callee2, this);}));function expandPathsWithExtensions(_x, _x2) {return _ref.apply(this, arguments);}return expandPathsWithExtensions;}() }, { key: 'expandPathWithExtensions', value: function () {var _ref3 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee3(
p, extensions) {var realPath, stats;return _regenerator2.default.wrap(function _callee3$(_context3) {while (1) {switch (_context3.prev = _context3.next) {case 0:_context3.next = 2;return (
_fs2.default.realpath(_path2.default.resolve(this.directory, p)));case 2:realPath = _context3.sent;_context3.next = 5;return (
_fs2.default.stat(realPath));case 5:stats = _context3.sent;if (!
stats.isDirectory()) {_context3.next = 12;break;}_context3.next = 9;return (
this.expandDirectoryWithExtensions(realPath, extensions));case 9:return _context3.abrupt('return', _context3.sent);case 12:return _context3.abrupt('return',
[realPath]);case 13:case 'end':return _context3.stop();}}}, _callee3, this);}));function expandPathWithExtensions(_x4, _x5) {return _ref3.apply(this, arguments);}return expandPathWithExtensions;}() }, { key: 'expandDirectoryWithExtensions', value: function () {var _ref4 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee4(
realPath, extensions) {var pattern, results;return _regenerator2.default.wrap(function _callee4$(_context4) {while (1) {switch (_context4.prev = _context4.next) {case 0:
pattern = realPath + '/**/*.';
if (extensions.length > 1) {
pattern += '{' + extensions.join(',') + '}';
} else {
pattern += extensions[0];
}_context4.next = 4;return (
_bluebird2.default.promisify(_glob2.default)(pattern));case 4:results = _context4.sent;return _context4.abrupt('return',
results.map(function (filePath) {return filePath.replace(/\//g, _path2.default.sep);}));case 6:case 'end':return _context4.stop();}}}, _callee4, this);}));function expandDirectoryWithExtensions(_x6, _x7) {return _ref4.apply(this, arguments);}return expandDirectoryWithExtensions;}() }]);return PathExpander;}();exports.default = PathExpander;