UNPKG

graphql-compose

Version:

GraphQL schema builder from different data sources with middleware extensions.

31 lines (27 loc) 835 B
/** * Convert object to dotted-key/value pair * { a: { b: { c: 1 }}} -> { 'a.b.c': 1 } * Usage: * var dotObject(obj) * or * var target = {}; dotObject(obj, target) * * @param {Object} obj source object * @param {Object} target target object * @param {Array} path path array (internal) */ function toDottedObject(obj) { var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; /* eslint-disable */ Object.keys(obj).forEach(function (key) { if (Object(obj[key]) === obj[key]) { return toDottedObject(obj[key], target, path.concat(key)); } else { target[path.concat(key).join('.')] = obj[key]; } }); return target; /* eslint-enable */ } export default toDottedObject;