UNPKG

lux-framework

Version:

Build scalable, Node.js-powered REST APIs with almost no code.

30 lines (27 loc) 751 B
// @flow import entries from './entries'; /** * @private */ export default function promiseHash(promises: Object): Promise<Object> { if (Object.keys(promises).length) { return Promise.all( entries(promises) .map(([key, promise]: [string, Promise<mixed>]) => ( new Promise((resolve, reject) => { if (promise && typeof promise.then === 'function') { promise .then((value) => resolve({ [key]: value })) .catch(reject); } else { resolve({ [key]: promise }); } }) )) ).then((objects) => objects.reduce((hash, object) => ({ ...hash, ...object }), {})); } return Promise.resolve({}); }