UNPKG

260 kBSource Map (JSON)View Raw
1{"version":3,"file":"index.cjs.js","sources":["../../../dist/plugins/other/visitor-plugin-common/src/scalars.js","../../../dist/plugins/other/visitor-plugin-common/src/mappers.js","../../../dist/plugins/other/visitor-plugin-common/src/utils.js","../../../dist/plugins/other/visitor-plugin-common/src/naming.js","../../../dist/plugins/other/visitor-plugin-common/src/enum-values.js","../../../dist/plugins/other/visitor-plugin-common/src/declaration-kinds.js","../../../dist/plugins/other/visitor-plugin-common/src/avoid-optionals.js","../../../dist/plugins/other/visitor-plugin-common/src/imports.js","../../../dist/plugins/other/visitor-plugin-common/src/base-visitor.js","../../../dist/plugins/other/visitor-plugin-common/src/variables-to-object.js","../../../dist/plugins/other/visitor-plugin-common/src/base-types-visitor.js","../../../dist/plugins/other/visitor-plugin-common/src/base-documents-visitor.js","../../../dist/plugins/other/visitor-plugin-common/src/base-resolvers-visitor.js","../../../dist/plugins/other/visitor-plugin-common/src/client-side-base-visitor.js","../../../dist/plugins/other/visitor-plugin-common/src/selection-set-to-object.js","../../../dist/plugins/other/visitor-plugin-common/src/selection-set-processor/base.js","../../../dist/plugins/other/visitor-plugin-common/src/selection-set-processor/pre-resolve-types.js","../../../dist/plugins/other/visitor-plugin-common/src/optimize-operations.js"],"sourcesContent":["export const DEFAULT_SCALARS = {\n ID: 'string',\n String: 'string',\n Boolean: 'boolean',\n Int: 'number',\n Float: 'number',\n};\n//# sourceMappingURL=scalars.js.map","export function isExternalMapperType(m) {\n return !!m.import;\n}\nvar MapperKind;\n(function (MapperKind) {\n MapperKind[MapperKind[\"Namespace\"] = 0] = \"Namespace\";\n MapperKind[MapperKind[\"Default\"] = 1] = \"Default\";\n MapperKind[MapperKind[\"Regular\"] = 2] = \"Regular\";\n})(MapperKind || (MapperKind = {}));\nfunction prepareLegacy(mapper) {\n const items = mapper.split('#');\n const isNamespace = items.length === 3;\n const isDefault = items[1].trim() === 'default' || items[1].startsWith('default ');\n const hasAlias = items[1].includes(' as ');\n return {\n items,\n isDefault,\n isNamespace,\n hasAlias,\n };\n}\nfunction prepare(mapper) {\n const [source, path] = mapper.split('#');\n const isNamespace = path.includes('.');\n const isDefault = path.trim() === 'default' || path.startsWith('default ');\n const hasAlias = path.includes(' as ');\n return {\n items: isNamespace ? [source, ...path.split('.')] : [source, path],\n isDefault,\n isNamespace,\n hasAlias,\n };\n}\nfunction isLegacyMode(mapper) {\n return mapper.split('#').length === 3;\n}\nexport function parseMapper(mapper, gqlTypeName = null, suffix) {\n if (isExternalMapper(mapper)) {\n const { isNamespace, isDefault, hasAlias, items } = isLegacyMode(mapper) ? prepareLegacy(mapper) : prepare(mapper);\n const mapperKind = isNamespace\n ? MapperKind.Namespace\n : isDefault\n ? MapperKind.Default\n : MapperKind.Regular;\n function handleAlias(isDefault = false) {\n const [importedType, aliasType] = items[1].split(/\\s+as\\s+/);\n const type = maybeSuffix(aliasType);\n return {\n importElement: isDefault ? type : `${importedType} as ${type}`,\n type: type,\n };\n }\n function maybeSuffix(type) {\n if (suffix) {\n return addSuffix(type, suffix);\n }\n return type;\n }\n function handle() {\n switch (mapperKind) {\n // ./my/module#Namespace#Identifier\n case MapperKind.Namespace: {\n const [, ns, identifier] = items;\n return {\n type: `${ns}.${identifier}`,\n importElement: ns,\n };\n }\n case MapperKind.Default: {\n // ./my/module#default as alias\n if (hasAlias) {\n return handleAlias(true);\n }\n const type = maybeSuffix(`${gqlTypeName}`);\n // ./my/module#default\n return {\n importElement: type,\n type,\n };\n }\n case MapperKind.Regular: {\n // ./my/module#Identifier as alias\n if (hasAlias) {\n return handleAlias();\n }\n const identifier = items[1];\n const type = maybeSuffix(identifier);\n // ./my/module#Identifier\n return {\n type,\n importElement: suffix ? `${identifier} as ${type}` : type,\n };\n }\n }\n }\n const { type, importElement } = handle();\n return {\n default: isDefault,\n isExternal: true,\n source: items[0],\n type,\n import: importElement.replace(/<(.*?)>/g, ''),\n };\n }\n return {\n isExternal: false,\n type: mapper,\n };\n}\nfunction addSuffix(element, suffix) {\n const generic = element.indexOf('<');\n if (generic === -1) {\n return `${element}${suffix}`;\n }\n return `${element.slice(0, generic)}${suffix}${element.slice(generic)}`;\n}\nexport function isExternalMapper(value) {\n return value.includes('#');\n}\nexport function transformMappers(rawMappers, mapperTypeSuffix) {\n const result = {};\n Object.keys(rawMappers).forEach(gqlTypeName => {\n const mapperDef = rawMappers[gqlTypeName];\n const parsedMapper = parseMapper(mapperDef, gqlTypeName, mapperTypeSuffix);\n result[gqlTypeName] = parsedMapper;\n });\n return result;\n}\nexport function buildMapperImport(source, types, useTypeImports) {\n if (!types || types.length === 0) {\n return null;\n }\n const defaultType = types.find(t => t.asDefault === true);\n let namedTypes = types.filter(t => !t.asDefault);\n if (useTypeImports) {\n if (defaultType) {\n // default as Baz\n namedTypes = [{ identifier: `default as ${defaultType.identifier}` }, ...namedTypes];\n }\n // { Foo, Bar as BarModel }\n const namedImports = namedTypes.length ? `{ ${namedTypes.map(t => t.identifier).join(', ')} }` : '';\n // { default as Baz, Foo, Bar as BarModel }\n return `import type ${[namedImports].filter(Boolean).join(', ')} from '${source}';`;\n }\n // { Foo, Bar as BarModel }\n const namedImports = namedTypes.length ? `{ ${namedTypes.map(t => t.identifier).join(', ')} }` : '';\n // Baz\n const defaultImport = defaultType ? defaultType.identifier : '';\n // Baz, { Foo, Bar as BarModel }\n return `import ${[defaultImport, namedImports].filter(Boolean).join(', ')} from '${source}';`;\n}\n//# sourceMappingURL=mappers.js.map","import { Kind, isScalarType, isEqualType, isNonNullType, isObjectType, isListType, isAbstractType, } from 'graphql';\nimport { DEFAULT_SCALARS } from './scalars';\nimport { parseMapper } from './mappers';\nexport const getConfigValue = (value, defaultValue) => {\n if (value === null || value === undefined) {\n return defaultValue;\n }\n return value;\n};\nexport function quoteIfNeeded(array, joinWith = ' & ') {\n if (array.length === 0) {\n return '';\n }\n else if (array.length === 1) {\n return array[0];\n }\n else {\n return `(${array.join(joinWith)})`;\n }\n}\nexport function block(array) {\n return array && array.length !== 0 ? '{\\n' + array.join('\\n') + '\\n}' : '';\n}\nexport function wrapWithSingleQuotes(value, skipNumericCheck = false) {\n if (skipNumericCheck) {\n if (typeof value === 'number') {\n return `${value}`;\n }\n else {\n return `'${value}'`;\n }\n }\n if (typeof value === 'number' ||\n (typeof value === 'string' && !isNaN(parseInt(value)) && parseFloat(value).toString() === value)) {\n return `${value}`;\n }\n return `'${value}'`;\n}\nexport function breakLine(str) {\n return str + '\\n';\n}\nexport function indent(str, count = 1) {\n return new Array(count).fill(' ').join('') + str;\n}\nexport function indentMultiline(str, count = 1) {\n const indentation = new Array(count).fill(' ').join('');\n const replaceWith = '\\n' + indentation;\n return indentation + str.replace(/\\n/g, replaceWith);\n}\nexport function transformComment(comment, indentLevel = 0, disabled = false) {\n if (!comment || comment === '' || disabled) {\n return '';\n }\n if (isStringValueNode(comment)) {\n comment = comment.value;\n }\n comment = comment.split('*/').join('*\\\\/');\n let lines = comment.split('\\n');\n if (lines.length === 1) {\n return indent(`/** ${lines[0]} */\\n`, indentLevel);\n }\n lines = ['/**', ...lines.map(line => ` * ${line}`), ' */\\n'];\n return stripTrailingSpaces(lines.map(line => indent(line, indentLevel)).join('\\n'));\n}\nexport class DeclarationBlock {\n constructor(_config) {\n this._config = _config;\n this._decorator = null;\n this._export = false;\n this._name = null;\n this._kind = null;\n this._methodName = null;\n this._content = null;\n this._block = null;\n this._nameGenerics = null;\n this._comment = null;\n this._ignoreBlockWrapper = false;\n this._config = {\n blockWrapper: '',\n blockTransformer: block => block,\n enumNameValueSeparator: ':',\n ...this._config,\n };\n }\n withDecorator(decorator) {\n this._decorator = decorator;\n return this;\n }\n export(exp = true) {\n if (!this._config.ignoreExport) {\n this._export = exp;\n }\n return this;\n }\n asKind(kind) {\n this._kind = kind;\n return this;\n }\n withComment(comment, disabled = false) {\n const nonEmptyComment = isStringValueNode(comment) ? !!comment.value : !!comment;\n if (nonEmptyComment && !disabled) {\n this._comment = transformComment(comment, 0);\n }\n return this;\n }\n withMethodCall(methodName, ignoreBlockWrapper = false) {\n this._methodName = methodName;\n this._ignoreBlockWrapper = ignoreBlockWrapper;\n return this;\n }\n withBlock(block) {\n this._block = block;\n return this;\n }\n withContent(content) {\n this._content = content;\n return this;\n }\n withName(name, generics = null) {\n this._name = name;\n this._nameGenerics = generics;\n return this;\n }\n get string() {\n let result = '';\n if (this._decorator) {\n result += this._decorator + '\\n';\n }\n if (this._export) {\n result += 'export ';\n }\n if (this._kind) {\n let extra = '';\n let name = '';\n if (['type', 'const', 'var', 'let'].includes(this._kind)) {\n extra = '= ';\n }\n if (this._name) {\n name = this._name + (this._nameGenerics || '') + ' ';\n }\n result += this._kind + ' ' + name + extra;\n }\n if (this._block) {\n if (this._content) {\n result += this._content;\n }\n const blockWrapper = this._ignoreBlockWrapper ? '' : this._config.blockWrapper;\n const before = '{' + blockWrapper;\n const after = blockWrapper + '}';\n const block = [before, this._block, after].filter(val => !!val).join('\\n');\n if (this._methodName) {\n result += `${this._methodName}(${this._config.blockTransformer(block)})`;\n }\n else {\n result += this._config.blockTransformer(block);\n }\n }\n else if (this._content) {\n result += this._content;\n }\n else if (this._kind) {\n result += this._config.blockTransformer('{}');\n }\n return stripTrailingSpaces((this._comment ? this._comment : '') +\n result +\n (this._kind === 'interface' || this._kind === 'enum' || this._kind === 'namespace' || this._kind === 'function'\n ? ''\n : ';') +\n '\\n');\n }\n}\nexport function getBaseTypeNode(typeNode) {\n if (typeNode.kind === Kind.LIST_TYPE || typeNode.kind === Kind.NON_NULL_TYPE) {\n return getBaseTypeNode(typeNode.type);\n }\n return typeNode;\n}\nexport function convertNameParts(str, func, removeUnderscore = false) {\n if (removeUnderscore) {\n return func(str);\n }\n return str\n .split('_')\n .map(s => func(s))\n .join('_');\n}\nexport function buildScalars(schema, scalarsMapping, defaultScalarsMapping = DEFAULT_SCALARS, defaultScalarType = 'any') {\n const result = {};\n Object.keys(defaultScalarsMapping).forEach(name => {\n result[name] = parseMapper(defaultScalarsMapping[name]);\n });\n if (schema) {\n const typeMap = schema.getTypeMap();\n Object.keys(typeMap)\n .map(typeName => typeMap[typeName])\n .filter(type => isScalarType(type))\n .map((scalarType) => {\n const name = scalarType.name;\n if (typeof scalarsMapping === 'string') {\n const value = parseMapper(scalarsMapping + '#' + name, name);\n result[name] = value;\n }\n else if (scalarsMapping && typeof scalarsMapping[name] === 'string') {\n const value = parseMapper(scalarsMapping[name], name);\n result[name] = value;\n }\n else if (scalarsMapping && scalarsMapping[name]) {\n result[name] = {\n isExternal: false,\n type: JSON.stringify(scalarsMapping[name]),\n };\n }\n else if (!defaultScalarsMapping[name]) {\n result[name] = {\n isExternal: false,\n type: defaultScalarType,\n };\n }\n });\n }\n else if (scalarsMapping) {\n if (typeof scalarsMapping === 'string') {\n throw new Error('Cannot use string scalars mapping when building without a schema');\n }\n Object.keys(scalarsMapping).forEach(name => {\n if (typeof scalarsMapping[name] === 'string') {\n const value = parseMapper(scalarsMapping[name], name);\n result[name] = value;\n }\n else {\n result[name] = {\n isExternal: false,\n type: JSON.stringify(scalarsMapping[name]),\n };\n }\n });\n }\n return result;\n}\nfunction isStringValueNode(node) {\n return node && typeof node === 'object' && node.kind === Kind.STRING;\n}\nexport function isRootType(type, schema) {\n return (isEqualType(type, schema.getQueryType()) ||\n isEqualType(type, schema.getMutationType()) ||\n isEqualType(type, schema.getSubscriptionType()));\n}\nexport function getRootTypeNames(schema) {\n return [schema.getQueryType(), schema.getMutationType(), schema.getSubscriptionType()]\n .filter(t => t)\n .map(t => t.name);\n}\nexport function stripMapperTypeInterpolation(identifier) {\n return identifier.trim().replace(/<{.*}>/, '');\n}\nexport const OMIT_TYPE = 'export type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;';\nexport const REQUIRE_FIELDS_TYPE = `export type RequireFields<T, K extends keyof T> = { [X in Exclude<keyof T, K>]?: T[X] } & { [P in K]-?: NonNullable<T[P]> };`;\nexport function mergeSelectionSets(selectionSet1, selectionSet2) {\n const newSelections = [...selectionSet1.selections];\n for (const selection2 of selectionSet2.selections) {\n if (selection2.kind === 'FragmentSpread') {\n newSelections.push(selection2);\n continue;\n }\n if (selection2.kind !== 'Field') {\n throw new TypeError('Invalid state.');\n }\n const match = newSelections.find(selection1 => selection1.kind === 'Field' && getFieldNodeNameValue(selection1) === getFieldNodeNameValue(selection2));\n if (match) {\n // recursively merge all selection sets\n if (match.kind === 'Field' && match.selectionSet && selection2.selectionSet) {\n mergeSelectionSets(match.selectionSet, selection2.selectionSet);\n }\n continue;\n }\n newSelections.push(selection2);\n }\n // replace existing selections\n selectionSet1.selections = newSelections;\n}\nexport const getFieldNodeNameValue = (node) => {\n return (node.alias || node.name).value;\n};\nexport function separateSelectionSet(selections) {\n return {\n fields: selections.filter(s => s.kind === Kind.FIELD),\n inlines: selections.filter(s => s.kind === Kind.INLINE_FRAGMENT),\n spreads: selections.filter(s => s.kind === Kind.FRAGMENT_SPREAD),\n };\n}\nexport function getPossibleTypes(schema, type) {\n if (isListType(type) || isNonNullType(type)) {\n return getPossibleTypes(schema, type.ofType);\n }\n else if (isObjectType(type)) {\n return [type];\n }\n else if (isAbstractType(type)) {\n return schema.getPossibleTypes(type);\n }\n return [];\n}\nexport function hasConditionalDirectives(directives) {\n if (directives.length === 0)\n return false;\n for (const directive of directives) {\n if (['skip', 'include'].includes(directive.name.value)) {\n return true;\n }\n }\n return false;\n}\nexport function wrapTypeWithModifiers(baseType, type, options) {\n let currentType = type;\n const modifiers = [];\n while (currentType) {\n if (isNonNullType(currentType)) {\n currentType = currentType.ofType;\n }\n else {\n modifiers.push(options.wrapOptional);\n }\n if (isListType(currentType)) {\n modifiers.push(options.wrapArray);\n currentType = currentType.ofType;\n }\n else {\n break;\n }\n }\n return modifiers.reduceRight((result, modifier) => modifier(result), baseType);\n}\nexport function removeDescription(nodes) {\n return nodes.map(node => ({ ...node, description: undefined }));\n}\nexport function wrapTypeNodeWithModifiers(baseType, typeNode) {\n switch (typeNode.kind) {\n case Kind.NAMED_TYPE: {\n return `Maybe<${baseType}>`;\n }\n case Kind.NON_NULL_TYPE: {\n const innerType = wrapTypeNodeWithModifiers(baseType, typeNode.type);\n return clearOptional(innerType);\n }\n case Kind.LIST_TYPE: {\n const innerType = wrapTypeNodeWithModifiers(baseType, typeNode.type);\n return `Maybe<Array<${innerType}>>`;\n }\n }\n}\nfunction clearOptional(str) {\n const rgx = new RegExp(`^Maybe<(.*?)>$`, 'i');\n if (str.startsWith(`Maybe`)) {\n return str.replace(rgx, '$1');\n }\n return str;\n}\nfunction stripTrailingSpaces(str) {\n return str.replace(/ +\\n/g, '\\n');\n}\n//# sourceMappingURL=utils.js.map","import { resolveExternalModuleAndFn } from '@graphql-codegen/plugin-helpers';\nimport { pascalCase } from 'change-case-all';\nimport { convertNameParts, getConfigValue } from './utils';\nfunction getKind(node) {\n if (typeof node === 'string') {\n return 'typeNames';\n }\n if (['EnumValueDefinition', 'EnumValue'].includes(node.kind)) {\n return 'enumValues';\n }\n return 'typeNames';\n}\nfunction getName(node) {\n if (node == null) {\n return undefined;\n }\n if (typeof node === 'string') {\n return node;\n }\n switch (node.kind) {\n case 'OperationDefinition':\n case 'Variable':\n case 'Argument':\n case 'FragmentSpread':\n case 'FragmentDefinition':\n case 'ObjectField':\n case 'Directive':\n case 'NamedType':\n case 'ScalarTypeDefinition':\n case 'ObjectTypeDefinition':\n case 'FieldDefinition':\n case 'InputValueDefinition':\n case 'InterfaceTypeDefinition':\n case 'UnionTypeDefinition':\n case 'EnumTypeDefinition':\n case 'EnumValueDefinition':\n case 'InputObjectTypeDefinition':\n case 'DirectiveDefinition': {\n return getName(node.name);\n }\n case 'Name': {\n return node.value;\n }\n case 'Field': {\n return getName(node.alias || node.name);\n }\n case 'VariableDefinition': {\n return getName(node.variable);\n }\n }\n return undefined;\n}\nexport function convertFactory(config) {\n function resolveConventionName(type) {\n if (!config.namingConvention) {\n return (str, opts = {}) => {\n return convertNameParts(str, pascalCase, getConfigValue((opts || {}).transformUnderscore, false));\n };\n }\n if (typeof config.namingConvention === 'string') {\n if (config.namingConvention === 'keep') {\n return str => str;\n }\n return (str, opts = {}) => {\n return convertNameParts(str, resolveExternalModuleAndFn(config.namingConvention), getConfigValue((opts || {}).transformUnderscore, false));\n };\n }\n if (typeof config.namingConvention === 'function') {\n return (str, opts = {}) => {\n return convertNameParts(str, config.namingConvention, getConfigValue((opts || {}).transformUnderscore, false));\n };\n }\n if (typeof config.namingConvention === 'object' && config.namingConvention[type] === 'keep') {\n return str => str;\n }\n if (typeof config.namingConvention === 'object') {\n if (!config.namingConvention[type]) {\n return (str, opts = {}) => {\n const transformUnderscore = config.namingConvention.transformUnderscore || (opts || {}).transformUnderscore;\n return convertNameParts(str, pascalCase, getConfigValue(transformUnderscore, false));\n };\n }\n return (str, opts = {}) => {\n return convertNameParts(str, resolveExternalModuleAndFn(config.namingConvention[type]), getConfigValue((opts || {}).transformUnderscore, true));\n };\n }\n return config.namingConvention[type];\n }\n return (node, opts) => {\n const prefix = opts && opts.prefix;\n const suffix = opts && opts.suffix;\n const kind = getKind(node);\n const str = [prefix || '', getName(node), suffix || ''].join('');\n return resolveConventionName(kind)(str, opts);\n };\n}\n//# sourceMappingURL=naming.js.map","import { isEnumType } from 'graphql';\nimport { DetailedError } from '@graphql-codegen/plugin-helpers';\nimport { parseMapper } from './mappers';\nfunction escapeString(str) {\n return str.replace(/\\\\/g, '\\\\\\\\').replace(/\\n/g, '\\\\n').replace(/'/g, \"\\\\'\");\n}\nexport function parseEnumValues({ schema, mapOrStr = {}, ignoreEnumValuesFromSchema, }) {\n const allTypes = schema.getTypeMap();\n const allEnums = Object.keys(allTypes).filter(t => isEnumType(allTypes[t]));\n if (typeof mapOrStr === 'object') {\n if (!ignoreEnumValuesFromSchema) {\n for (const enumTypeName of allEnums) {\n const enumType = schema.getType(enumTypeName);\n for (const { name, value } of enumType.getValues()) {\n if (value && value !== name) {\n mapOrStr[enumTypeName] = mapOrStr[enumTypeName] || {};\n if (typeof mapOrStr[enumTypeName] !== 'string' && !mapOrStr[enumTypeName][name]) {\n mapOrStr[enumTypeName][name] = typeof value === 'string' ? escapeString(value) : value;\n }\n }\n }\n }\n }\n const invalidMappings = Object.keys(mapOrStr).filter(gqlName => !allEnums.includes(gqlName));\n if (invalidMappings.length > 0) {\n throw new DetailedError(`Invalid 'enumValues' mapping!`, `The following types does not exist in your GraphQL schema: ${invalidMappings.join(', ')}`);\n }\n return Object.keys(mapOrStr).reduce((prev, gqlIdentifier) => {\n const pointer = mapOrStr[gqlIdentifier];\n if (typeof pointer === 'string') {\n const mapper = parseMapper(pointer, gqlIdentifier);\n return {\n ...prev,\n [gqlIdentifier]: {\n isDefault: mapper.isExternal && mapper.default,\n typeIdentifier: gqlIdentifier,\n sourceFile: mapper.isExternal ? mapper.source : null,\n sourceIdentifier: mapper.type,\n importIdentifier: mapper.isExternal ? mapper.import : null,\n mappedValues: null,\n },\n };\n }\n else if (typeof pointer === 'object') {\n return {\n ...prev,\n [gqlIdentifier]: {\n isDefault: false,\n typeIdentifier: gqlIdentifier,\n sourceFile: null,\n sourceIdentifier: null,\n importIdentifier: null,\n mappedValues: pointer,\n },\n };\n }\n else {\n throw new DetailedError(`Invalid \"enumValues\" configuration`, `Enum \"${gqlIdentifier}\": expected string or object (with enum values mapping)`);\n }\n }, {});\n }\n else if (typeof mapOrStr === 'string') {\n return allEnums\n .filter(enumName => !enumName.startsWith('__'))\n .reduce((prev, enumName) => {\n return {\n ...prev,\n [enumName]: {\n isDefault: false,\n typeIdentifier: enumName,\n sourceFile: mapOrStr,\n sourceIdentifier: enumName,\n importIdentifier: enumName,\n mappedValues: null,\n },\n };\n }, {});\n }\n return {};\n}\n//# sourceMappingURL=enum-values.js.map","export const DEFAULT_DECLARATION_KINDS = {\n scalar: 'type',\n input: 'type',\n type: 'type',\n interface: 'type',\n arguments: 'type',\n};\nexport function normalizeDeclarationKind(declarationKind) {\n if (typeof declarationKind === 'string') {\n return {\n scalar: declarationKind,\n input: declarationKind,\n type: declarationKind,\n interface: declarationKind,\n arguments: declarationKind,\n };\n }\n return {\n ...DEFAULT_DECLARATION_KINDS,\n ...declarationKind,\n };\n}\n//# sourceMappingURL=declaration-kinds.js.map","export const DEFAULT_AVOID_OPTIONALS = {\n object: false,\n inputValue: false,\n field: false,\n defaultValue: false,\n};\nexport function normalizeAvoidOptionals(avoidOptionals) {\n if (typeof avoidOptionals === 'boolean') {\n return {\n object: avoidOptionals,\n inputValue: avoidOptionals,\n field: avoidOptionals,\n defaultValue: avoidOptionals,\n };\n }\n return {\n ...DEFAULT_AVOID_OPTIONALS,\n ...avoidOptionals,\n };\n}\n//# sourceMappingURL=avoid-optionals.js.map","import { dirname, isAbsolute, join, relative, resolve } from 'path';\nimport parse from 'parse-filepath';\nexport function generateFragmentImportStatement(statement, kind) {\n const { importSource: fragmentImportSource, ...rest } = statement;\n const { identifiers, path, namespace } = fragmentImportSource;\n const importSource = {\n identifiers: identifiers\n .filter(fragmentImport => kind === 'both' || kind === fragmentImport.kind)\n .map(({ name }) => name),\n path,\n namespace,\n };\n return generateImportStatement({\n importSource,\n ...rest,\n typesImport: kind === 'type' ? statement.typesImport : false,\n });\n}\nexport function generateImportStatement(statement) {\n const { baseDir, importSource, outputPath, typesImport } = statement;\n const importPath = resolveImportPath(baseDir, outputPath, importSource.path);\n const importNames = importSource.identifiers && importSource.identifiers.length\n ? `{ ${Array.from(new Set(importSource.identifiers)).join(', ')} }`\n : '*';\n const importAlias = importSource.namespace ? ` as ${importSource.namespace}` : '';\n const importStatement = typesImport ? 'import type' : 'import';\n return `${importStatement} ${importNames}${importAlias} from '${importPath}';${importAlias ? '\\n' : ''}`;\n}\nfunction resolveImportPath(baseDir, outputPath, sourcePath) {\n const shouldAbsolute = !sourcePath.startsWith('~');\n if (shouldAbsolute) {\n const absGeneratedFilePath = resolve(baseDir, outputPath);\n const absImportFilePath = resolve(baseDir, sourcePath);\n return resolveRelativeImport(absGeneratedFilePath, absImportFilePath);\n }\n else {\n return sourcePath.replace(`~`, '');\n }\n}\nexport function resolveRelativeImport(from, to) {\n if (!isAbsolute(from)) {\n throw new Error(`Argument 'from' must be an absolute path, '${from}' given.`);\n }\n if (!isAbsolute(to)) {\n throw new Error(`Argument 'to' must be an absolute path, '${to}' given.`);\n }\n return fixLocalFilePath(clearExtension(relative(dirname(from), to)));\n}\nexport function resolveImportSource(source) {\n return typeof source === 'string' ? { path: source } : source;\n}\nexport function clearExtension(path) {\n const parsedPath = parse(path);\n return join(parsedPath.dir, parsedPath.name).replace(/\\\\/g, '/');\n}\nexport function fixLocalFilePath(path) {\n return !path.startsWith('..') ? `./${path}` : path;\n}\n//# sourceMappingURL=imports.js.map","import autoBind from 'auto-bind';\nimport { convertFactory } from './naming';\nexport class BaseVisitor {\n constructor(rawConfig, additionalConfig) {\n this._declarationBlockConfig = {};\n this._parsedConfig = {\n convert: convertFactory(rawConfig),\n typesPrefix: rawConfig.typesPrefix || '',\n typesSuffix: rawConfig.typesSuffix || '',\n externalFragments: rawConfig.externalFragments || [],\n fragmentImports: rawConfig.fragmentImports || [],\n addTypename: !rawConfig.skipTypename,\n nonOptionalTypename: !!rawConfig.nonOptionalTypename,\n useTypeImports: !!rawConfig.useTypeImports,\n ...(additionalConfig || {}),\n };\n this.scalars = {};\n Object.keys(this.config.scalars || {}).forEach(key => {\n this.scalars[key] = this.config.scalars[key].type;\n });\n autoBind(this);\n }\n getVisitorKindContextFromAncestors(ancestors) {\n if (!ancestors) {\n return [];\n }\n return ancestors.map(t => t.kind).filter(Boolean);\n }\n get config() {\n return this._parsedConfig;\n }\n convertName(node, options) {\n const useTypesPrefix = typeof (options && options.useTypesPrefix) === 'boolean' ? options.useTypesPrefix : true;\n const useTypesSuffix = typeof (options && options.useTypesSuffix) === 'boolean' ? options.useTypesSuffix : true;\n let convertedName = '';\n if (useTypesPrefix) {\n convertedName += this.config.typesPrefix;\n }\n convertedName += this.config.convert(node, options);\n if (useTypesSuffix) {\n convertedName += this.config.typesSuffix;\n }\n return convertedName;\n }\n getOperationSuffix(node, operationType) {\n const { omitOperationSuffix = false, dedupeOperationSuffix = false } = this.config;\n const operationName = typeof node === 'string' ? node : node.name ? node.name.value : '';\n return omitOperationSuffix\n ? ''\n : dedupeOperationSuffix && operationName.toLowerCase().endsWith(operationType.toLowerCase())\n ? ''\n : operationType;\n }\n getFragmentSuffix(node) {\n return this.getOperationSuffix(node, 'Fragment');\n }\n getFragmentName(node) {\n return this.convertName(node, {\n suffix: this.getFragmentSuffix(node),\n useTypesPrefix: false,\n });\n }\n getFragmentVariableName(node) {\n const { omitOperationSuffix = false, dedupeOperationSuffix = false, fragmentVariableSuffix = 'FragmentDoc', fragmentVariablePrefix = '', } = this.config;\n const fragmentName = typeof node === 'string' ? node : node.name.value;\n const suffix = omitOperationSuffix\n ? ''\n : dedupeOperationSuffix &&\n fragmentName.toLowerCase().endsWith('fragment') &&\n fragmentVariableSuffix.toLowerCase().startsWith('fragment')\n ? fragmentVariableSuffix.substring('fragment'.length)\n : fragmentVariableSuffix;\n return this.convertName(node, {\n prefix: fragmentVariablePrefix,\n suffix,\n useTypesPrefix: false,\n });\n }\n getPunctuation(_declarationKind) {\n return '';\n }\n}\n//# sourceMappingURL=base-visitor.js.map","import { Kind } from 'graphql';\nimport { indent, getBaseTypeNode } from './utils';\nimport autoBind from 'auto-bind';\nexport class OperationVariablesToObject {\n constructor(_scalars, _convertName, _namespacedImportName = null, _enumNames = [], _enumPrefix = true, _enumValues = {}, _applyCoercion = false) {\n this._scalars = _scalars;\n this._convertName = _convertName;\n this._namespacedImportName = _namespacedImportName;\n this._enumNames = _enumNames;\n this._enumPrefix = _enumPrefix;\n this._enumValues = _enumValues;\n this._applyCoercion = _applyCoercion;\n autoBind(this);\n }\n getName(node) {\n if (node.name) {\n if (typeof node.name === 'string') {\n return node.name;\n }\n return node.name.value;\n }\n else if (node.variable) {\n return node.variable.name.value;\n }\n return null;\n }\n transform(variablesNode) {\n if (!variablesNode || variablesNode.length === 0) {\n return null;\n }\n return (variablesNode.map(variable => indent(this.transformVariable(variable))).join(`${this.getPunctuation()}\\n`) +\n this.getPunctuation());\n }\n getScalar(name) {\n const prefix = this._namespacedImportName ? `${this._namespacedImportName}.` : '';\n return `${prefix}Scalars['${name}']`;\n }\n transformVariable(variable) {\n let typeValue = null;\n const prefix = this._namespacedImportName ? `${this._namespacedImportName}.` : '';\n if (typeof variable.type === 'string') {\n typeValue = variable.type;\n }\n else {\n const baseType = getBaseTypeNode(variable.type);\n const typeName = baseType.name.value;\n if (this._scalars[typeName]) {\n typeValue = this.getScalar(typeName);\n }\n else if (this._enumValues[typeName] && this._enumValues[typeName].sourceFile) {\n typeValue = this._enumValues[typeName].typeIdentifier || this._enumValues[typeName].sourceIdentifier;\n }\n else {\n typeValue = `${prefix}${this._convertName(baseType, {\n useTypesPrefix: this._enumNames.includes(typeName) ? this._enumPrefix : true,\n })}`;\n }\n }\n const fieldName = this.getName(variable);\n const fieldType = this.wrapAstTypeWithModifiers(typeValue, variable.type, this._applyCoercion);\n const hasDefaultValue = variable.defaultValue != null && typeof variable.defaultValue !== 'undefined';\n const isNonNullType = variable.type.kind === Kind.NON_NULL_TYPE;\n const formattedFieldString = this.formatFieldString(fieldName, isNonNullType, hasDefaultValue);\n const formattedTypeString = this.formatTypeString(fieldType, isNonNullType, hasDefaultValue);\n return `${formattedFieldString}: ${formattedTypeString}`;\n }\n wrapAstTypeWithModifiers(_baseType, _typeNode, _applyCoercion) {\n throw new Error(`You must override \"wrapAstTypeWithModifiers\" of OperationVariablesToObject!`);\n }\n formatFieldString(fieldName, isNonNullType, _hasDefaultValue) {\n return fieldName;\n }\n formatTypeString(fieldType, isNonNullType, hasDefaultValue) {\n const prefix = this._namespacedImportName ? `${this._namespacedImportName}.` : '';\n if (hasDefaultValue) {\n return `${prefix}Maybe<${fieldType}>`;\n }\n return fieldType;\n }\n getPunctuation() {\n return ',';\n }\n}\n//# sourceMappingURL=variables-to-object.js.map","import { isEnumType, Kind, } from 'graphql';\nimport flatMap from 'array.prototype.flatmap';\nimport { BaseVisitor } from './base-visitor';\nimport { DEFAULT_SCALARS } from './scalars';\nimport { normalizeDeclarationKind } from './declaration-kinds';\nimport { transformComment, buildScalars, DeclarationBlock, indent, wrapWithSingleQuotes, getConfigValue, } from './utils';\nimport { OperationVariablesToObject } from './variables-to-object';\nimport { parseEnumValues } from './enum-values';\nexport class BaseTypesVisitor extends BaseVisitor {\n constructor(_schema, rawConfig, additionalConfig, defaultScalars = DEFAULT_SCALARS) {\n super(rawConfig, {\n enumPrefix: getConfigValue(rawConfig.enumPrefix, true),\n onlyOperationTypes: getConfigValue(rawConfig.onlyOperationTypes, false),\n addUnderscoreToArgsType: getConfigValue(rawConfig.addUnderscoreToArgsType, false),\n enumValues: parseEnumValues({\n schema: _schema,\n mapOrStr: rawConfig.enumValues,\n ignoreEnumValuesFromSchema: rawConfig.ignoreEnumValuesFromSchema,\n }),\n declarationKind: normalizeDeclarationKind(rawConfig.declarationKind),\n scalars: buildScalars(_schema, rawConfig.scalars, defaultScalars),\n fieldWrapperValue: getConfigValue(rawConfig.fieldWrapperValue, 'T'),\n wrapFieldDefinitions: getConfigValue(rawConfig.wrapFieldDefinitions, false),\n ignoreEnumValuesFromSchema: getConfigValue(rawConfig.ignoreEnumValuesFromSchema, false),\n ...additionalConfig,\n });\n this._schema = _schema;\n this._argumentsTransformer = new OperationVariablesToObject(this.scalars, this.convertName);\n }\n getExportPrefix() {\n return 'export ';\n }\n getFieldWrapperValue() {\n if (this.config.fieldWrapperValue) {\n return `${this.getExportPrefix()}type FieldWrapper<T> = ${this.config.fieldWrapperValue};`;\n }\n return '';\n }\n getScalarsImports() {\n return Object.keys(this.config.scalars)\n .map(enumName => {\n const mappedValue = this.config.scalars[enumName];\n if (mappedValue.isExternal) {\n return this._buildTypeImport(mappedValue.import, mappedValue.source, mappedValue.default);\n }\n return null;\n })\n .filter(a => a);\n }\n get scalarsDefinition() {\n const allScalars = Object.keys(this.config.scalars).map(scalarName => {\n const scalarValue = this.config.scalars[scalarName].type;\n const scalarType = this._schema.getType(scalarName);\n const comment = scalarType && scalarType.astNode && scalarType.description ? transformComment(scalarType.description, 1) : '';\n const { scalar } = this._parsedConfig.declarationKind;\n return comment + indent(`${scalarName}: ${scalarValue}${this.getPunctuation(scalar)}`);\n });\n return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind(this._parsedConfig.declarationKind.scalar)\n .withName('Scalars')\n .withComment('All built-in and custom scalars, mapped to their actual values')\n .withBlock(allScalars.join('\\n')).string;\n }\n setDeclarationBlockConfig(config) {\n this._declarationBlockConfig = config;\n }\n setArgumentsTransformer(argumentsTransfomer) {\n this._argumentsTransformer = argumentsTransfomer;\n }\n NonNullType(node) {\n const asString = node.type;\n return asString;\n }\n getInputObjectDeclarationBlock(node) {\n return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind(this._parsedConfig.declarationKind.input)\n .withName(this.convertName(node))\n .withComment(node.description)\n .withBlock(node.fields.join('\\n'));\n }\n InputObjectTypeDefinition(node) {\n return this.getInputObjectDeclarationBlock(node).string;\n }\n InputValueDefinition(node) {\n const comment = transformComment(node.description, 1);\n const { input } = this._parsedConfig.declarationKind;\n return comment + indent(`${node.name}: ${node.type}${this.getPunctuation(input)}`);\n }\n Name(node) {\n return node.value;\n }\n FieldDefinition(node) {\n const typeString = node.type;\n const { type } = this._parsedConfig.declarationKind;\n const comment = this.getFieldComment(node);\n return comment + indent(`${node.name}: ${typeString}${this.getPunctuation(type)}`);\n }\n UnionTypeDefinition(node, key, parent) {\n if (this.config.onlyOperationTypes)\n return '';\n const originalNode = parent[key];\n const possibleTypes = originalNode.types\n .map(t => (this.scalars[t.name.value] ? this._getScalar(t.name.value) : this.convertName(t)))\n .join(' | ');\n return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('type')\n .withName(this.convertName(node))\n .withComment(node.description)\n .withContent(possibleTypes).string;\n }\n mergeInterfaces(interfaces, hasOtherFields) {\n return interfaces.join(' & ') + (interfaces.length && hasOtherFields ? ' & ' : '');\n }\n appendInterfacesAndFieldsToBlock(block, interfaces, fields) {\n block.withContent(this.mergeInterfaces(interfaces, fields.length > 0));\n block.withBlock(this.mergeAllFields(fields, interfaces.length > 0));\n }\n getObjectTypeDeclarationBlock(node, originalNode) {\n const optionalTypename = this.config.nonOptionalTypename ? '__typename' : '__typename?';\n const { type, interface: interfacesType } = this._parsedConfig.declarationKind;\n const allFields = [\n ...(this.config.addTypename\n ? [\n indent(`${this.config.immutableTypes ? 'readonly ' : ''}${optionalTypename}: '${node.name}'${this.getPunctuation(type)}`),\n ]\n : []),\n ...node.fields,\n ];\n const interfacesNames = originalNode.interfaces ? originalNode.interfaces.map(i => this.convertName(i)) : [];\n const declarationBlock = new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind(type)\n .withName(this.convertName(node))\n .withComment(node.description);\n if (type === 'interface' || type === 'class') {\n if (interfacesNames.length > 0) {\n const keyword = interfacesType === 'interface' && type === 'class' ? 'implements' : 'extends';\n declarationBlock.withContent(`${keyword} ` + interfacesNames.join(', ') + (allFields.length > 0 ? ' ' : ' {}'));\n }\n declarationBlock.withBlock(this.mergeAllFields(allFields, false));\n }\n else {\n this.appendInterfacesAndFieldsToBlock(declarationBlock, interfacesNames, allFields);\n }\n return declarationBlock;\n }\n getFieldComment(node) {\n let commentText = node.description;\n const deprecationDirective = node.directives.find((v) => v.name === 'deprecated');\n if (deprecationDirective) {\n const deprecationReason = this.getDeprecationReason(deprecationDirective);\n commentText = `${commentText ? `${commentText}\\n` : ''}@deprecated ${deprecationReason}`;\n }\n const comment = transformComment(commentText, 1);\n return comment;\n }\n mergeAllFields(allFields, _hasInterfaces) {\n return allFields.join('\\n');\n }\n ObjectTypeDefinition(node, key, parent) {\n if (this.config.onlyOperationTypes)\n return '';\n const originalNode = parent[key];\n return [this.getObjectTypeDeclarationBlock(node, originalNode).string, this.buildArgumentsBlock(originalNode)]\n .filter(f => f)\n .join('\\n\\n');\n }\n getInterfaceTypeDeclarationBlock(node, _originalNode) {\n const declarationBlock = new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind(this._parsedConfig.declarationKind.interface)\n .withName(this.convertName(node))\n .withComment(node.description);\n return declarationBlock.withBlock(node.fields.join('\\n'));\n }\n InterfaceTypeDefinition(node, key, parent) {\n if (this.config.onlyOperationTypes)\n return '';\n const originalNode = parent[key];\n return [this.getInterfaceTypeDeclarationBlock(node, originalNode).string, this.buildArgumentsBlock(originalNode)]\n .filter(f => f)\n .join('\\n\\n');\n }\n ScalarTypeDefinition(_node) {\n // We empty this because we handle scalars in a different way, see constructor.\n return '';\n }\n _buildTypeImport(identifier, source, asDefault = false) {\n const { useTypeImports } = this.config;\n if (asDefault) {\n if (useTypeImports) {\n return `import type { default as ${identifier} } from '${source}';`;\n }\n return `import ${identifier} from '${source}';`;\n }\n return `import${useTypeImports ? ' type' : ''} { ${identifier} } from '${source}';`;\n }\n handleEnumValueMapper(typeIdentifier, importIdentifier, sourceIdentifier, sourceFile) {\n const importStatement = this._buildTypeImport(importIdentifier || sourceIdentifier, sourceFile);\n if (importIdentifier !== sourceIdentifier || sourceIdentifier !== typeIdentifier) {\n return [importStatement, `import ${typeIdentifier} = ${sourceIdentifier};`];\n }\n return [importStatement];\n }\n getEnumsImports() {\n return flatMap(Object.keys(this.config.enumValues), enumName => {\n const mappedValue = this.config.enumValues[enumName];\n if (mappedValue.sourceFile) {\n if (mappedValue.isDefault) {\n return [this._buildTypeImport(mappedValue.typeIdentifier, mappedValue.sourceFile, true)];\n }\n return this.handleEnumValueMapper(mappedValue.typeIdentifier, mappedValue.importIdentifier, mappedValue.sourceIdentifier, mappedValue.sourceFile);\n }\n return [];\n }).filter(a => a);\n }\n EnumTypeDefinition(node) {\n const enumName = node.name;\n // In case of mapped external enum string\n if (this.config.enumValues[enumName] && this.config.enumValues[enumName].sourceFile) {\n return null;\n }\n return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('enum')\n .withName(this.convertName(node, { useTypesPrefix: this.config.enumPrefix }))\n .withComment(node.description)\n .withBlock(this.buildEnumValuesBlock(enumName, node.values)).string;\n }\n // We are using it in order to transform \"description\" field\n StringValue(node) {\n return node.value;\n }\n makeValidEnumIdentifier(identifier) {\n if (/^[0-9]/.exec(identifier)) {\n return wrapWithSingleQuotes(identifier, true);\n }\n return identifier;\n }\n buildEnumValuesBlock(typeName, values) {\n const schemaEnumType = this._schema\n ? this._schema.getType(typeName)\n : undefined;\n return values\n .map(enumOption => {\n const optionName = this.makeValidEnumIdentifier(this.convertName(enumOption, { useTypesPrefix: false, transformUnderscore: true }));\n const comment = transformComment(enumOption.description, 1);\n const schemaEnumValue = schemaEnumType && !this.config.ignoreEnumValuesFromSchema\n ? schemaEnumType.getValue(enumOption.name).value\n : undefined;\n let enumValue = typeof schemaEnumValue !== 'undefined' ? schemaEnumValue : enumOption.name;\n if (this.config.enumValues[typeName] &&\n this.config.enumValues[typeName].mappedValues &&\n typeof this.config.enumValues[typeName].mappedValues[enumValue] !== 'undefined') {\n enumValue = this.config.enumValues[typeName].mappedValues[enumValue];\n }\n return (comment +\n indent(`${optionName}${this._declarationBlockConfig.enumNameValueSeparator} ${wrapWithSingleQuotes(enumValue, typeof schemaEnumValue !== 'undefined')}`));\n })\n .join(',\\n');\n }\n DirectiveDefinition(_node) {\n return '';\n }\n getArgumentsObjectDeclarationBlock(node, name, field) {\n return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind(this._parsedConfig.declarationKind.arguments)\n .withName(this.convertName(name))\n .withComment(node.description)\n .withBlock(this._argumentsTransformer.transform(field.arguments));\n }\n getArgumentsObjectTypeDefinition(node, name, field) {\n return this.getArgumentsObjectDeclarationBlock(node, name, field).string;\n }\n buildArgumentsBlock(node) {\n const fieldsWithArguments = node.fields.filter(field => field.arguments && field.arguments.length > 0) || [];\n return fieldsWithArguments\n .map(field => {\n const name = node.name.value +\n (this.config.addUnderscoreToArgsType ? '_' : '') +\n this.convertName(field, {\n useTypesPrefix: false,\n useTypesSuffix: false,\n }) +\n 'Args';\n return this.getArgumentsObjectTypeDefinition(node, name, field);\n })\n .join('\\n\\n');\n }\n _getScalar(name) {\n return `Scalars['${name}']`;\n }\n _getTypeForNode(node) {\n const typeAsString = node.name;\n if (this.scalars[typeAsString]) {\n return this._getScalar(typeAsString);\n }\n else if (this.config.enumValues[typeAsString]) {\n return this.config.enumValues[typeAsString].typeIdentifier;\n }\n const schemaType = this._schema.getType(node.name);\n if (schemaType && isEnumType(schemaType)) {\n return this.convertName(node, { useTypesPrefix: this.config.enumPrefix });\n }\n return this.convertName(node);\n }\n NamedType(node, key, parent, path, ancestors) {\n const currentVisitContext = this.getVisitorKindContextFromAncestors(ancestors);\n const isVisitingInputType = currentVisitContext.includes(Kind.INPUT_OBJECT_TYPE_DEFINITION);\n const typeToUse = this._getTypeForNode(node);\n if (!isVisitingInputType && this.config.fieldWrapperValue && this.config.wrapFieldDefinitions) {\n return `FieldWrapper<${typeToUse}>`;\n }\n return typeToUse;\n }\n ListType(node) {\n const asString = node.type;\n return this.wrapWithListType(asString);\n }\n SchemaDefinition() {\n return null;\n }\n getDeprecationReason(directive) {\n if (directive.name === 'deprecated') {\n const hasArguments = directive.arguments.length > 0;\n let reason = 'Field no longer supported';\n if (hasArguments) {\n reason = directive.arguments[0].value;\n }\n return reason;\n }\n }\n wrapWithListType(str) {\n return `Array<${str}>`;\n }\n}\n//# sourceMappingURL=base-types-visitor.js.map","import autoBind from 'auto-bind';\nimport { DEFAULT_SCALARS } from './scalars';\nimport { DeclarationBlock, buildScalars, getConfigValue } from './utils';\nimport { OperationVariablesToObject } from './variables-to-object';\nimport { BaseVisitor } from './base-visitor';\nimport { pascalCase } from 'change-case-all';\nfunction getRootType(operation, schema) {\n switch (operation) {\n case 'query':\n return schema.getQueryType();\n case 'mutation':\n return schema.getMutationType();\n case 'subscription':\n return schema.getSubscriptionType();\n }\n}\nexport class BaseDocumentsVisitor extends BaseVisitor {\n constructor(rawConfig, additionalConfig, _schema, defaultScalars = DEFAULT_SCALARS) {\n super(rawConfig, {\n exportFragmentSpreadSubTypes: getConfigValue(rawConfig.exportFragmentSpreadSubTypes, false),\n enumPrefix: getConfigValue(rawConfig.enumPrefix, true),\n preResolveTypes: getConfigValue(rawConfig.preResolveTypes, false),\n dedupeOperationSuffix: getConfigValue(rawConfig.dedupeOperationSuffix, false),\n omitOperationSuffix: getConfigValue(rawConfig.omitOperationSuffix, false),\n skipTypeNameForRoot: getConfigValue(rawConfig.skipTypeNameForRoot, false),\n namespacedImportName: getConfigValue(rawConfig.namespacedImportName, null),\n experimentalFragmentVariables: getConfigValue(rawConfig.experimentalFragmentVariables, false),\n addTypename: !rawConfig.skipTypename,\n globalNamespace: !!rawConfig.globalNamespace,\n operationResultSuffix: getConfigValue(rawConfig.operationResultSuffix, ''),\n scalars: buildScalars(_schema, rawConfig.scalars, defaultScalars),\n ...(additionalConfig || {}),\n });\n this._schema = _schema;\n this._unnamedCounter = 1;\n this._globalDeclarations = new Set();\n autoBind(this);\n this._variablesTransfomer = new OperationVariablesToObject(this.scalars, this.convertName, this.config.namespacedImportName);\n }\n getGlobalDeclarations(noExport = false) {\n return Array.from(this._globalDeclarations).map(t => (noExport ? t : `export ${t}`));\n }\n setSelectionSetHandler(handler) {\n this._selectionSetToObject = handler;\n }\n setDeclarationBlockConfig(config) {\n this._declarationBlockConfig = config;\n }\n setVariablesTransformer(variablesTransfomer) {\n this._variablesTransfomer = variablesTransfomer;\n }\n get schema() {\n return this._schema;\n }\n get addTypename() {\n return this._parsedConfig.addTypename;\n }\n handleAnonymousOperation(node) {\n const name = node.name && node.name.value;\n if (name) {\n return this.convertName(name, {\n useTypesPrefix: false,\n useTypesSuffix: false,\n });\n }\n return this.convertName(this._unnamedCounter++ + '', {\n prefix: 'Unnamed_',\n suffix: '_',\n useTypesPrefix: false,\n useTypesSuffix: false,\n });\n }\n FragmentDefinition(node) {\n const fragmentRootType = this._schema.getType(node.typeCondition.name.value);\n const selectionSet = this._selectionSetToObject.createNext(fragmentRootType, node.selectionSet);\n const fragmentSuffix = this.getFragmentSuffix(node);\n return [\n selectionSet.transformFragmentSelectionSetToTypes(node.name.value, fragmentSuffix, this._declarationBlockConfig),\n this.config.experimentalFragmentVariables\n ? new DeclarationBlock({\n ...this._declarationBlockConfig,\n blockTransformer: t => this.applyVariablesWrapper(t),\n })\n .export()\n .asKind('type')\n .withName(this.convertName(node.name.value, {\n suffix: fragmentSuffix + 'Variables',\n }))\n .withBlock(this._variablesTransfomer.transform(node.variableDefinitions)).string\n : undefined,\n ]\n .filter(r => r)\n .join('\\n\\n');\n }\n applyVariablesWrapper(variablesBlock) {\n return variablesBlock;\n }\n OperationDefinition(node) {\n const name = this.handleAnonymousOperation(node);\n const operationRootType = getRootType(node.operation, this._schema);\n if (!operationRootType) {\n throw new Error(`Unable to find root schema type for operation type \"${node.operation}\"!`);\n }\n const selectionSet = this._selectionSetToObject.createNext(operationRootType, node.selectionSet);\n const visitedOperationVariables = this._variablesTransfomer.transform(node.variableDefinitions);\n const operationType = pascalCase(node.operation);\n const operationTypeSuffix = this.getOperationSuffix(name, operationType);\n const operationResult = new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('type')\n .withName(this.convertName(name, {\n suffix: operationTypeSuffix + this._parsedConfig.operationResultSuffix,\n }))\n .withContent(selectionSet.transformSelectionSet()).string;\n const operationVariables = new DeclarationBlock({\n ...this._declarationBlockConfig,\n blockTransformer: t => this.applyVariablesWrapper(t),\n })\n .export()\n .asKind('type')\n .withName(this.convertName(name, {\n suffix: operationTypeSuffix + 'Variables',\n }))\n .withBlock(visitedOperationVariables).string;\n return [operationVariables, operationResult].filter(r => r).join('\\n\\n');\n }\n}\n//# sourceMappingURL=base-documents-visitor.js.map","import { BaseVisitor } from './base-visitor';\nimport autoBind from 'auto-bind';\nimport { DEFAULT_SCALARS } from './scalars';\nimport { DeclarationBlock, indent, getBaseTypeNode, buildScalars, getConfigValue, getRootTypeNames, stripMapperTypeInterpolation, OMIT_TYPE, REQUIRE_FIELDS_TYPE, wrapTypeWithModifiers, } from './utils';\nimport { isObjectType, isInterfaceType, isNonNullType, isUnionType, isEnumType, GraphQLObjectType, } from 'graphql';\nimport { OperationVariablesToObject } from './variables-to-object';\nimport { parseMapper, transformMappers, buildMapperImport } from './mappers';\nimport { parseEnumValues } from './enum-values';\nimport { ApolloFederation, getBaseType } from '@graphql-codegen/plugin-helpers';\nexport class BaseResolversVisitor extends BaseVisitor {\n constructor(rawConfig, additionalConfig, _schema, defaultScalars = DEFAULT_SCALARS) {\n super(rawConfig, {\n immutableTypes: getConfigValue(rawConfig.immutableTypes, false),\n optionalResolveType: getConfigValue(rawConfig.optionalResolveType, false),\n enumPrefix: getConfigValue(rawConfig.enumPrefix, true),\n federation: getConfigValue(rawConfig.federation, false),\n resolverTypeWrapperSignature: getConfigValue(rawConfig.resolverTypeWrapperSignature, 'Promise<T> | T'),\n enumValues: parseEnumValues({\n schema: _schema,\n mapOrStr: rawConfig.enumValues,\n }),\n addUnderscoreToArgsType: getConfigValue(rawConfig.addUnderscoreToArgsType, false),\n onlyResolveTypeForInterfaces: getConfigValue(rawConfig.onlyResolveTypeForInterfaces, false),\n contextType: parseMapper(rawConfig.contextType || 'any', 'ContextType'),\n fieldContextTypes: getConfigValue(rawConfig.fieldContextTypes, []),\n resolverTypeSuffix: getConfigValue(rawConfig.resolverTypeSuffix, 'Resolvers'),\n allResolversTypeName: getConfigValue(rawConfig.allResolversTypeName, 'Resolvers'),\n rootValueType: parseMapper(rawConfig.rootValueType || '{}', 'RootValueType'),\n namespacedImportName: getConfigValue(rawConfig.namespacedImportName, ''),\n avoidOptionals: getConfigValue(rawConfig.avoidOptionals, false),\n defaultMapper: rawConfig.defaultMapper\n ? parseMapper(rawConfig.defaultMapper || 'any', 'DefaultMapperType')\n : null,\n mappers: transformMappers(rawConfig.mappers || {}, rawConfig.mapperTypeSuffix),\n scalars: buildScalars(_schema, rawConfig.scalars, defaultScalars),\n internalResolversPrefix: getConfigValue(rawConfig.internalResolversPrefix, '__'),\n ...(additionalConfig || {}),\n });\n this._schema = _schema;\n this._declarationBlockConfig = {};\n this._collectedResolvers = {};\n this._collectedDirectiveResolvers = {};\n this._usedMappers = {};\n this._resolversTypes = {};\n this._resolversParentTypes = {};\n this._rootTypeNames = [];\n this._globalDeclarations = new Set();\n this._hasScalars = false;\n this._hasFederation = false;\n autoBind(this);\n this._federation = new ApolloFederation({ enabled: this.config.federation, schema: this.schema });\n this._rootTypeNames = getRootTypeNames(_schema);\n this._variablesTransfomer = new OperationVariablesToObject(this.scalars, this.convertName, this.config.namespacedImportName);\n this._resolversTypes = this.createResolversFields(type => this.applyResolverTypeWrapper(type), type => this.clearResolverTypeWrapper(type), name => this.getTypeToUse(name));\n this._resolversParentTypes = this.createResolversFields(type => type, type => type, name => this.getParentTypeToUse(name), namedType => !isEnumType(namedType));\n this._fieldContextTypeMap = this.createFieldContextTypeMap();\n }\n getResolverTypeWrapperSignature() {\n return `export type ResolverTypeWrapper<T> = ${this.config.resolverTypeWrapperSignature};`;\n }\n shouldMapType(type, checkedBefore = {}, duringCheck = []) {\n if (checkedBefore[type.name] !== undefined) {\n return checkedBefore[type.name];\n }\n if (type.name.startsWith('__') || this.config.scalars[type.name]) {\n return false;\n }\n if (this.config.mappers[type.name]) {\n return true;\n }\n if (isObjectType(type) || isInterfaceType(type)) {\n const fields = type.getFields();\n return Object.keys(fields)\n .filter(fieldName => {\n const field = fields[fieldName];\n const fieldType = getBaseType(field.type);\n return !duringCheck.includes(fieldType.name);\n })\n .some(fieldName => {\n const field = fields[fieldName];\n const fieldType = getBaseType(field.type);\n if (checkedBefore[fieldType.name] !== undefined) {\n return checkedBefore[fieldType.name];\n }\n if (this.config.mappers[type.name]) {\n return true;\n }\n duringCheck.push(type.name);\n const innerResult = this.shouldMapType(fieldType, checkedBefore, duringCheck);\n return innerResult;\n });\n }\n return false;\n }\n convertName(node, options, applyNamespacedImport = false) {\n const sourceType = super.convertName(node, options);\n return `${applyNamespacedImport && this.config.namespacedImportName ? this.config.namespacedImportName + '.' : ''}${sourceType}`;\n }\n // Kamil: this one is heeeeavvyyyy\n createResolversFields(applyWrapper, clearWrapper, getTypeToUse, shouldInclude) {\n const allSchemaTypes = this._schema.getTypeMap();\n const nestedMapping = {};\n const typeNames = this._federation.filterTypeNames(Object.keys(allSchemaTypes));\n typeNames.forEach(typeName => {\n const schemaType = allSchemaTypes[typeName];\n nestedMapping[typeName] = this.shouldMapType(schemaType, nestedMapping);\n });\n return typeNames.reduce((prev, typeName) => {\n const schemaType = allSchemaTypes[typeName];\n if (typeName.startsWith('__') || (shouldInclude && !shouldInclude(schemaType))) {\n return prev;\n }\n let shouldApplyOmit = false;\n const isRootType = this._rootTypeNames.includes(typeName);\n const isMapped = this.config.mappers[typeName];\n const isScalar = this.config.scalars[typeName];\n const hasDefaultMapper = !!(this.config.defaultMapper && this.config.defaultMapper.type);\n if (isRootType) {\n prev[typeName] = applyWrapper(this.config.rootValueType.type);\n return prev;\n }\n else if (isMapped && this.config.mappers[typeName].type) {\n this.markMapperAsUsed(typeName);\n prev[typeName] = applyWrapper(this.config.mappers[typeName].type);\n }\n else if (isInterfaceType(schemaType)) {\n const allTypesMap = this._schema.getTypeMap();\n const implementingTypes = [];\n for (const graphqlType of Object.values(allTypesMap)) {\n if (graphqlType instanceof GraphQLObjectType) {\n const allInterfaces = graphqlType.getInterfaces();\n if (allInterfaces.some(int => int.name === schemaType.name)) {\n implementingTypes.push(graphqlType.name);\n }\n }\n }\n const possibleTypes = implementingTypes.map(name => getTypeToUse(name)).join(' | ') || 'never';\n prev[typeName] = possibleTypes;\n return prev;\n }\n else if (isEnumType(schemaType) && this.config.enumValues[typeName]) {\n prev[typeName] =\n this.config.enumValues[typeName].sourceIdentifier ||\n this.convertName(this.config.enumValues[typeName].typeIdentifier);\n }\n else if (hasDefaultMapper && !hasPlaceholder(this.config.defaultMapper.type)) {\n prev[typeName] = applyWrapper(this.config.defaultMapper.type);\n }\n else if (isScalar) {\n prev[typeName] = applyWrapper(this._getScalar(typeName));\n }\n else if (isUnionType(schemaType)) {\n prev[typeName] = schemaType\n .getTypes()\n .map(type => getTypeToUse(type.name))\n .join(' | ');\n }\n else {\n shouldApplyOmit = true;\n prev[typeName] = this.convertName(typeName, { useTypesPrefix: this.config.enumPrefix }, true);\n }\n if (shouldApplyOmit && prev[typeName] !== 'any' && isObjectType(schemaType)) {\n const fields = schemaType.getFields();\n const relevantFields = this._federation\n .filterFieldNames(Object.keys(fields))\n .map(fieldName => {\n const field = fields[fieldName];\n const baseType = getBaseType(field.type);\n const isUnion = isUnionType(baseType);\n if (!this.config.mappers[baseType.name] && !isUnion && !nestedMapping[baseType.name]) {\n return null;\n }\n const addOptionalSign = !this.config.avoidOptionals && !isNonNullType(field.type);\n return {\n addOptionalSign,\n fieldName,\n replaceWithType: wrapTypeWithModifiers(getTypeToUse(baseType.name), field.type, {\n wrapOptional: this.applyMaybe,\n wrapArray: this.wrapWithArray,\n }),\n };\n })\n .filter(a => a);\n if (relevantFields.length > 0) {\n // Puts ResolverTypeWrapper on top of an entire type\n prev[typeName] = applyWrapper(this.replaceFieldsInType(prev[typeName], relevantFields));\n }\n else {\n // We still want to use ResolverTypeWrapper, even if we don't touch any fields\n prev[typeName] = applyWrapper(prev[typeName]);\n }\n }\n if (isMapped && hasPlaceholder(prev[typeName])) {\n prev[typeName] = replacePlaceholder(prev[typeName], typeName);\n }\n if (!isMapped && hasDefaultMapper && hasPlaceholder(this.config.defaultMapper.type)) {\n // Make sure the inner type has no ResolverTypeWrapper\n const name = clearWrapper(isScalar ? this._getScalar(typeName) : prev[typeName]);\n const replaced = replacePlaceholder(this.config.defaultMapper.type, name);\n // Don't wrap Union with ResolverTypeWrapper, each inner type already has it\n if (isUnionType(schemaType)) {\n prev[typeName] = replaced;\n }\n else {\n prev[typeName] = applyWrapper(replacePlaceholder(this.config.defaultMapper.type, name));\n }\n }\n return prev;\n }, {});\n }\n replaceFieldsInType(typeName, relevantFields) {\n this._globalDeclarations.add(OMIT_TYPE);\n return `Omit<${typeName}, ${relevantFields.map(f => `'${f.fieldName}'`).join(' | ')}> & { ${relevantFields\n .map(f => `${f.fieldName}${f.addOptionalSign ? '?' : ''}: ${f.replaceWithType}`)\n .join(', ')} }`;\n }\n applyMaybe(str) {\n const namespacedImportPrefix = this.config.namespacedImportName ? this.config.namespacedImportName + '.' : '';\n return `${namespacedImportPrefix}Maybe<${str}>`;\n }\n applyResolverTypeWrapper(str) {\n return `ResolverTypeWrapper<${this.clearResolverTypeWrapper(str)}>`;\n }\n clearMaybe(str) {\n const namespacedImportPrefix = this.config.namespacedImportName ? this.config.namespacedImportName + '.' : '';\n if (str.startsWith(`${namespacedImportPrefix}Maybe<`)) {\n const maybeRe = new RegExp(`${namespacedImportPrefix.replace('.', '\\\\.')}Maybe<(.*?)>$`);\n return str.replace(maybeRe, '$1');\n }\n return str;\n }\n clearResolverTypeWrapper(str) {\n if (str.startsWith('ResolverTypeWrapper<')) {\n return str.replace(/ResolverTypeWrapper<(.*?)>$/, '$1');\n }\n return str;\n }\n wrapWithArray(t) {\n if (this.config.immutableTypes) {\n return `ReadonlyArray<${t}>`;\n }\n return `Array<${t}>`;\n }\n createFieldContextTypeMap() {\n return this.config.fieldContextTypes.reduce((prev, fieldContextType) => {\n const items = fieldContextType.split('#');\n if (items.length === 3) {\n const [path, source, contextTypeName] = items;\n return { ...prev, [path]: parseMapper(`${source}#${contextTypeName}`) };\n }\n const [path, contextType] = items;\n return { ...prev, [path]: parseMapper(contextType) };\n }, {});\n }\n buildResolversTypes() {\n const declarationKind = 'type';\n return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind(declarationKind)\n .withName(this.convertName('ResolversTypes'))\n .withComment('Mapping between all available schema types and the resolvers types')\n .withBlock(Object.keys(this._resolversTypes)\n .map(typeName => indent(`${typeName}: ${this._resolversTypes[typeName]}${this.getPunctuation(declarationKind)}`))\n .join('\\n')).string;\n }\n buildResolversParentTypes() {\n const declarationKind = 'type';\n return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind(declarationKind)\n .withName(this.convertName('ResolversParentTypes'))\n .withComment('Mapping between all available schema types and the resolvers parents')\n .withBlock(Object.keys(this._resolversParentTypes)\n .map(typeName => indent(`${typeName}: ${this._resolversParentTypes[typeName]}${this.getPunctuation(declarationKind)}`))\n .join('\\n')).string;\n }\n get schema() {\n return this._schema;\n }\n get defaultMapperType() {\n return this.config.defaultMapper.type;\n }\n get unusedMappers() {\n return Object.keys(this.config.mappers).filter(name => !this._usedMappers[name]);\n }\n get globalDeclarations() {\n return Array.from(this._globalDeclarations);\n }\n isMapperImported(groupedMappers, identifier, source) {\n const exists = !groupedMappers[source] ? false : !!groupedMappers[source].find(m => m.identifier === identifier);\n const existsFromEnums = !!Object.keys(this.config.enumValues)\n .map(key => this.config.enumValues[key])\n .find(o => o.sourceFile === source && o.typeIdentifier === identifier);\n return exists || existsFromEnums;\n }\n get mappersImports() {\n const groupedMappers = {};\n const addMapper = (source, identifier, asDefault) => {\n if (!this.isMapperImported(groupedMappers, identifier, source)) {\n if (!groupedMappers[source]) {\n groupedMappers[source] = [];\n }\n groupedMappers[source].push({ identifier, asDefault });\n }\n };\n Object.keys(this.config.mappers)\n .map(gqlTypeName => ({ gqlType: gqlTypeName, mapper: this.config.mappers[gqlTypeName] }))\n .filter(({ mapper }) => mapper.isExternal)\n .forEach(({ mapper }) => {\n const externalMapper = mapper;\n const identifier = stripMapperTypeInterpolation(externalMapper.import);\n addMapper(externalMapper.source, identifier, externalMapper.default);\n });\n if (this.config.contextType.isExternal) {\n addMapper(this.config.contextType.source, this.config.contextType.import, this.config.contextType.default);\n }\n if (this.config.rootValueType.isExternal) {\n addMapper(this.config.rootValueType.source, this.config.rootValueType.import, this.config.rootValueType.default);\n }\n if (this.config.defaultMapper && this.config.defaultMapper.isExternal) {\n const identifier = stripMapperTypeInterpolation(this.config.defaultMapper.import);\n addMapper(this.config.defaultMapper.source, identifier, this.config.defaultMapper.default);\n }\n Object.values(this._fieldContextTypeMap).forEach(parsedMapper => {\n if (parsedMapper.isExternal) {\n addMapper(parsedMapper.source, parsedMapper.import, parsedMapper.default);\n }\n });\n return Object.keys(groupedMappers)\n .map(source => buildMapperImport(source, groupedMappers[source], this.config.useTypeImports))\n .filter(Boolean);\n }\n setDeclarationBlockConfig(config) {\n this._declarationBlockConfig = config;\n }\n setVariablesTransformer(variablesTransfomer) {\n this._variablesTransfomer = variablesTransfomer;\n }\n hasScalars() {\n return this._hasScalars;\n }\n hasFederation() {\n return this._hasFederation;\n }\n getRootResolver() {\n const name = this.convertName(this.config.allResolversTypeName);\n const declarationKind = 'type';\n const contextType = `<ContextType = ${this.config.contextType.type}>`;\n // This is here because we don't want to break IResolvers, so there is a mapping by default,\n // and if the developer is overriding typesPrefix, it won't get generated at all.\n const deprecatedIResolvers = !this.config.typesPrefix\n ? `\n/**\n * @deprecated\n * Use \"Resolvers\" root object instead. If you wish to get \"IResolvers\", add \"typesPrefix: I\" to your config.\n */\nexport type IResolvers${contextType} = ${name}<ContextType>;`\n : '';\n return [\n new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind(declarationKind)\n .withName(name, contextType)\n .withBlock(Object.keys(this._collectedResolvers)\n .map(schemaTypeName => {\n const resolverType = this._collectedResolvers[schemaTypeName];\n return indent(this.formatRootResolver(schemaTypeName, resolverType, declarationKind));\n })\n .join('\\n')).string,\n deprecatedIResolvers,\n ].join('\\n');\n }\n formatRootResolver(schemaTypeName, resolverType, declarationKind) {\n return `${schemaTypeName}${this.config.avoidOptionals ? '' : '?'}: ${resolverType}${this.getPunctuation(declarationKind)}`;\n }\n getAllDirectiveResolvers() {\n if (Object.keys(this._collectedDirectiveResolvers).length) {\n const declarationKind = 'type';\n const name = this.convertName('DirectiveResolvers');\n const contextType = `<ContextType = ${this.config.contextType.type}>`;\n // This is here because we don't want to break IResolvers, so there is a mapping by default,\n // and if the developer is overriding typesPrefix, it won't get generated at all.\n const deprecatedIResolvers = !this.config.typesPrefix\n ? `\n/**\n * @deprecated\n * Use \"DirectiveResolvers\" root object instead. If you wish to get \"IDirectiveResolvers\", add \"typesPrefix: I\" to your config.\n */\nexport type IDirectiveResolvers${contextType} = ${name}<ContextType>;`\n : '';\n return [\n new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind(declarationKind)\n .withName(name, contextType)\n .withBlock(Object.keys(this._collectedDirectiveResolvers)\n .map(schemaTypeName => {\n const resolverType = this._collectedDirectiveResolvers[schemaTypeName];\n return indent(this.formatRootResolver(schemaTypeName, resolverType, declarationKind));\n })\n .join('\\n')).string,\n deprecatedIResolvers,\n ].join('\\n');\n }\n return '';\n }\n Name(node) {\n return node.value;\n }\n ListType(node) {\n const asString = node.type;\n return this.wrapWithArray(asString);\n }\n _getScalar(name) {\n return `${this.config.namespacedImportName ? this.config.namespacedImportName + '.' : ''}Scalars['${name}']`;\n }\n NamedType(node) {\n const nameStr = node.name;\n if (this.config.scalars[nameStr]) {\n return this._getScalar(nameStr);\n }\n return this.convertName(node, null, true);\n }\n NonNullType(node) {\n const asString = node.type;\n return asString;\n }\n markMapperAsUsed(name) {\n this._usedMappers[name] = true;\n }\n getTypeToUse(name) {\n const resolversType = this.convertName('ResolversTypes');\n return `${resolversType}['${name}']`;\n }\n getParentTypeToUse(name) {\n const resolversType = this.convertName('ResolversParentTypes');\n return `${resolversType}['${name}']`;\n }\n getParentTypeForSignature(_node) {\n return 'ParentType';\n }\n transformParentGenericType(parentType) {\n return `ParentType extends ${parentType} = ${parentType}`;\n }\n FieldDefinition(node, key, parent) {\n const hasArguments = node.arguments && node.arguments.length > 0;\n const declarationKind = 'type';\n return (parentName) => {\n const original = parent[key];\n const baseType = getBaseTypeNode(original.type);\n const realType = baseType.name.value;\n const parentType = this.schema.getType(parentName);\n if (this._federation.skipField({ fieldNode: original, parentType: parentType })) {\n return null;\n }\n const typeToUse = this.getTypeToUse(realType);\n const mappedType = this._variablesTransfomer.wrapAstTypeWithModifiers(typeToUse, original.type);\n const subscriptionType = this._schema.getSubscriptionType();\n const isSubscriptionType = subscriptionType && subscriptionType.name === parentName;\n let argsType = hasArguments\n ? this.convertName(parentName +\n (this.config.addUnderscoreToArgsType ? '_' : '') +\n this.convertName(node.name, {\n useTypesPrefix: false,\n useTypesSuffix: false,\n }) +\n 'Args', {\n useTypesPrefix: true,\n }, true)\n : null;\n if (argsType !== null) {\n const argsToForceRequire = original.arguments.filter(arg => !!arg.defaultValue || arg.type.kind === 'NonNullType');\n if (argsToForceRequire.length > 0) {\n argsType = this.applyRequireFields(argsType, argsToForceRequire);\n }\n else if (original.arguments.length > 0) {\n argsType = this.applyOptionalFields(argsType, original.arguments);\n }\n }\n const parentTypeSignature = this._federation.transformParentType({\n fieldNode: original,\n parentType,\n parentTypeSignature: this.getParentTypeForSignature(node),\n });\n const mappedTypeKey = isSubscriptionType ? `${mappedType}, \"${node.name}\"` : mappedType;\n const signature = {\n name: node.name,\n modifier: this.config.avoidOptionals ? '' : '?',\n type: isSubscriptionType ? 'SubscriptionResolver' : 'Resolver',\n genericTypes: [\n mappedTypeKey,\n parentTypeSignature,\n this._fieldContextTypeMap[`${parentName}.${node.name}`]\n ? this._fieldContextTypeMap[`${parentName}.${node.name}`].type\n : 'ContextType',\n argsType,\n ].filter(f => f),\n };\n if (this._federation.isResolveReferenceField(node)) {\n this._hasFederation = true;\n signature.type = 'ReferenceResolver';\n if (signature.genericTypes.length >= 3) {\n signature.genericTypes = signature.genericTypes.slice(0, 3);\n }\n }\n return indent(`${signature.name}${signature.modifier}: ${signature.type}<${signature.genericTypes.join(', ')}>${this.getPunctuation(declarationKind)}`);\n };\n }\n applyRequireFields(argsType, fields) {\n this._globalDeclarations.add(REQUIRE_FIELDS_TYPE);\n return `RequireFields<${argsType}, ${fields.map(f => `'${f.name.value}'`).join(' | ')}>`;\n }\n applyOptionalFields(argsType, _fields) {\n this._globalDeclarations.add(REQUIRE_FIELDS_TYPE);\n return `RequireFields<${argsType}, never>`;\n }\n ObjectTypeDefinition(node) {\n var _a, _b, _c;\n const declarationKind = 'type';\n const name = this.convertName(node, {\n suffix: this.config.resolverTypeSuffix,\n });\n const typeName = node.name;\n const parentType = this.getParentTypeToUse(typeName);\n const isRootType = [\n (_a = this.schema.getQueryType()) === null || _a === void 0 ? void 0 : _a.name,\n (_b = this.schema.getMutationType()) === null || _b === void 0 ? void 0 : _b.name,\n (_c = this.schema.getSubscriptionType()) === null || _c === void 0 ? void 0 : _c.name,\n ].includes(typeName);\n const fieldsContent = node.fields.map((f) => f(node.name));\n if (!isRootType) {\n fieldsContent.push(indent(`${this.config.internalResolversPrefix}isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>${this.getPunctuation(declarationKind)}`));\n }\n const block = new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind(declarationKind)\n .withName(name, `<ContextType = ${this.config.contextType.type}, ${this.transformParentGenericType(parentType)}>`)\n .withBlock(fieldsContent.join('\\n'));\n this._collectedResolvers[node.name] = name + '<ContextType>';\n return block.string;\n }\n UnionTypeDefinition(node, key, parent) {\n const declarationKind = 'type';\n const name = this.convertName(node, {\n suffix: this.config.resolverTypeSuffix,\n });\n const originalNode = parent[key];\n const possibleTypes = originalNode.types\n .map(node => node.name.value)\n .map(f => `'${f}'`)\n .join(' | ');\n this._collectedResolvers[node.name] = name + '<ContextType>';\n const parentType = this.getParentTypeToUse(node.name);\n return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind(declarationKind)\n .withName(name, `<ContextType = ${this.config.contextType.type}, ${this.transformParentGenericType(parentType)}>`)\n .withBlock(indent(`${this.config.internalResolversPrefix}resolveType${this.config.optionalResolveType ? '?' : ''}: TypeResolveFn<${possibleTypes}, ParentType, ContextType>${this.getPunctuation(declarationKind)}`)).string;\n }\n ScalarTypeDefinition(node) {\n const nameAsString = node.name;\n const baseName = this.getTypeToUse(nameAsString);\n if (this._federation.skipScalar(nameAsString)) {\n return null;\n }\n this._hasScalars = true;\n this._collectedResolvers[node.name] = 'GraphQLScalarType';\n return new DeclarationBlock({\n ...this._declarationBlockConfig,\n blockTransformer(block) {\n return block;\n },\n })\n .export()\n .asKind('interface')\n .withName(this.convertName(node, {\n suffix: 'ScalarConfig',\n }), ` extends GraphQLScalarTypeConfig<${baseName}, any>`)\n .withBlock(indent(`name: '${node.name}'${this.getPunctuation('interface')}`)).string;\n }\n DirectiveDefinition(node, key, parent) {\n if (this._federation.skipDirective(node.name)) {\n return null;\n }\n const directiveName = this.convertName(node, {\n suffix: 'DirectiveResolver',\n });\n const sourceNode = parent[key];\n const hasArguments = sourceNode.arguments && sourceNode.arguments.length > 0;\n this._collectedDirectiveResolvers[node.name] = directiveName + '<any, any, ContextType>';\n const directiveArgsTypeName = this.convertName(node, {\n suffix: 'DirectiveArgs',\n });\n return [\n new DeclarationBlock({\n ...this._declarationBlockConfig,\n blockTransformer(block) {\n return block;\n },\n })\n .export()\n .asKind('type')\n .withName(directiveArgsTypeName)\n .withContent(`{ ${hasArguments ? this._variablesTransfomer.transform(sourceNode.arguments) : ''} }`).string,\n new DeclarationBlock({\n ...this._declarationBlockConfig,\n blockTransformer(block) {\n return block;\n },\n })\n .export()\n .asKind('type')\n .withName(directiveName, `<Result, Parent, ContextType = ${this.config.contextType.type}, Args = ${directiveArgsTypeName}>`)\n .withContent(`DirectiveResolverFn<Result, Parent, ContextType, Args>`).string,\n ].join('\\n');\n }\n buildEnumResolverContentBlock(_node, _mappedEnumType) {\n throw new Error(`buildEnumResolverContentBlock is not implemented!`);\n }\n buildEnumResolversExplicitMappedValues(_node, _valuesMapping) {\n throw new Error(`buildEnumResolversExplicitMappedValues is not implemented!`);\n }\n EnumTypeDefinition(node) {\n const rawTypeName = node.name;\n // If we have enumValues set, and it's point to an external enum - we need to allow internal values resolvers\n // In case we have enumValues set but as explicit values, no need to to do mapping since it's already\n // have type validation (the original enum has been modified by base types plugin).\n // If we have mapper for that type - we can skip\n if (!this.config.mappers[rawTypeName] && !this.config.enumValues[rawTypeName]) {\n return null;\n }\n const name = this.convertName(node, { suffix: this.config.resolverTypeSuffix });\n this._collectedResolvers[rawTypeName] = name;\n const hasExplicitValues = this.config.enumValues[rawTypeName] && this.config.enumValues[rawTypeName].mappedValues;\n return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('type')\n .withName(name)\n .withContent(hasExplicitValues\n ? this.buildEnumResolversExplicitMappedValues(node, this.config.enumValues[rawTypeName].mappedValues)\n : this.buildEnumResolverContentBlock(node, this.getTypeToUse(rawTypeName))).string;\n }\n InterfaceTypeDefinition(node) {\n const name = this.convertName(node, {\n suffix: this.config.resolverTypeSuffix,\n });\n const declarationKind = 'type';\n const allTypesMap = this._schema.getTypeMap();\n const implementingTypes = [];\n this._collectedResolvers[node.name] = name + '<ContextType>';\n for (const graphqlType of Object.values(allTypesMap)) {\n if (graphqlType instanceof GraphQLObjectType) {\n const allInterfaces = graphqlType.getInterfaces();\n if (allInterfaces.find(int => int.name === node.name)) {\n implementingTypes.push(graphqlType.name);\n }\n }\n }\n const parentType = this.getParentTypeToUse(node.name);\n const possibleTypes = implementingTypes.map(name => `'${name}'`).join(' | ') || 'null';\n const fields = this.config.onlyResolveTypeForInterfaces ? [] : node.fields || [];\n return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind(declarationKind)\n .withName(name, `<ContextType = ${this.config.contextType.type}, ${this.transformParentGenericType(parentType)}>`)\n .withBlock([\n indent(`${this.config.internalResolversPrefix}resolveType${this.config.optionalResolveType ? '?' : ''}: TypeResolveFn<${possibleTypes}, ParentType, ContextType>${this.getPunctuation(declarationKind)}`),\n ...fields.map((f) => f(node.name)),\n ].join('\\n')).string;\n }\n SchemaDefinition() {\n return null;\n }\n}\nfunction replacePlaceholder(pattern, typename) {\n return pattern.replace('{T}', typename);\n}\nfunction hasPlaceholder(pattern) {\n return pattern.includes('{T}');\n}\n//# sourceMappingURL=base-resolvers-visitor.js.map","import { BaseVisitor } from './base-visitor';\nimport autoBind from 'auto-bind';\nimport { print, visit, Kind, } from 'graphql';\nimport { DepGraph } from 'dependency-graph';\nimport gqlTag from 'graphql-tag';\nimport { getConfigValue, buildScalars } from './utils';\nimport { basename, extname } from 'path';\nimport { DEFAULT_SCALARS } from './scalars';\nimport { pascalCase } from 'change-case-all';\nimport { generateFragmentImportStatement } from './imports';\nimport { optimizeDocumentNode } from '@graphql-tools/optimize';\ngqlTag.enableExperimentalFragmentVariables();\nexport var DocumentMode;\n(function (DocumentMode) {\n DocumentMode[\"graphQLTag\"] = \"graphQLTag\";\n DocumentMode[\"documentNode\"] = \"documentNode\";\n DocumentMode[\"documentNodeImportFragments\"] = \"documentNodeImportFragments\";\n DocumentMode[\"external\"] = \"external\";\n DocumentMode[\"string\"] = \"string\";\n})(DocumentMode || (DocumentMode = {}));\nconst EXTENSIONS_TO_REMOVE = ['.ts', '.tsx', '.js', '.jsx'];\nexport class ClientSideBaseVisitor extends BaseVisitor {\n constructor(_schema, _fragments, rawConfig, additionalConfig, documents) {\n super(rawConfig, {\n scalars: buildScalars(_schema, rawConfig.scalars, DEFAULT_SCALARS),\n dedupeOperationSuffix: getConfigValue(rawConfig.dedupeOperationSuffix, false),\n optimizeDocumentNode: getConfigValue(rawConfig.optimizeDocumentNode, true),\n omitOperationSuffix: getConfigValue(rawConfig.omitOperationSuffix, false),\n gqlImport: rawConfig.gqlImport || null,\n documentNodeImport: rawConfig.documentNodeImport || null,\n noExport: !!rawConfig.noExport,\n importOperationTypesFrom: getConfigValue(rawConfig.importOperationTypesFrom, null),\n operationResultSuffix: getConfigValue(rawConfig.operationResultSuffix, ''),\n documentVariablePrefix: getConfigValue(rawConfig.documentVariablePrefix, ''),\n documentVariableSuffix: getConfigValue(rawConfig.documentVariableSuffix, 'Document'),\n fragmentVariablePrefix: getConfigValue(rawConfig.fragmentVariablePrefix, ''),\n fragmentVariableSuffix: getConfigValue(rawConfig.fragmentVariableSuffix, 'FragmentDoc'),\n documentMode: ((rawConfig) => {\n if (typeof rawConfig.noGraphQLTag === 'boolean') {\n return rawConfig.noGraphQLTag ? DocumentMode.documentNode : DocumentMode.graphQLTag;\n }\n return getConfigValue(rawConfig.documentMode, DocumentMode.graphQLTag);\n })(rawConfig),\n importDocumentNodeExternallyFrom: getConfigValue(rawConfig.importDocumentNodeExternallyFrom, ''),\n pureMagicComment: getConfigValue(rawConfig.pureMagicComment, false),\n experimentalFragmentVariables: getConfigValue(rawConfig.experimentalFragmentVariables, false),\n ...additionalConfig,\n });\n this._schema = _schema;\n this._fragments = _fragments;\n this._collectedOperations = [];\n this._documents = [];\n this._additionalImports = [];\n this._imports = new Set();\n this._documents = documents;\n autoBind(this);\n }\n _extractFragments(document, withNested = false) {\n if (!document) {\n return [];\n }\n const names = new Set();\n visit(document, {\n enter: {\n FragmentSpread: (node) => {\n names.add(node.name.value);\n if (withNested) {\n const foundFragment = this._fragments.find(f => f.name === node.name.value);\n if (foundFragment) {\n const childItems = this._extractFragments(foundFragment.node, true);\n if (childItems && childItems.length > 0) {\n for (const item of childItems) {\n names.add(item);\n }\n }\n }\n }\n },\n },\n });\n return Array.from(names);\n }\n _transformFragments(document) {\n const includeNestedFragments = this.config.documentMode === DocumentMode.documentNode;\n return this._extractFragments(document, includeNestedFragments).map(document => this.getFragmentVariableName(document));\n }\n _includeFragments(fragments) {\n if (fragments && fragments.length > 0) {\n if (this.config.documentMode === DocumentMode.documentNode) {\n return this._fragments\n .filter(f => fragments.includes(this.getFragmentVariableName(f.name)))\n .map(fragment => print(fragment.node))\n .join('\\n');\n }\n else if (this.config.documentMode === DocumentMode.documentNodeImportFragments) {\n return '';\n }\n else {\n return `${fragments.map(name => '${' + name + '}').join('\\n')}`;\n }\n }\n return '';\n }\n _prepareDocument(documentStr) {\n return documentStr;\n }\n _gql(node) {\n const fragments = this._transformFragments(node);\n const doc = this._prepareDocument(`\n ${print(node).split('\\\\').join('\\\\\\\\') /* Re-escape escaped values in GraphQL syntax */}\n ${this._includeFragments(fragments)}`);\n if (this.config.documentMode === DocumentMode.documentNode) {\n let gqlObj = gqlTag([doc]);\n if (this.config.optimizeDocumentNode) {\n gqlObj = optimizeDocumentNode(gqlObj);\n }\n return JSON.stringify(gqlObj);\n }\n else if (this.config.documentMode === DocumentMode.documentNodeImportFragments) {\n let gqlObj = gqlTag([doc]);\n if (this.config.optimizeDocumentNode) {\n gqlObj = optimizeDocumentNode(gqlObj);\n }\n if (fragments.length > 0) {\n const definitions = [\n ...gqlObj.definitions.map(t => JSON.stringify(t)),\n ...fragments.map(name => `...${name}.definitions`),\n ].join();\n return `{\"kind\":\"${Kind.DOCUMENT}\",\"definitions\":[${definitions}]}`;\n }\n return JSON.stringify(gqlObj);\n }\n else if (this.config.documentMode === DocumentMode.string) {\n return '`' + doc + '`';\n }\n const gqlImport = this._parseImport(this.config.gqlImport || 'graphql-tag');\n return (gqlImport.propName || 'gql') + '`' + doc + '`';\n }\n _generateFragment(fragmentDocument) {\n const name = this.getFragmentVariableName(fragmentDocument);\n const fragmentTypeSuffix = this.getFragmentSuffix(fragmentDocument);\n return `export const ${name}${this.getDocumentNodeSignature(this.convertName(fragmentDocument.name.value, {\n useTypesPrefix: true,\n suffix: fragmentTypeSuffix,\n }), this.config.experimentalFragmentVariables\n ? this.convertName(fragmentDocument.name.value, {\n suffix: fragmentTypeSuffix + 'Variables',\n })\n : 'unknown', fragmentDocument)} =${this.config.pureMagicComment ? ' /*#__PURE__*/' : ''} ${this._gql(fragmentDocument)};`;\n }\n get fragmentsGraph() {\n const graph = new DepGraph({ circular: true });\n for (const fragment of this._fragments) {\n if (graph.hasNode(fragment.name)) {\n const cachedAsString = print(graph.getNodeData(fragment.name).node);\n const asString = print(fragment.node);\n if (cachedAsString !== asString) {\n throw new Error(`Duplicated fragment called '${fragment.name}'!`);\n }\n }\n graph.addNode(fragment.name, fragment);\n }\n this._fragments.forEach(fragment => {\n const depends = this._extractFragments(fragment.node);\n if (depends && depends.length > 0) {\n depends.forEach(name => {\n graph.addDependency(fragment.name, name);\n });\n }\n });\n return graph;\n }\n get fragments() {\n if (this._fragments.length === 0 || this.config.documentMode === DocumentMode.external) {\n return '';\n }\n const graph = this.fragmentsGraph;\n const orderedDeps = graph.overallOrder();\n const localFragments = orderedDeps\n .filter(name => !graph.getNodeData(name).isExternal)\n .map(name => this._generateFragment(graph.getNodeData(name).node));\n return localFragments.join('\\n');\n }\n _parseImport(importStr) {\n // This is a special case when we want to ignore importing, and just use `gql` provided from somewhere else\n // Plugins that uses that will need to ensure to add import/declaration for the gql identifier\n if (importStr === 'gql') {\n return {\n moduleName: null,\n propName: 'gql',\n };\n }\n // This is a special use case, when we don't want this plugin to manage the import statement\n // of the gql tag. In this case, we provide something like `Namespace.gql` and it will be used instead.\n if (importStr.includes('.gql')) {\n return {\n moduleName: null,\n propName: importStr,\n };\n }\n const [moduleName, propName] = importStr.split('#');\n return {\n moduleName,\n propName,\n };\n }\n _generateImport({ moduleName, propName }, varName, isTypeImport) {\n const typeImport = isTypeImport && this.config.useTypeImports ? 'import type' : 'import';\n const propAlias = propName === varName ? '' : ` as ${varName}`;\n if (moduleName) {\n return `${typeImport} ${propName ? `{ ${propName}${propAlias} }` : varName} from '${moduleName}';`;\n }\n return null;\n }\n clearExtension(path) {\n const extension = extname(path);\n if (EXTENSIONS_TO_REMOVE.includes(extension)) {\n return path.replace(/\\.[^/.]+$/, '');\n }\n return path;\n }\n getImports(options = {}) {\n (this._additionalImports || []).forEach(i => this._imports.add(i));\n switch (this.config.documentMode) {\n case DocumentMode.documentNode:\n case DocumentMode.documentNodeImportFragments: {\n const documentNodeImport = this._parseImport(this.config.documentNodeImport || 'graphql#DocumentNode');\n const tagImport = this._generateImport(documentNodeImport, 'DocumentNode', true);\n if (tagImport) {\n this._imports.add(tagImport);\n }\n break;\n }\n case DocumentMode.graphQLTag: {\n const gqlImport = this._parseImport(this.config.gqlImport || 'graphql-tag');\n const tagImport = this._generateImport(gqlImport, 'gql', false);\n if (tagImport) {\n this._imports.add(tagImport);\n }\n break;\n }\n case DocumentMode.external: {\n if (this._collectedOperations.length > 0) {\n if (this.config.importDocumentNodeExternallyFrom === 'near-operation-file' && this._documents.length === 1) {\n this._imports.add(`import * as Operations from './${this.clearExtension(basename(this._documents[0].location))}';`);\n }\n else {\n if (!this.config.importDocumentNodeExternallyFrom) {\n // eslint-disable-next-line no-console\n console.warn('importDocumentNodeExternallyFrom must be provided if documentMode=external');\n }\n this._imports.add(`import * as Operations from '${this.clearExtension(this.config.importDocumentNodeExternallyFrom)}';`);\n }\n }\n break;\n }\n default:\n break;\n }\n if (!options.excludeFragments && !this.config.globalNamespace) {\n const { documentMode, fragmentImports } = this.config;\n if (documentMode === DocumentMode.graphQLTag ||\n documentMode === DocumentMode.string ||\n documentMode === DocumentMode.documentNodeImportFragments) {\n fragmentImports.forEach(fragmentImport => {\n this._imports.add(generateFragmentImportStatement(fragmentImport, 'document'));\n });\n }\n }\n return Array.from(this._imports);\n }\n buildOperation(_node, _documentVariableName, _operationType, _operationResultType, _operationVariablesTypes, _hasRequiredVariables) {\n return null;\n }\n getDocumentNodeSignature(_resultType, _variablesTypes, _node) {\n if (this.config.documentMode === DocumentMode.documentNode ||\n this.config.documentMode === DocumentMode.documentNodeImportFragments) {\n return `: DocumentNode`;\n }\n return '';\n }\n /**\n * Checks if the specific operation has variables that are non-null (required), and also doesn't have default.\n * This is useful for deciding of `variables` should be optional or not.\n * @param node\n */\n checkVariablesRequirements(node) {\n const variables = node.variableDefinitions || [];\n if (variables.length === 0) {\n return false;\n }\n return variables.some(variableDef => variableDef.type.kind === Kind.NON_NULL_TYPE && !variableDef.defaultValue);\n }\n OperationDefinition(node) {\n this._collectedOperations.push(node);\n const documentVariableName = this.convertName(node, {\n suffix: this.config.documentVariableSuffix,\n prefix: this.config.documentVariablePrefix,\n useTypesPrefix: false,\n });\n const operationType = pascalCase(node.operation);\n const operationTypeSuffix = this.getOperationSuffix(node, operationType);\n const operationResultType = this.convertName(node, {\n suffix: operationTypeSuffix + this._parsedConfig.operationResultSuffix,\n });\n const operationVariablesTypes = this.convertName(node, {\n suffix: operationTypeSuffix + 'Variables',\n });\n let documentString = '';\n if (this.config.documentMode !== DocumentMode.external) {\n // only generate exports for named queries\n if (documentVariableName !== '') {\n documentString = `${this.config.noExport ? '' : 'export'} const ${documentVariableName}${this.getDocumentNodeSignature(operationResultType, operationVariablesTypes, node)} =${this.config.pureMagicComment ? ' /*#__PURE__*/' : ''} ${this._gql(node)};`;\n }\n }\n const hasRequiredVariables = this.checkVariablesRequirements(node);\n const additional = this.buildOperation(node, documentVariableName, operationType, operationResultType, operationVariablesTypes, hasRequiredVariables);\n return [documentString, additional].filter(a => a).join('\\n');\n }\n}\n//# sourceMappingURL=client-side-base-visitor.js.map","import { Kind, isObjectType, isUnionType, isInterfaceType, SchemaMetaFieldDef, TypeMetaFieldDef, isListType, isNonNullType, isTypeSubTypeOf, } from 'graphql';\nimport { getPossibleTypes, separateSelectionSet, getFieldNodeNameValue, DeclarationBlock, mergeSelectionSets, hasConditionalDirectives, } from './utils';\nimport { getBaseType, removeNonNullWrapper } from '@graphql-codegen/plugin-helpers';\nimport autoBind from 'auto-bind';\nfunction isMetadataFieldName(name) {\n return ['__schema', '__type'].includes(name);\n}\nconst metadataFieldMap = {\n __schema: SchemaMetaFieldDef,\n __type: TypeMetaFieldDef,\n};\nexport class SelectionSetToObject {\n constructor(_processor, _scalars, _schema, _convertName, _getFragmentSuffix, _loadedFragments, _config, _parentSchemaType, _selectionSet) {\n this._processor = _processor;\n this._scalars = _scalars;\n this._schema = _schema;\n this._convertName = _convertName;\n this._getFragmentSuffix = _getFragmentSuffix;\n this._loadedFragments = _loadedFragments;\n this._config = _config;\n this._parentSchemaType = _parentSchemaType;\n this._selectionSet = _selectionSet;\n this._primitiveFields = [];\n this._primitiveAliasedFields = [];\n this._linksFields = [];\n this._queriedForTypename = false;\n autoBind(this);\n }\n createNext(parentSchemaType, selectionSet) {\n return new SelectionSetToObject(this._processor, this._scalars, this._schema, this._convertName.bind(this), this._getFragmentSuffix.bind(this), this._loadedFragments, this._config, parentSchemaType, selectionSet);\n }\n /**\n * traverse the inline fragment nodes recursively for colleting the selectionSets on each type\n */\n _collectInlineFragments(parentType, nodes, types) {\n if (isListType(parentType) || isNonNullType(parentType)) {\n return this._collectInlineFragments(parentType.ofType, nodes, types);\n }\n else if (isObjectType(parentType)) {\n for (const node of nodes) {\n const typeOnSchema = node.typeCondition ? this._schema.getType(node.typeCondition.name.value) : parentType;\n const { fields, inlines, spreads } = separateSelectionSet(node.selectionSet.selections);\n const spreadsUsage = this.buildFragmentSpreadsUsage(spreads);\n if (isObjectType(typeOnSchema)) {\n this._appendToTypeMap(types, typeOnSchema.name, fields);\n this._appendToTypeMap(types, typeOnSchema.name, spreadsUsage[typeOnSchema.name]);\n this._collectInlineFragments(typeOnSchema, inlines, types);\n }\n else if (isInterfaceType(typeOnSchema) && parentType.getInterfaces().includes(typeOnSchema)) {\n this._appendToTypeMap(types, parentType.name, fields);\n this._appendToTypeMap(types, parentType.name, spreadsUsage[parentType.name]);\n this._collectInlineFragments(typeOnSchema, inlines, types);\n }\n }\n }\n else if (isInterfaceType(parentType)) {\n const possibleTypes = getPossibleTypes(this._schema, parentType);\n for (const node of nodes) {\n const schemaType = node.typeCondition ? this._schema.getType(node.typeCondition.name.value) : parentType;\n const { fields, inlines, spreads } = separateSelectionSet(node.selectionSet.selections);\n const spreadsUsage = this.buildFragmentSpreadsUsage(spreads);\n if (isObjectType(schemaType) && possibleTypes.find(possibleType => possibleType.name === schemaType.name)) {\n this._appendToTypeMap(types, schemaType.name, fields);\n this._appendToTypeMap(types, schemaType.name, spreadsUsage[schemaType.name]);\n this._collectInlineFragments(schemaType, inlines, types);\n }\n else if (isInterfaceType(schemaType) && schemaType.name === parentType.name) {\n for (const possibleType of possibleTypes) {\n this._appendToTypeMap(types, possibleType.name, fields);\n this._appendToTypeMap(types, possibleType.name, spreadsUsage[possibleType.name]);\n this._collectInlineFragments(schemaType, inlines, types);\n }\n }\n else {\n // it must be an interface type that is spread on an interface field\n for (const possibleType of possibleTypes) {\n if (!node.typeCondition) {\n throw new Error('Invalid state. Expected type condition for interface spread on a interface field.');\n }\n const fragmentSpreadType = this._schema.getType(node.typeCondition.name.value);\n // the field should only be added to the valid selections\n // in case the possible type actually implements the given interface\n if (isTypeSubTypeOf(this._schema, possibleType, fragmentSpreadType)) {\n this._appendToTypeMap(types, possibleType.name, fields);\n this._appendToTypeMap(types, possibleType.name, spreadsUsage[possibleType.name]);\n }\n }\n }\n }\n }\n else if (isUnionType(parentType)) {\n const possibleTypes = parentType.getTypes();\n for (const node of nodes) {\n const schemaType = node.typeCondition ? this._schema.getType(node.typeCondition.name.value) : parentType;\n const { fields, inlines, spreads } = separateSelectionSet(node.selectionSet.selections);\n const spreadsUsage = this.buildFragmentSpreadsUsage(spreads);\n if (isObjectType(schemaType) && possibleTypes.find(possibleType => possibleType.name === schemaType.name)) {\n this._appendToTypeMap(types, schemaType.name, fields);\n this._appendToTypeMap(types, schemaType.name, spreadsUsage[schemaType.name]);\n this._collectInlineFragments(schemaType, inlines, types);\n }\n else if (isInterfaceType(schemaType)) {\n const possibleInterfaceTypes = getPossibleTypes(this._schema, schemaType);\n for (const possibleType of possibleTypes) {\n if (possibleInterfaceTypes.find(possibleInterfaceType => possibleInterfaceType.name === possibleType.name)) {\n this._appendToTypeMap(types, possibleType.name, fields);\n this._appendToTypeMap(types, possibleType.name, spreadsUsage[possibleType.name]);\n this._collectInlineFragments(schemaType, inlines, types);\n }\n }\n }\n else {\n for (const possibleType of possibleTypes) {\n this._appendToTypeMap(types, possibleType.name, fields);\n this._appendToTypeMap(types, possibleType.name, spreadsUsage[possibleType.name]);\n }\n }\n }\n }\n }\n _createInlineFragmentForFieldNodes(parentType, fieldNodes) {\n return {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: {\n kind: Kind.NAMED_TYPE,\n name: {\n kind: Kind.NAME,\n value: parentType.name,\n },\n },\n directives: [],\n selectionSet: {\n kind: Kind.SELECTION_SET,\n selections: fieldNodes,\n },\n };\n }\n buildFragmentSpreadsUsage(spreads) {\n const selectionNodesByTypeName = {};\n for (const spread of spreads) {\n const fragmentSpreadObject = this._loadedFragments.find(lf => lf.name === spread.name.value);\n if (fragmentSpreadObject) {\n const schemaType = this._schema.getType(fragmentSpreadObject.onType);\n const possibleTypesForFragment = getPossibleTypes(this._schema, schemaType);\n for (const possibleType of possibleTypesForFragment) {\n const fragmentSuffix = this._getFragmentSuffix(spread.name.value);\n const usage = this.buildFragmentTypeName(spread.name.value, fragmentSuffix, possibleTypesForFragment.length === 1 ? null : possibleType.name);\n if (!selectionNodesByTypeName[possibleType.name]) {\n selectionNodesByTypeName[possibleType.name] = [];\n }\n selectionNodesByTypeName[possibleType.name].push(usage);\n }\n }\n }\n return selectionNodesByTypeName;\n }\n flattenSelectionSet(selections) {\n const selectionNodesByTypeName = new Map();\n const inlineFragmentSelections = [];\n const fieldNodes = [];\n const fragmentSpreads = [];\n for (const selection of selections) {\n switch (selection.kind) {\n case Kind.FIELD:\n fieldNodes.push(selection);\n break;\n case Kind.INLINE_FRAGMENT:\n inlineFragmentSelections.push(selection);\n break;\n case Kind.FRAGMENT_SPREAD:\n fragmentSpreads.push(selection);\n break;\n }\n }\n if (fieldNodes.length) {\n inlineFragmentSelections.push(this._createInlineFragmentForFieldNodes(this._parentSchemaType, fieldNodes));\n }\n this._collectInlineFragments(this._parentSchemaType, inlineFragmentSelections, selectionNodesByTypeName);\n const fragmentsUsage = this.buildFragmentSpreadsUsage(fragmentSpreads);\n Object.keys(fragmentsUsage).forEach(typeName => {\n this._appendToTypeMap(selectionNodesByTypeName, typeName, fragmentsUsage[typeName]);\n });\n return selectionNodesByTypeName;\n }\n _appendToTypeMap(types, typeName, nodes) {\n if (!types.has(typeName)) {\n types.set(typeName, []);\n }\n if (nodes && nodes.length > 0) {\n types.get(typeName).push(...nodes);\n }\n }\n _buildGroupedSelections() {\n if (!this._selectionSet || !this._selectionSet.selections || this._selectionSet.selections.length === 0) {\n return {};\n }\n const selectionNodesByTypeName = this.flattenSelectionSet(this._selectionSet.selections);\n const grouped = getPossibleTypes(this._schema, this._parentSchemaType).reduce((prev, type) => {\n const typeName = type.name;\n const schemaType = this._schema.getType(typeName);\n if (!isObjectType(schemaType)) {\n throw new TypeError(`Invalid state! Schema type ${typeName} is not a valid GraphQL object!`);\n }\n const selectionNodes = selectionNodesByTypeName.get(typeName) || [];\n if (!prev[typeName]) {\n prev[typeName] = [];\n }\n const transformedSet = this.buildSelectionSetString(schemaType, selectionNodes);\n if (transformedSet) {\n prev[typeName].push(transformedSet);\n }\n return prev;\n }, {});\n return grouped;\n }\n buildSelectionSetString(parentSchemaType, selectionNodes) {\n const primitiveFields = new Map();\n const primitiveAliasFields = new Map();\n const linkFieldSelectionSets = new Map();\n let requireTypename = false;\n const fragmentsSpreadUsages = [];\n for (const selectionNode of selectionNodes) {\n if (typeof selectionNode === 'string') {\n fragmentsSpreadUsages.push(selectionNode);\n }\n else if (selectionNode.kind === 'Field') {\n if (!selectionNode.selectionSet) {\n if (selectionNode.alias) {\n primitiveAliasFields.set(selectionNode.alias.value, selectionNode);\n }\n else if (selectionNode.name.value === '__typename') {\n requireTypename = true;\n }\n else {\n primitiveFields.set(selectionNode.name.value, selectionNode);\n }\n }\n else {\n let selectedField = null;\n const fields = parentSchemaType.getFields();\n selectedField = fields[selectionNode.name.value];\n if (isMetadataFieldName(selectionNode.name.value)) {\n selectedField = metadataFieldMap[selectionNode.name.value];\n }\n if (!selectedField) {\n continue;\n }\n const fieldName = getFieldNodeNameValue(selectionNode);\n let linkFieldNode = linkFieldSelectionSets.get(fieldName);\n if (!linkFieldNode) {\n linkFieldNode = {\n selectedFieldType: selectedField.type,\n field: selectionNode,\n };\n linkFieldSelectionSets.set(fieldName, linkFieldNode);\n }\n else {\n mergeSelectionSets(linkFieldNode.field.selectionSet, selectionNode.selectionSet);\n }\n }\n }\n }\n const linkFields = [];\n for (const { field, selectedFieldType } of linkFieldSelectionSets.values()) {\n const realSelectedFieldType = getBaseType(selectedFieldType);\n const selectionSet = this.createNext(realSelectedFieldType, field.selectionSet);\n const isConditional = hasConditionalDirectives(field.directives);\n linkFields.push({\n alias: field.alias ? this._processor.config.formatNamedField(field.alias.value, selectedFieldType) : undefined,\n name: this._processor.config.formatNamedField(field.name.value, selectedFieldType, isConditional),\n type: realSelectedFieldType.name,\n selectionSet: this._processor.config.wrapTypeWithModifiers(selectionSet.transformSelectionSet().split(`\\n`).join(`\\n `), isConditional ? removeNonNullWrapper(selectedFieldType) : selectedFieldType),\n });\n }\n const typeInfoField = this.buildTypeNameField(parentSchemaType, this._config.nonOptionalTypename, this._config.addTypename, requireTypename, this._config.skipTypeNameForRoot);\n const transformed = [\n ...(typeInfoField ? this._processor.transformTypenameField(typeInfoField.type, typeInfoField.name) : []),\n ...this._processor.transformPrimitiveFields(parentSchemaType, Array.from(primitiveFields.values()).map(field => ({\n isConditional: hasConditionalDirectives(field.directives),\n fieldName: field.name.value,\n }))),\n ...this._processor.transformAliasesPrimitiveFields(parentSchemaType, Array.from(primitiveAliasFields.values()).map(field => ({\n alias: field.alias.value,\n fieldName: field.name.value,\n }))),\n ...this._processor.transformLinkFields(linkFields),\n ].filter(Boolean);\n const allStrings = transformed.filter(t => typeof t === 'string');\n const allObjectsMerged = transformed\n .filter(t => typeof t !== 'string')\n .map((t) => `${t.name}: ${t.type}`);\n let mergedObjectsAsString = null;\n if (allObjectsMerged.length > 0) {\n mergedObjectsAsString = this._processor.buildFieldsIntoObject(allObjectsMerged);\n }\n const fields = [...allStrings, mergedObjectsAsString, ...fragmentsSpreadUsages].filter(Boolean);\n return this._processor.buildSelectionSetFromStrings(fields);\n }\n isRootType(type) {\n const rootType = [this._schema.getQueryType(), this._schema.getMutationType(), this._schema.getSubscriptionType()]\n .filter(Boolean)\n .map(t => t.name);\n return rootType.includes(type.name);\n }\n buildTypeNameField(type, nonOptionalTypename = this._config.nonOptionalTypename, addTypename = this._config.addTypename, queriedForTypename = this._queriedForTypename, skipTypeNameForRoot = this._config.skipTypeNameForRoot) {\n if (this.isRootType(type) && skipTypeNameForRoot && !queriedForTypename) {\n return null;\n }\n if (nonOptionalTypename || addTypename || queriedForTypename) {\n const optionalTypename = !queriedForTypename && !nonOptionalTypename;\n return {\n name: `${this._processor.config.formatNamedField('__typename')}${optionalTypename ? '?' : ''}`,\n type: `'${type.name}'`,\n };\n }\n return null;\n }\n getUnknownType() {\n return 'never';\n }\n transformSelectionSet() {\n const grouped = this._buildGroupedSelections();\n // This might happen in case we have an interface, that is being queries, without any GraphQL\n // \"type\" that implements it. It will lead to a runtime error, but we aim to try to reflect that in\n // build time as well.\n if (Object.keys(grouped).length === 0) {\n return this.getUnknownType();\n }\n return Object.keys(grouped)\n .map(typeName => {\n const relevant = grouped[typeName].filter(Boolean);\n if (relevant.length === 0) {\n return null;\n }\n else if (relevant.length === 1) {\n return relevant[0];\n }\n else {\n return `( ${relevant.join(' & ')} )`;\n }\n })\n .filter(Boolean)\n .join(' | ');\n }\n transformFragmentSelectionSetToTypes(fragmentName, fragmentSuffix, declarationBlockConfig) {\n const grouped = this._buildGroupedSelections();\n const subTypes = Object.keys(grouped)\n .map(typeName => {\n const possibleFields = grouped[typeName].filter(Boolean);\n if (possibleFields.length === 0) {\n return null;\n }\n const declarationName = this.buildFragmentTypeName(fragmentName, fragmentSuffix, typeName);\n return { name: declarationName, content: possibleFields.join(' & ') };\n })\n .filter(Boolean);\n if (subTypes.length === 1) {\n return new DeclarationBlock(declarationBlockConfig)\n .export()\n .asKind('type')\n .withName(this.buildFragmentTypeName(fragmentName, fragmentSuffix))\n .withContent(subTypes[0].content).string;\n }\n return [\n ...subTypes.map(t => new DeclarationBlock(declarationBlockConfig)\n .export(this._config.exportFragmentSpreadSubTypes)\n .asKind('type')\n .withName(t.name)\n .withContent(t.content).string),\n new DeclarationBlock(declarationBlockConfig)\n .export()\n .asKind('type')\n .withName(this.buildFragmentTypeName(fragmentName, fragmentSuffix))\n .withContent(subTypes.map(t => t.name).join(' | ')).string,\n ].join('\\n');\n }\n buildFragmentTypeName(name, suffix, typeName = '') {\n return this._convertName(name, {\n useTypesPrefix: true,\n suffix: typeName ? `_${typeName}_${suffix}` : suffix,\n });\n }\n}\n//# sourceMappingURL=selection-set-to-object.js.map","export class BaseSelectionSetProcessor {\n constructor(config) {\n this.config = config;\n }\n buildFieldsIntoObject(allObjectsMerged) {\n return `{ ${allObjectsMerged.join(', ')} }`;\n }\n buildSelectionSetFromStrings(pieces) {\n if (pieces.length === 0) {\n return null;\n }\n else if (pieces.length === 1) {\n return pieces[0];\n }\n else {\n return `(\\n ${pieces.join(`\\n & `)}\\n)`;\n }\n }\n transformPrimitiveFields(_schemaType, _fields) {\n throw new Error(`Please override \"transformPrimitiveFields\" as part of your BaseSelectionSetProcessor implementation!`);\n }\n transformAliasesPrimitiveFields(_schemaType, _fields) {\n throw new Error(`Please override \"transformAliasesPrimitiveFields\" as part of your BaseSelectionSetProcessor implementation!`);\n }\n transformLinkFields(_fields) {\n throw new Error(`Please override \"transformLinkFields\" as part of your BaseSelectionSetProcessor implementation!`);\n }\n transformTypenameField(_type, _name) {\n throw new Error(`Please override \"transformTypenameField\" as part of your BaseSelectionSetProcessor implementation!`);\n }\n}\n//# sourceMappingURL=base.js.map","import { BaseSelectionSetProcessor, } from './base';\nimport { isEnumType, isNonNullType } from 'graphql';\nimport { getBaseType } from '@graphql-codegen/plugin-helpers';\nexport class PreResolveTypesProcessor extends BaseSelectionSetProcessor {\n transformTypenameField(type, name) {\n return [\n {\n type,\n name,\n },\n ];\n }\n transformPrimitiveFields(schemaType, fields) {\n if (fields.length === 0) {\n return [];\n }\n return fields.map(field => {\n const fieldObj = schemaType.getFields()[field.fieldName];\n const baseType = getBaseType(fieldObj.type);\n let typeToUse = baseType.name;\n const useInnerType = field.isConditional && isNonNullType(fieldObj.type);\n if (isEnumType(baseType)) {\n typeToUse =\n (this.config.namespacedImportName ? `${this.config.namespacedImportName}.` : '') +\n this.config.convertName(baseType.name, { useTypesPrefix: this.config.enumPrefix });\n }\n else if (this.config.scalars[baseType.name]) {\n typeToUse = this.config.scalars[baseType.name];\n }\n const name = this.config.formatNamedField(field.fieldName, useInnerType ? baseType : fieldObj.type);\n const wrappedType = this.config.wrapTypeWithModifiers(typeToUse, useInnerType ? baseType : fieldObj.type);\n return {\n name,\n type: wrappedType,\n };\n });\n }\n transformAliasesPrimitiveFields(schemaType, fields) {\n if (fields.length === 0) {\n return [];\n }\n return fields.map(aliasedField => {\n if (aliasedField.fieldName === '__typename') {\n const name = this.config.formatNamedField(aliasedField.alias, null);\n return {\n name,\n type: `'${schemaType.name}'`,\n };\n }\n else {\n const fieldObj = schemaType.getFields()[aliasedField.fieldName];\n const baseType = getBaseType(fieldObj.type);\n let typeToUse = this.config.scalars[baseType.name] || baseType.name;\n if (isEnumType(baseType)) {\n typeToUse =\n (this.config.namespacedImportName ? `${this.config.namespacedImportName}.` : '') +\n this.config.convertName(baseType.name, { useTypesPrefix: this.config.enumPrefix });\n }\n const name = this.config.formatNamedField(aliasedField.alias, fieldObj.type);\n const wrappedType = this.config.wrapTypeWithModifiers(typeToUse, fieldObj.type);\n return {\n name,\n type: wrappedType,\n };\n }\n });\n }\n transformLinkFields(fields) {\n if (fields.length === 0) {\n return [];\n }\n return fields.map(field => ({\n name: field.alias || field.name,\n type: field.selectionSet,\n }));\n }\n}\n//# sourceMappingURL=pre-resolve-types.js.map","import { optimizeDocuments } from '@graphql-tools/relay-operation-optimizer';\nexport function optimizeOperations(schema, documents, options) {\n const newDocuments = optimizeDocuments(schema, documents.map(s => s.document), options);\n return newDocuments.map(document => ({\n location: 'optimized by relay',\n document,\n }));\n}\n//# sourceMappingURL=optimize-operations.js.map"],"names":["Kind","isScalarType","isEqualType","isListType","isNonNullType","isObjectType","isAbstractType","pascalCase","resolveExternalModuleAndFn","isEnumType","DetailedError","resolve","isAbsolute","relative","dirname","path","join","ApolloFederation","isInterfaceType","getBaseType","GraphQLObjectType","isUnionType","DocumentMode","visit","print","optimizeDocumentNode","DepGraph","extname","basename","SchemaMetaFieldDef","TypeMetaFieldDef","isTypeSubTypeOf","removeNonNullWrapper","optimizeDocuments"],"mappings":"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"}
\No newline at end of file