cucumber
Version:
The official JavaScript implementation of Cucumber.
40 lines (26 loc) • 3.72 kB
JavaScript
;Object.defineProperty(exports, "__esModule", { value: true });exports.getFeatures = exports.getExpandedArgv = undefined;var _regenerator = require('babel-runtime/regenerator');var _regenerator2 = _interopRequireDefault(_regenerator);var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);var getExpandedArgv = exports.getExpandedArgv = function () {var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(
function _callee(_ref2) {var argv = _ref2.argv;var cwd = _ref2.cwd;var _ArgvParser$parse, options, fullArgv, profileArgv;return _regenerator2.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:_ArgvParser$parse =
_argv_parser2.default.parse(argv);options = _ArgvParser$parse.options;
fullArgv = argv;_context.next = 5;return (
new _profile_loader2.default(cwd).getArgv(options.profile));case 5:profileArgv = _context.sent;
if (profileArgv.length > 0) {
fullArgv = _lodash2.default.concat(argv.slice(0, 2), profileArgv, argv.slice(2));
}return _context.abrupt('return',
fullArgv);case 8:case 'end':return _context.stop();}}}, _callee, this);}));return function getExpandedArgv(_x) {return _ref.apply(this, arguments);};}();var getFeatures = exports.getFeatures = function () {var _ref3 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(
function _callee3(featurePaths) {var _this = this;return _regenerator2.default.wrap(function _callee3$(_context3) {while (1) {switch (_context3.prev = _context3.next) {case 0:_context3.next = 2;return (
_bluebird2.default.map(featurePaths, function () {var _ref4 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee2(featurePath) {var source;return _regenerator2.default.wrap(function _callee2$(_context2) {while (1) {switch (_context2.prev = _context2.next) {case 0:_context2.next = 2;return (
_fs2.default.readFile(featurePath, 'utf8'));case 2:source = _context2.sent;return _context2.abrupt('return',
_feature_parser2.default.parse({ source: source, uri: featurePath }));case 4:case 'end':return _context2.stop();}}}, _callee2, _this);}));return function (_x3) {return _ref4.apply(this, arguments);};}()));case 2:return _context3.abrupt('return', _context3.sent);case 3:case 'end':return _context3.stop();}}}, _callee3, this);}));return function getFeatures(_x2) {return _ref3.apply(this, arguments);};}();exports.
getSupportCodeFunctions = getSupportCodeFunctions;var _lodash = require('lodash');var _lodash2 = _interopRequireDefault(_lodash);var _argv_parser = require('./argv_parser');var _argv_parser2 = _interopRequireDefault(_argv_parser);var _fs = require('mz/fs');var _fs2 = _interopRequireDefault(_fs);var _feature_parser = require('./feature_parser');var _feature_parser2 = _interopRequireDefault(_feature_parser);var _profile_loader = require('./profile_loader');var _profile_loader2 = _interopRequireDefault(_profile_loader);var _bluebird = require('bluebird');var _bluebird2 = _interopRequireDefault(_bluebird);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function getSupportCodeFunctions(supportCodePaths) {
return _lodash2.default.chain(supportCodePaths).
map(function (codePath) {
var codeExport = require(codePath);
if (typeof codeExport === 'function') {
return codeExport;
} else if (codeExport && typeof codeExport.default === 'function') {
return codeExport.default;
}
}).
compact().
value();
}