1234567891011121314151617181920212223242526 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = promiseForObject;
- /**
- * This function transforms a JS object `ObjMap<Promise<T>>` into
- * a `Promise<ObjMap<T>>`
- *
- * This is akin to bluebird's `Promise.props`, but implemented only using
- * `Promise.all` so it will work with any implementation of ES6 promises.
- */
- function promiseForObject(object) {
- var keys = Object.keys(object);
- var valuesAndPromises = keys.map(function (name) {
- return object[name];
- });
- return Promise.all(valuesAndPromises).then(function (values) {
- return values.reduce(function (resolvedObject, value, i) {
- resolvedObject[keys[i]] = value;
- return resolvedObject;
- }, Object.create(null));
- });
- }
|