UNPKG

awv3

Version:
61 lines (48 loc) 2.13 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _promise = require('babel-runtime/core-js/promise'); var _promise2 = _interopRequireDefault(_promise); var _getIterator2 = require('babel-runtime/core-js/get-iterator'); var _getIterator3 = _interopRequireDefault(_getIterator2); var _map = require('babel-runtime/core-js/map'); var _map2 = _interopRequireDefault(_map); exports.default = commandRunner; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // A wrapper around session.request intented to be used with multiRunner as x => commandRunner(session, x) function commandRunner(session, commands) { var promise = session.request(commands).then(function (response) { if (response.errors.length) throw response.errors[0]; var resultMap = new _map2.default(); var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = (0, _getIterator3.default)(response.results), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var result = _step.value; if (!resultMap.has(result.hint)) resultMap.set(result.hint, []); resultMap.get(result.hint).push(result.result); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } return resultMap; }); return commands.map(function (command) { return promise.then(function (resultMap) { return resultMap.has(command.task) ? resultMap.get(command.task).shift() : _promise2.default.reject(new Error('Missing result for ' + command.task)); }); }); }