awv3
Version:
⚡ AWV3 embedded CAD
61 lines (48 loc) • 2.13 kB
JavaScript
;
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));
});
});
}