Sha256: aedb34d292df189f0f9e766b306a3652ffcf2303ef4d5580e9723d5033d4f022

Contents?: true

Size: 683 Bytes

Versions: 26

Compression:

Stored size: 683 Bytes

Contents

'use strict';

Object.defineProperty(exports, '__esModule', {
  value: true,
});
exports.promiseForObject = 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) {
  return Promise.all(Object.values(object)).then((resolvedValues) => {
    const resolvedObject = Object.create(null);

    for (const [i, key] of Object.keys(object).entries()) {
      resolvedObject[key] = resolvedValues[i];
    }

    return resolvedObject;
  });
}

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
clapton-0.0.6 lib/clapton/javascripts/node_modules/graphql/jsutils/promiseForObject.js
clapton-0.0.5 lib/clapton/javascripts/node_modules/graphql/jsutils/promiseForObject.js
clapton-0.0.4 lib/clapton/javascripts/node_modules/graphql/jsutils/promiseForObject.js
clapton-0.0.3 lib/clapton/javascripts/node_modules/graphql/jsutils/promiseForObject.js
clapton-0.0.2 lib/clapton/javascripts/node_modules/graphql/jsutils/promiseForObject.js
clapton-0.0.1 lib/clapton/javascripts/node_modules/graphql/jsutils/promiseForObject.js