UNPKG

23.6 kBSource Map (JSON)View Raw
1{"version":3,"file":"index.cjs.js","sources":["../../../dist/plugins/typescript/compatibility/src/selection-set-to-types.js","../../../dist/plugins/typescript/compatibility/src/visitor.js","../../../dist/plugins/typescript/compatibility/src/index.js"],"sourcesContent":["import { getBaseType } from '@graphql-codegen/plugin-helpers';\nimport { isObjectType, isInterfaceType, isNonNullType, isListType, Kind, isUnionType, } from 'graphql';\nconst handleTypeNameDuplicates = (result, name, prefix = '') => {\n let typeToUse = name;\n while (result[prefix + typeToUse]) {\n typeToUse = `_${typeToUse}`;\n }\n return prefix + typeToUse;\n};\nexport function selectionSetToTypes(typesPrefix, baseVisitor, schema, parentTypeName, stack, fieldName, selectionSet, preResolveTypes, result = {}) {\n const parentType = schema.getType(parentTypeName);\n const typeName = baseVisitor.convertName(fieldName);\n if (selectionSet && selectionSet.selections && selectionSet.selections.length) {\n const typeToUse = handleTypeNameDuplicates(result, typeName, typesPrefix);\n result[typeToUse] = { export: 'type', name: stack };\n for (const selection of selectionSet.selections) {\n switch (selection.kind) {\n case Kind.FIELD: {\n if (isObjectType(parentType) || isInterfaceType(parentType)) {\n const selectionName = selection.alias && selection.alias.value ? selection.alias.value : selection.name.value;\n if (!selectionName.startsWith('__')) {\n const field = parentType.getFields()[selection.name.value];\n const baseType = getBaseType(field.type);\n const wrapWithNonNull = (baseVisitor.config.strict || baseVisitor.config.preResolveTypes) && !isNonNullType(field.type);\n const isArray = (isNonNullType(field.type) && isListType(field.type.ofType)) || isListType(field.type);\n const typeRef = `${stack}['${selectionName}']`;\n const nonNullableInnerType = `${wrapWithNonNull ? `(NonNullable<${typeRef}>)` : typeRef}`;\n const arrayInnerType = isArray ? `${nonNullableInnerType}[0]` : nonNullableInnerType;\n const wrapArrayWithNonNull = baseVisitor.config.strict || baseVisitor.config.preResolveTypes;\n const newStack = isArray && wrapArrayWithNonNull ? `(NonNullable<${arrayInnerType}>)` : arrayInnerType;\n selectionSetToTypes(typesPrefix, baseVisitor, schema, baseType.name, newStack, selectionName, selection.selectionSet, preResolveTypes, result);\n }\n }\n break;\n }\n case Kind.INLINE_FRAGMENT: {\n const typeCondition = selection.typeCondition.name.value;\n const fragmentName = baseVisitor.convertName(typeCondition, { suffix: 'InlineFragment' });\n let inlineFragmentValue;\n if (isUnionType(parentType) || isInterfaceType(parentType)) {\n inlineFragmentValue = `DiscriminateUnion<RequireField<${stack}, '__typename'>, { __typename: '${typeCondition}' }>`;\n }\n else {\n let encounteredNestedInlineFragment = false;\n const subSelections = selection.selectionSet.selections\n .map(subSelection => {\n switch (subSelection.kind) {\n case Kind.FIELD:\n return `'${subSelection.name.value}'`;\n case Kind.FRAGMENT_SPREAD:\n return `keyof ${baseVisitor.convertName(subSelection.name.value, { suffix: 'Fragment' })}`;\n case Kind.INLINE_FRAGMENT:\n encounteredNestedInlineFragment = true;\n return null;\n }\n })\n .filter(a => a);\n if (encounteredNestedInlineFragment) {\n throw new Error('Nested inline fragments are not supported the `typescript-compatibility` plugin');\n }\n else if (subSelections.length) {\n inlineFragmentValue = `{ __typename: '${typeCondition}' } & Pick<${stack}, ${subSelections.join(' | ')}>`;\n }\n }\n if (inlineFragmentValue) {\n selectionSetToTypes(typesPrefix, baseVisitor, schema, typeCondition, `(${inlineFragmentValue})`, fragmentName, selection.selectionSet, preResolveTypes, result);\n }\n break;\n }\n }\n }\n }\n return result;\n}\n//# sourceMappingURL=selection-set-to-types.js.map","import { BaseVisitor, DeclarationBlock, indent, getConfigValue, buildScalars, } from '@graphql-codegen/visitor-plugin-common';\nimport { selectionSetToTypes } from './selection-set-to-types';\nimport { pascalCase } from 'pascal-case';\nexport class CompatibilityPluginVisitor extends BaseVisitor {\n constructor(rawConfig, _schema, options) {\n super(rawConfig, {\n reactApollo: options.reactApollo,\n noNamespaces: getConfigValue(rawConfig.noNamespaces, false),\n preResolveTypes: getConfigValue(rawConfig.preResolveTypes, false),\n strict: getConfigValue(rawConfig.strict, false),\n scalars: buildScalars(_schema, rawConfig.scalars),\n });\n this._schema = _schema;\n }\n getRootType(operationType) {\n if (operationType === 'query') {\n return this._schema.getQueryType().name;\n }\n else if (operationType === 'mutation') {\n return this._schema.getMutationType().name;\n }\n else if (operationType === 'subscription') {\n return this._schema.getSubscriptionType().name;\n }\n return null;\n }\n buildOperationBlock(node) {\n const typeName = this.getRootType(node.operation);\n const baseName = this.convertName(node.name.value, { suffix: `${pascalCase(node.operation)}` });\n const typesPrefix = this.config.noNamespaces ? this.convertName(node.name.value) : '';\n const selectionSetTypes = {\n [typesPrefix + this.convertName('Variables')]: {\n export: 'type',\n name: this.convertName(node.name.value, { suffix: `${pascalCase(node.operation)}Variables` }),\n },\n };\n selectionSetToTypes(typesPrefix, this, this._schema, typeName, baseName, node.operation, node.selectionSet, this.config.preResolveTypes, selectionSetTypes);\n return selectionSetTypes;\n }\n buildFragmentBlock(node) {\n const typeName = this._schema.getType(node.typeCondition.name.value).name;\n const baseName = this.convertName(node.name.value, { suffix: `Fragment` });\n const typesPrefix = this.config.noNamespaces ? this.convertName(node.name.value) : '';\n const selectionSetTypes = {};\n selectionSetToTypes(typesPrefix, this, this._schema, typeName, baseName, 'fragment', node.selectionSet, this.config.preResolveTypes, selectionSetTypes);\n return selectionSetTypes;\n }\n printTypes(selectionSetTypes) {\n return Object.keys(selectionSetTypes)\n .filter(typeName => typeName !== selectionSetTypes[typeName].name)\n .map(typeName => `export ${selectionSetTypes[typeName].export} ${typeName} = ${selectionSetTypes[typeName].name};`)\n .map(m => (this.config.noNamespaces ? m : indent(m)))\n .join('\\n');\n }\n FragmentDefinition(node) {\n const baseName = node.name.value;\n const results = [];\n const convertedName = this.convertName(baseName);\n const selectionSetTypes = this.buildFragmentBlock(node);\n const fragmentBlock = this.printTypes(selectionSetTypes);\n if (!this.config.noNamespaces) {\n results.push(new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('namespace')\n .withName(convertedName)\n .withBlock(fragmentBlock).string);\n }\n else {\n results.push(fragmentBlock);\n }\n return results.join('\\n');\n }\n OperationDefinition(node) {\n const baseName = node.name.value;\n const convertedName = this.convertName(baseName);\n const results = [];\n const selectionSetTypes = this.buildOperationBlock(node);\n if (this.config.reactApollo) {\n const reactApolloConfig = this.config.reactApollo;\n let hoc = true;\n let component = true;\n let hooks = false;\n if (typeof reactApolloConfig === 'object') {\n if (reactApolloConfig.withHOC === false) {\n hoc = false;\n }\n if (reactApolloConfig.withComponent === false) {\n component = false;\n }\n if (reactApolloConfig.withHooks) {\n hooks = true;\n }\n }\n const prefix = this.config.noNamespaces ? convertedName : '';\n selectionSetTypes[prefix + 'Document'] = {\n export: 'const',\n name: this.convertName(baseName, { suffix: 'Document' }),\n };\n if (hoc) {\n selectionSetTypes[prefix + 'Props'] = {\n export: 'type',\n name: this.convertName(baseName, { suffix: 'Props' }),\n };\n selectionSetTypes[prefix + 'HOC'] = {\n export: 'const',\n name: `with${convertedName}`,\n };\n }\n if (component) {\n selectionSetTypes[prefix + 'Component'] = {\n export: 'const',\n name: this.convertName(baseName, { suffix: 'Component' }),\n };\n }\n if (hooks) {\n selectionSetTypes['use' + prefix] = {\n export: 'const',\n name: 'use' + this.convertName(baseName, { suffix: pascalCase(node.operation) }),\n };\n }\n }\n const operationsBlock = this.printTypes(selectionSetTypes);\n if (!this.config.noNamespaces) {\n results.push(new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('namespace')\n .withName(convertedName)\n .withBlock(operationsBlock).string);\n }\n else {\n results.push(operationsBlock);\n }\n return results.join('\\n');\n }\n}\n//# sourceMappingURL=visitor.js.map","import { concatAST, visit } from 'graphql';\nimport { CompatibilityPluginVisitor } from './visitor';\nconst REACT_APOLLO_PLUGIN_NAME = 'typescript-react-apollo';\nexport const plugin = async (schema, documents, config, additionalData) => {\n const allAst = concatAST(documents.map(v => v.document));\n const reactApollo = ((additionalData || {}).allPlugins || []).find(p => Object.keys(p)[0] === REACT_APOLLO_PLUGIN_NAME);\n const visitor = new CompatibilityPluginVisitor(config, schema, {\n reactApollo: reactApollo\n ? {\n ...(config || {}),\n ...reactApollo[REACT_APOLLO_PLUGIN_NAME],\n }\n : null,\n });\n const visitorResult = visit(allAst, {\n leave: visitor,\n });\n const discriminateUnion = `type DiscriminateUnion<T, U> = T extends U ? T : never;\\n`;\n const requireField = `type RequireField<T, TNames extends string> = T & { [P in TNames]: (T & { [name: string]: never })[P] };\\n`;\n const result = visitorResult.definitions.filter(a => a && typeof a === 'string').join('\\n');\n return result.includes('DiscriminateUnion') ? [discriminateUnion, requireField, result].join('\\n') : result;\n};\n//# sourceMappingURL=index.js.map"],"names":["Kind","isObjectType","isInterfaceType","getBaseType","isNonNullType","isListType","isUnionType","BaseVisitor","getConfigValue","buildScalars","pascalCase","indent","DeclarationBlock","concatAST","visit"],"mappings":"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"}
\No newline at end of file