UNPKG

awv3

Version:
20 lines (19 loc) 840 B
// A wrapper around session.request intented to be used with multiRunner as x => commandRunner(session, x) export default function commandRunner(session, commands) { const promise = session.request(commands).then(response => { if (response.errors.length) throw response.errors[0]; let resultMap = new Map(); for (let result of response.results) { if (!resultMap.has(result.hint)) resultMap.set(result.hint, []); resultMap.get(result.hint).push(result.result); } return resultMap; }); return commands.map(command => promise.then( resultMap => resultMap.has(command.task) ? resultMap.get(command.task).shift() : Promise.reject(new Error('Missing result for ' + command.task)) )); }