@codefeathers/promise.object

Deep resolve promises in objects.

Usage no npm install needed!

<script type="module">
  import codefeathersPromiseObject from 'https://cdn.skypack.dev/@codefeathers/promise.object';
</script>

README

📤 Promise.object

A Promise.object implementation that deep traverses objects and resolves any Promises.

Installation

npm install --save @codefeathers/promise.object

Usage

Promise.object(<Object>).then(...)

Note that importing this library does not pollute the Promise namespace. You should assign it to Promise.object yourself (or whatever you please). It does not interfere with native Promises, or your own Promises A+ compatible library such as Bluebird. It however uses Promises, so if you need to polyfill this is your chance.

Example

Promise.object = require('@codefeathers/promise.object');
const { log } = console;

Promise.object({
    foo: Promise.resolve(5),
    bar: {
        baz: Promise.resolve([ 1, 2, 3 ])
    }
}).then(log);

//-> { foo: 5, bar: { baz: [ 1, 2, 3 ] } }

We need to go deeper!

Promise.object = require('@codefeathers/promise.object');
const { log } = console;

Promise.object(
    Promise.resolve({
        foo: Promise.resolve({
            bar: Promise.resolve(5)
        })
    })
).then(log);

//-> { foo: { bar: 5 } }