1 | const entries = require('core-js/fn/object/entries');
|
2 | const merge = require('lodash').merge;
|
3 |
|
4 | module.exports = items => {
|
5 | return Promise.all(
|
6 | items
|
7 | .map(item => {
|
8 | return Promise
|
9 | .all(entries(item).map(entry => {
|
10 | return Promise
|
11 | .resolve(entry[1])
|
12 | .then(result => {
|
13 | const resolved = {};
|
14 | resolved[entry[0]] = result;
|
15 | return resolved;
|
16 | });
|
17 | }))
|
18 | .then(resolved => {
|
19 | return resolved.reduce((registry, entry) => {
|
20 | return merge(registry, entry);
|
21 | }, {});
|
22 | });
|
23 | })
|
24 | );
|
25 | };
|