All files / src resolveObject.js

100% Statements 5/5
100% Branches 5/5
100% Functions 4/4
100% Lines 5/5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23    2x               6x     2x       4x 3x        
import resolveKey from './resolveKey';
 
const assign = Object.assign;
 
export default function resolverObject(
  resolvers,
  values,
  context = {},
  { isSync = false } = {}
) {
  return isSync
    ? resolvers
        .map(resolveKey(values, context, { isSync }))
        .reduce((o, { key, value }) => assign(o, { [key]: value }), {})
    : Promise.all(
        resolvers.map(resolveKey(values, context))
      ).then(resolvedValues =>
        resolvedValues.reduce(
          (o, { key, value }) => assign(o, { [key]: value }),
          {}
        ));
}