UNPKG

graphql-codegen

Version:

Generate client code based on a GraphQL schema and query documents

53 lines (37 loc) 1.9 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); exports.propertiesFromFields = propertiesFromFields; exports.propertyFromField = propertyFromField; var _graphql = require('graphql'); var _changeCase = require('change-case'); var _inflected = require('inflected'); var _inflected2 = _interopRequireDefault(_inflected); var _types = require('./types'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function propertiesFromFields(fields) { return fields.map(function (field) { return propertyFromField(field); }); } function propertyFromField(field) { var name = (0, _changeCase.camelCase)(field.name); var type = field.type; var isList = type instanceof _graphql.GraphQLList || type.ofType instanceof _graphql.GraphQLList; var property = { name: name, fieldName: field.name, isList: isList, fragmentNames: field.fragmentNames }; var namedType = (0, _graphql.getNamedType)(type); if (namedType instanceof _graphql.GraphQLScalarType || namedType instanceof _graphql.GraphQLEnumType) { var typeName = (0, _types.typeNameFromGraphQLType)(type); return (0, _extends3.default)({}, property, { typeName: typeName }); } else if ((0, _graphql.isCompositeType)(namedType)) { var unmodifiedTypeName = (0, _changeCase.pascalCase)(_inflected2.default.singularize(name)); var _typeName = (0, _types.typeNameFromGraphQLType)(type, unmodifiedTypeName); var subproperties = propertiesFromFields(field.subfields); return (0, _extends3.default)({}, property, { typeName: _typeName, unmodifiedTypeName: unmodifiedTypeName, isComposite: true, subproperties: subproperties }); } else { throw new _graphql.GraphQLError('Unsupported field type: ' + String(type)); } }