UNPKG

graphql-compose

Version:

GraphQL schema builder from different data sources with middleware extensions.

82 lines (68 loc) 2.79 kB
'use strict'; var _keys = require('babel-runtime/core-js/object/keys'); var _keys2 = _interopRequireDefault(_keys); Object.defineProperty(exports, "__esModule", { value: true }); exports.resolveOutputConfigsAsThunk = resolveOutputConfigsAsThunk; exports.resolveInputConfigsAsThunk = resolveInputConfigsAsThunk; exports.keepConfigsAsThunk = keepConfigsAsThunk; var _typeMapper = require('../typeMapper'); var _typeMapper2 = _interopRequireDefault(_typeMapper); var _is = require('./is'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /* eslint-disable no-param-reassign, no-use-before-define */ function resolveOutputConfigsAsThunk(fieldMap, typeName) { if ((0, _is.isObject)(fieldMap)) { (0, _keys2.default)(fieldMap).forEach(function (name) { if ((0, _is.isFunction)(fieldMap[name])) { var fieldConfig = _typeMapper2.default.convertOutputFieldConfig(fieldMap[name](), name, typeName); fieldConfig._fieldAsThunk = fieldMap[name]; fieldMap[name] = fieldConfig; } if ((0, _is.isFunction)(fieldMap[name].type)) { fieldMap[name]._typeAsThunk = fieldMap[name].type; var _fieldConfig = _typeMapper2.default.convertOutputFieldConfig(fieldMap[name].type(), name, typeName); fieldMap[name].type = _fieldConfig.type; } if ((0, _is.isObject)(fieldMap[name].args)) { fieldMap[name].args = resolveInputConfigsAsThunk(fieldMap[name].args, typeName + '.' + name + '.args'); } }); } return fieldMap; } function resolveInputConfigsAsThunk(fieldMap, typeName) { if ((0, _is.isObject)(fieldMap)) { (0, _keys2.default)(fieldMap).forEach(function (name) { if ((0, _is.isFunction)(fieldMap[name])) { var fieldConfig = _typeMapper2.default.convertInputFieldConfig(fieldMap[name](), name, typeName); fieldConfig._fieldAsThunk = fieldMap[name]; fieldMap[name] = fieldConfig; } if ((0, _is.isFunction)(fieldMap[name].type)) { fieldMap[name]._typeAsThunk = fieldMap[name].type; var _fieldConfig2 = _typeMapper2.default.convertInputFieldConfig(fieldMap[name].type(), name, typeName); fieldMap[name].type = _fieldConfig2.type; } }); } return fieldMap; } function keepConfigsAsThunk(fieldMap) { if ((0, _is.isObject)(fieldMap)) { (0, _keys2.default)(fieldMap).forEach(function (key) { if (fieldMap[key]._fieldAsThunk) { fieldMap[key] = fieldMap[key]._fieldAsThunk; } else { if (fieldMap[key]._typeAsThunk) { fieldMap[key].type = fieldMap[key]._typeAsThunk; } if (fieldMap[key].args) { fieldMap[key].args = keepConfigsAsThunk(fieldMap[key].args); } } }); } return fieldMap; }