cucumber
Version:
The official JavaScript implementation of Cucumber.
35 lines (28 loc) • 3.57 kB
JavaScript
;Object.defineProperty(exports, "__esModule", { value: true });var _regenerator = require('babel-runtime/regenerator');var _regenerator2 = _interopRequireDefault(_regenerator);var _typeof2 = require('babel-runtime/helpers/typeof');var _typeof3 = _interopRequireDefault(_typeof2);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 _path = require('path');var _path2 = _interopRequireDefault(_path);
var _stringArgv = require('string-argv');var _stringArgv2 = _interopRequireDefault(_stringArgv);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var
ProfileLoader = function () {
function ProfileLoader(directory) {(0, _classCallCheck3.default)(this, ProfileLoader);
this.directory = directory;
}(0, _createClass3.default)(ProfileLoader, [{ key: 'getDefinitions', value: function () {var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee() {var definitionsFilePath, exists, definitions;return _regenerator2.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:
definitionsFilePath = _path2.default.join(this.directory, 'cucumber.js');_context.next = 3;return (
_fs2.default.exists(definitionsFilePath));case 3:exists = _context.sent;if (
exists) {_context.next = 6;break;}return _context.abrupt('return',
{});case 6:
definitions = require(definitionsFilePath);if (!(
(typeof definitions === 'undefined' ? 'undefined' : (0, _typeof3.default)(definitions)) !== 'object')) {_context.next = 9;break;}throw (
new Error(definitionsFilePath + ' does not export an object'));case 9:return _context.abrupt('return',
definitions);case 10:case 'end':return _context.stop();}}}, _callee, this);}));function getDefinitions() {return _ref.apply(this, arguments);}return getDefinitions;}() }, { key: 'getArgv', value: function () {var _ref2 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee2(
profiles) {var definitions, argvs;return _regenerator2.default.wrap(function _callee2$(_context2) {while (1) {switch (_context2.prev = _context2.next) {case 0:_context2.next = 2;return (
this.getDefinitions());case 2:definitions = _context2.sent;
if (profiles.length === 0 && definitions['default']) {
profiles = ['default'];
}
argvs = profiles.map(function (profile) {
if (!definitions[profile]) {
throw new Error('Undefined profile: ' + profile);
}
return (0, _stringArgv2.default)(definitions[profile]);
});return _context2.abrupt('return',
_lodash2.default.flatten(argvs));case 6:case 'end':return _context2.stop();}}}, _callee2, this);}));function getArgv(_x) {return _ref2.apply(this, arguments);}return getArgv;}() }]);return ProfileLoader;}();exports.default = ProfileLoader;