Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save andreialecu/d8c02b0df2f6fcd249bdd960c725f9c0 to your computer and use it in GitHub Desktop.
Save andreialecu/d8c02b0df2f6fcd249bdd960c725f9c0 to your computer and use it in GitHub Desktop.
graphql codegen patch
This file has been truncated, but you can view the full file.
diff --git a/node_modules/@graphql-codegen/visitor-plugin-common/index.cjs.js b/node_modules/@graphql-codegen/visitor-plugin-common/index.cjs.js
index 71d9f92..d25561d 100644
--- a/node_modules/@graphql-codegen/visitor-plugin-common/index.cjs.js
+++ b/node_modules/@graphql-codegen/visitor-plugin-common/index.cjs.js
@@ -803,12 +803,34 @@ class OperationVariablesToObject {
}
return null;
}
- transform(variablesNode) {
+ transform(variablesNode, selectionSet) {
if (!variablesNode || variablesNode.length === 0) {
return null;
}
- return (variablesNode.map(variable => indent(this.transformVariable(variable))).join(`${this.getPunctuation()}\n`) +
- this.getPunctuation());
+ const exportedArgs = new Set([]);
+ const visitSelections = (selections) => {
+ selections.forEach(s => {
+ var _a, _b, _c;
+ const exportDirective = (_a = s.directives) === null || _a === void 0 ? void 0 : _a.find(d => { var _a; return ((_a = d.name) === null || _a === void 0 ? void 0 : _a.value) === 'export'; });
+ if (exportDirective) {
+ const arg = exportDirective === null || exportDirective === void 0 ? void 0 : exportDirective.arguments.find(a => { var _a; return ((_a = a.name) === null || _a === void 0 ? void 0 : _a.value) === 'as'; });
+ if (((_b = arg === null || arg === void 0 ? void 0 : arg.value) === null || _b === void 0 ? void 0 : _b.kind) === 'StringValue') {
+ exportedArgs.add(arg.value.value);
+ }
+ }
+ if ('selectionSet' in s && ((_c = s.selectionSet) === null || _c === void 0 ? void 0 : _c.selections)) {
+ visitSelections(s.selectionSet.selections);
+ }
+ });
+ };
+ if (selectionSet === null || selectionSet === void 0 ? void 0 : selectionSet.selections) {
+ visitSelections(selectionSet.selections);
+ }
+ const variableDefinitions = variablesNode
+ .filter(variable => { var _a, _b; return !exportedArgs.has((_b = (_a = variable === null || variable === void 0 ? void 0 : variable.variable) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.value); })
+ .map(variable => indent(this.transformVariable(variable)))
+ .join(`${this.getPunctuation()}\n`);
+ return variableDefinitions ? variableDefinitions + this.getPunctuation() : '';
}
getScalar(name) {
const prefix = this._namespacedImportName ? `${this._namespacedImportName}.` : '';
@@ -1218,7 +1240,7 @@ class BaseDocumentsVisitor extends BaseVisitor {
throw new Error(`Unable to find root schema type for operation type "${node.operation}"!`);
}
const selectionSet = this._selectionSetToObject.createNext(operationRootType, node.selectionSet);
- const visitedOperationVariables = this._variablesTransfomer.transform(node.variableDefinitions);
+ const visitedOperationVariables = this._variablesTransfomer.transform(node.variableDefinitions, node.selectionSet);
const operationType = pascalCase.pascalCase(node.operation);
const operationTypeSuffix = this.getOperationSuffix(name, operationType);
const operationResult = new DeclarationBlock(this._declarationBlockConfig)
diff --git a/node_modules/@graphql-codegen/visitor-plugin-common/index.cjs.js.map b/node_modules/@graphql-codegen/visitor-plugin-common/index.cjs.js.map
index 09bf589..4f37b60 100644
--- a/node_modules/@graphql-codegen/visitor-plugin-common/index.cjs.js.map
+++ b/node_modules/@graphql-codegen/visitor-plugin-common/index.cjs.js.map
@@ -1 +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('#') && !value.includes('\"') && !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}\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) {\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) {\n if (!comment || comment === '') {\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 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) {\n const nonEmptyComment = isStringValueNode(comment) ? !!comment.value : !!comment;\n if (nonEmptyComment) {\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 += '{}';\n }\n return ((this._comment ? this._comment : '') +\n result +\n (this._kind === 'interface' || this._kind === 'enum' || this._kind === 'namespace' ? '' : ';') +\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) {\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: 'any',\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 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}\n//# sourceMappingURL=utils.js.map","import { resolveExternalModuleAndFn } from '@graphql-codegen/plugin-helpers';\nimport { pascalCase } from 'pascal-case';\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 (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';\nexport function parseEnumValues(schema, mapOrStr = {}) {\n const allTypes = schema.getTypeMap();\n const allEnums = Object.keys(allTypes).filter(t => isEnumType(allTypes[t]));\n if (typeof mapOrStr === 'object') {\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] = value;\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};\nexport function normalizeAvoidOptionals(avoidOptionals) {\n if (typeof avoidOptionals === 'boolean') {\n return {\n object: avoidOptionals,\n inputValue: avoidOptionals,\n field: avoidOptionals,\n };\n }\n return {\n ...DEFAULT_AVOID_OPTIONALS,\n ...avoidOptionals,\n };\n}\n//# sourceMappingURL=avoid-optionals.js.map","import { dirname, isAbsolute, join, parse, relative, resolve } from 'path';\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({ importSource, ...rest });\n}\nexport function generateImportStatement(statement) {\n const { baseDir, importSource, outputPath } = statement;\n const importPath = resolveImportPath(baseDir, outputPath, importSource.path);\n const importNames = importSource.identifiers && importSource.identifiers.length ? `{ ${importSource.identifiers.join(', ')} }` : '*';\n const importAlias = importSource.namespace ? ` as ${importSource.namespace}` : '';\n return `import ${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 externalFragments: rawConfig.externalFragments || [],\n fragmentImports: rawConfig.fragmentImports || [],\n addTypename: !rawConfig.skipTypename,\n nonOptionalTypename: !!rawConfig.nonOptionalTypename,\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 get config() {\n return this._parsedConfig;\n }\n convertName(node, options) {\n const useTypesPrefix = typeof (options && options.useTypesPrefix) === 'boolean' ? options.useTypesPrefix : true;\n return (useTypesPrefix ? this.config.typesPrefix : '') + this.config.convert(node, options);\n }\n getOperationSuffix(node, operationType) {\n const { omitOperationSuffix = false, dedupeOperationSuffix = false } = this.config;\n const operationName = typeof node === 'string' ? node : 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 = {}) {\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 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);\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) {\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, } 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 addUnderscoreToArgsType: getConfigValue(rawConfig.addUnderscoreToArgsType, false),\n enumValues: parseEnumValues(_schema, rawConfig.enumValues),\n declarationKind: normalizeDeclarationKind(rawConfig.declarationKind),\n scalars: buildScalars(_schema, rawConfig.scalars, defaultScalars),\n ...additionalConfig,\n });\n this._schema = _schema;\n this._argumentsTransformer = new OperationVariablesToObject(this.scalars, this.convertName);\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 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 } = 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 declarationBlock.withContent(' extends ' + 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 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 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 if (asDefault) {\n return `import ${identifier} from '${source}';`;\n }\n return `import { ${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 buildEnumValuesBlock(typeName, values) {\n return values\n .map(enumOption => {\n const optionName = this.convertName(enumOption, { useTypesPrefix: false, transformUnderscore: true });\n const comment = transformComment(enumOption.description, 1);\n let enumValue = 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)}`));\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 }) +\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) {\n return this._getTypeForNode(node);\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 'pascal-case';\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 namespacedImportName: getConfigValue(rawConfig.namespacedImportName, null),\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 autoBind(this);\n this._variablesTransfomer = new OperationVariablesToObject(this.scalars, this.convertName, this.config.namespacedImportName);\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 handleAnonymouseOperation(node) {\n const name = node.name && node.name.value;\n if (name) {\n return this.convertName(node, {\n useTypesPrefix: false,\n });\n }\n return this.convertName(this._unnamedCounter++ + '', {\n prefix: 'Unnamed_',\n suffix: '_',\n useTypesPrefix: 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 selectionSet.transformFragmentSelectionSetToTypes(node.name.value, fragmentSuffix, this._declarationBlockConfig);\n }\n OperationDefinition(node) {\n const name = this.handleAnonymouseOperation(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(this._declarationBlockConfig)\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 } 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(_schema, rawConfig.enumValues),\n addUnderscoreToArgsType: getConfigValue(rawConfig.addUnderscoreToArgsType, false),\n contextType: parseMapper(rawConfig.contextType || 'any', 'ContextType'),\n fieldContextTypes: getConfigValue(rawConfig.fieldContextTypes, []),\n rootValueType: parseMapper(rawConfig.rootValueType || '{}', 'RootValueType'),\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 ...(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);\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));\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 // Kamil: this one is heeeeavvyyyy\n createResolversFields(applyWrapper, clearWrapper, getTypeToUse) {\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 if (typeName.startsWith('__')) {\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 const schemaType = allSchemaTypes[typeName];\n if (isRootType) {\n prev[typeName] = applyWrapper(this.config.rootValueType.type);\n return prev;\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] = this.config.enumValues[typeName].typeIdentifier;\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 (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 });\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 return `Maybe<${str}>`;\n }\n applyResolverTypeWrapper(str) {\n return `ResolverTypeWrapper<${this.clearResolverTypeWrapper(str)}>`;\n }\n clearMaybe(str) {\n if (str.startsWith('Maybe<')) {\n return str.replace(/Maybe<(.*?)>$/, '$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 return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('type')\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]},`))\n .join('\\n')).string;\n }\n buildResolversParentTypes() {\n return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('type')\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]},`))\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 => this.buildMapperImport(source, groupedMappers[source]))\n .filter(Boolean);\n }\n buildMapperImport(source, types) {\n if (!types || types.length === 0) {\n return null;\n }\n const defaultType = types.find(t => t.asDefault === true);\n const namedTypes = types.filter(t => !t.asDefault);\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 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('Resolvers');\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('type')\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));\n })\n .join('\\n')).string,\n deprecatedIResolvers,\n ].join('\\n');\n }\n formatRootResolver(schemaTypeName, resolverType) {\n return `${schemaTypeName}${this.config.avoidOptionals ? '' : '?'}: ${resolverType},`;\n }\n getAllDirectiveResolvers() {\n if (Object.keys(this._collectedDirectiveResolvers).length) {\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('type')\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));\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 `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);\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 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 useTypesPrefix: true,\n }) +\n (this.config.addUnderscoreToArgsType ? '_' : '') +\n this.convertName(node.name, {\n useTypesPrefix: false,\n }) +\n 'Args'}`\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(', ')}>,`);\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 name = this.convertName(node, {\n suffix: 'Resolvers',\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(`__isTypeOf?: isTypeOfResolverFn<ParentType>,`));\n }\n const block = new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('type')\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 name = this.convertName(node, {\n suffix: 'Resolvers',\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;\n const parentType = this.getParentTypeToUse(node.name);\n return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('type')\n .withName(name, `<ContextType = ${this.config.contextType.type}, ${this.transformParentGenericType(parentType)}>`)\n .withBlock(indent(`__resolveType${this.config.optionalResolveType ? '?' : ''}: TypeResolveFn<${possibleTypes}, ParentType, ContextType>`)).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}'`)).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 InterfaceTypeDefinition(node) {\n const name = this.convertName(node, {\n suffix: 'Resolvers',\n });\n const allTypesMap = this._schema.getTypeMap();\n const implementingTypes = [];\n this._collectedResolvers[node.name] = name;\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 return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('type')\n .withName(name, `<ContextType = ${this.config.contextType.type}, ${this.transformParentGenericType(parentType)}>`)\n .withBlock([\n indent(`__resolveType${this.config.optionalResolveType ? '?' : ''}: TypeResolveFn<${possibleTypes}, ParentType, ContextType>,`),\n ...(node.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 'pascal-case';\nimport { generateFragmentImportStatement } from './imports';\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 omitOperationSuffix: getConfigValue(rawConfig.omitOperationSuffix, false),\n gqlImport: rawConfig.gqlImport || 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 ...additionalConfig,\n });\n this._schema = _schema;\n this._fragments = _fragments;\n this._collectedOperations = [];\n this._documents = [];\n this._additionalImports = [];\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 const gqlObj = gqlTag([doc]);\n if (gqlObj && gqlObj.loc) {\n delete gqlObj.loc;\n }\n return JSON.stringify(gqlObj);\n }\n else if (this.config.documentMode === DocumentMode.documentNodeImportFragments) {\n const gqlObj = gqlTag([doc]);\n if (gqlObj && gqlObj.loc) {\n delete gqlObj.loc;\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 return 'gql`' + doc + '`';\n }\n _generateFragment(fragmentDocument) {\n const name = this.getFragmentVariableName(fragmentDocument);\n const isDocumentNode = this.config.documentMode === DocumentMode.documentNode ||\n this.config.documentMode === DocumentMode.documentNodeImportFragments;\n return `export const ${name}${isDocumentNode ? ': DocumentNode' : ''} = ${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 const [moduleName, propName] = importStr.split('#');\n return {\n moduleName,\n propName,\n };\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 const imports = [...this._additionalImports];\n switch (this.config.documentMode) {\n case DocumentMode.documentNode:\n case DocumentMode.documentNodeImportFragments: {\n imports.push(`import { DocumentNode } from 'graphql';`);\n break;\n }\n case DocumentMode.graphQLTag: {\n const gqlImport = this._parseImport(this.config.gqlImport || 'graphql-tag');\n imports.push(`import ${gqlImport.propName ? `{ ${gqlImport.propName === 'gql' ? 'gql' : `${gqlImport.propName} as gql`} }` : 'gql'} from '${gqlImport.moduleName}';`);\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 imports.push(`import * as Operations from './${this.clearExtension(basename(this._documents[0].location))}';`);\n }\n else {\n imports.push(`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 imports.push(...fragmentImports.map(fragmentImport => generateFragmentImportStatement(fragmentImport, 'document')));\n }\n }\n return imports;\n }\n buildOperation(node, documentVariableName, operationType, operationResultType, operationVariablesTypes) {\n return null;\n }\n OperationDefinition(node) {\n if (!node.name || !node.name.value) {\n return null;\n }\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 let documentString = '';\n if (this.config.documentMode !== DocumentMode.external) {\n const isDocumentNode = this.config.documentMode === DocumentMode.documentNode ||\n this.config.documentMode === DocumentMode.documentNodeImportFragments;\n documentString = `${this.config.noExport ? '' : 'export'} const ${documentVariableName}${isDocumentNode ? ': DocumentNode' : ''} = ${this._gql(node)};`;\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 const additional = this.buildOperation(node, documentVariableName, operationType, operationResultType, operationVariablesTypes);\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, } from 'graphql';\nimport { getPossibleTypes, separateSelectionSet, getFieldNodeNameValue, DeclarationBlock, mergeSelectionSets, } from './utils';\nimport { getBaseType } 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.isTypeOf(typeOnSchema, null, null)) {\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 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 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 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),\n type: realSelectedFieldType.name,\n selectionSet: this._processor.config.wrapTypeWithModifiers(selectionSet.transformSelectionSet().split(`\\n`).join(`\\n `), selectedFieldType),\n });\n }\n const typeInfoField = this.buildTypeNameField(parentSchemaType, this._config.nonOptionalTypename, this._config.addTypename, requireTypename);\n const transformed = [\n ...(typeInfoField ? this._processor.transformTypenameField(typeInfoField.type, typeInfoField.name) : []),\n ...this._processor.transformPrimitiveFields(parentSchemaType, Array.from(primitiveFields.values()).map(field => field.name.value)),\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 buildTypeNameField(type, nonOptionalTypename = this._config.nonOptionalTypename, addTypename = this._config.addTypename, queriedForTypename = this._queriedForTypename) {\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 transformSelectionSet() {\n const grouped = this._buildGroupedSelections();\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 } 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];\n const baseType = getBaseType(fieldObj.type);\n let typeToUse = 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 else if (this.config.scalars[baseType.name]) {\n typeToUse = this.config.scalars[baseType.name];\n }\n const name = this.config.formatNamedField(field, fieldObj.type);\n const wrappedType = this.config.wrapTypeWithModifiers(typeToUse, 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-toolkit/relay-operation-optimizer';\nexport function optimizeOperations(schema, documents) {\n const newDocuments = optimizeDocuments(schema, documents.map(s => s.document));\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","parse","join","ApolloFederation","isInterfaceType","getBaseType","GraphQLObjectType","isUnionType","DocumentMode","visit","print","DepGraph","extname","basename","SchemaMetaFieldDef","TypeMetaFieldDef","optimizeDocuments"],"mappings":"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"}
\ No newline at end of file
+{"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('#') && !value.includes('\"') && !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}\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) {\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) {\n if (!comment || comment === '') {\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 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) {\n const nonEmptyComment = isStringValueNode(comment) ? !!comment.value : !!comment;\n if (nonEmptyComment) {\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 += '{}';\n }\n return ((this._comment ? this._comment : '') +\n result +\n (this._kind === 'interface' || this._kind === 'enum' || this._kind === 'namespace' ? '' : ';') +\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) {\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: 'any',\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 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}\n//# sourceMappingURL=utils.js.map","import { resolveExternalModuleAndFn } from '@graphql-codegen/plugin-helpers';\nimport { pascalCase } from 'pascal-case';\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 (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';\nexport function parseEnumValues(schema, mapOrStr = {}) {\n const allTypes = schema.getTypeMap();\n const allEnums = Object.keys(allTypes).filter(t => isEnumType(allTypes[t]));\n if (typeof mapOrStr === 'object') {\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] = value;\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};\nexport function normalizeAvoidOptionals(avoidOptionals) {\n if (typeof avoidOptionals === 'boolean') {\n return {\n object: avoidOptionals,\n inputValue: avoidOptionals,\n field: avoidOptionals,\n };\n }\n return {\n ...DEFAULT_AVOID_OPTIONALS,\n ...avoidOptionals,\n };\n}\n//# sourceMappingURL=avoid-optionals.js.map","import { dirname, isAbsolute, join, parse, relative, resolve } from 'path';\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({ importSource, ...rest });\n}\nexport function generateImportStatement(statement) {\n const { baseDir, importSource, outputPath } = statement;\n const importPath = resolveImportPath(baseDir, outputPath, importSource.path);\n const importNames = importSource.identifiers && importSource.identifiers.length ? `{ ${importSource.identifiers.join(', ')} }` : '*';\n const importAlias = importSource.namespace ? ` as ${importSource.namespace}` : '';\n return `import ${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 externalFragments: rawConfig.externalFragments || [],\n fragmentImports: rawConfig.fragmentImports || [],\n addTypename: !rawConfig.skipTypename,\n nonOptionalTypename: !!rawConfig.nonOptionalTypename,\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 get config() {\n return this._parsedConfig;\n }\n convertName(node, options) {\n const useTypesPrefix = typeof (options && options.useTypesPrefix) === 'boolean' ? options.useTypesPrefix : true;\n return (useTypesPrefix ? this.config.typesPrefix : '') + this.config.convert(node, options);\n }\n getOperationSuffix(node, operationType) {\n const { omitOperationSuffix = false, dedupeOperationSuffix = false } = this.config;\n const operationName = typeof node === 'string' ? node : 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 = {}) {\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 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, selectionSet) {\n if (!variablesNode || variablesNode.length === 0) {\n return null;\n }\n const exportedArgs = new Set([]);\n const visitSelections = (selections) => {\n selections.forEach(s => {\n var _a, _b, _c;\n const exportDirective = (_a = s.directives) === null || _a === void 0 ? void 0 : _a.find(d => { var _a; return ((_a = d.name) === null || _a === void 0 ? void 0 : _a.value) === 'export'; });\n if (exportDirective) {\n const arg = exportDirective === null || exportDirective === void 0 ? void 0 : exportDirective.arguments.find(a => { var _a; return ((_a = a.name) === null || _a === void 0 ? void 0 : _a.value) === 'as'; });\n if (((_b = arg === null || arg === void 0 ? void 0 : arg.value) === null || _b === void 0 ? void 0 : _b.kind) === 'StringValue') {\n exportedArgs.add(arg.value.value);\n }\n }\n if ('selectionSet' in s && ((_c = s.selectionSet) === null || _c === void 0 ? void 0 : _c.selections)) {\n visitSelections(s.selectionSet.selections);\n }\n });\n };\n if (selectionSet === null || selectionSet === void 0 ? void 0 : selectionSet.selections) {\n visitSelections(selectionSet.selections);\n }\n const variableDefinitions = variablesNode\n .filter(variable => { var _a, _b; return !exportedArgs.has((_b = (_a = variable === null || variable === void 0 ? void 0 : variable.variable) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.value); })\n .map(variable => indent(this.transformVariable(variable)))\n .join(`${this.getPunctuation()}\\n`);\n return variableDefinitions ? variableDefinitions + 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);\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) {\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, } 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 addUnderscoreToArgsType: getConfigValue(rawConfig.addUnderscoreToArgsType, false),\n enumValues: parseEnumValues(_schema, rawConfig.enumValues),\n declarationKind: normalizeDeclarationKind(rawConfig.declarationKind),\n scalars: buildScalars(_schema, rawConfig.scalars, defaultScalars),\n ...additionalConfig,\n });\n this._schema = _schema;\n this._argumentsTransformer = new OperationVariablesToObject(this.scalars, this.convertName);\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 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 } = 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 declarationBlock.withContent(' extends ' + 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 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 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 if (asDefault) {\n return `import ${identifier} from '${source}';`;\n }\n return `import { ${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 buildEnumValuesBlock(typeName, values) {\n return values\n .map(enumOption => {\n const optionName = this.convertName(enumOption, { useTypesPrefix: false, transformUnderscore: true });\n const comment = transformComment(enumOption.description, 1);\n let enumValue = 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)}`));\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 }) +\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) {\n return this._getTypeForNode(node);\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 'pascal-case';\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 namespacedImportName: getConfigValue(rawConfig.namespacedImportName, null),\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 autoBind(this);\n this._variablesTransfomer = new OperationVariablesToObject(this.scalars, this.convertName, this.config.namespacedImportName);\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 handleAnonymouseOperation(node) {\n const name = node.name && node.name.value;\n if (name) {\n return this.convertName(node, {\n useTypesPrefix: false,\n });\n }\n return this.convertName(this._unnamedCounter++ + '', {\n prefix: 'Unnamed_',\n suffix: '_',\n useTypesPrefix: 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 selectionSet.transformFragmentSelectionSetToTypes(node.name.value, fragmentSuffix, this._declarationBlockConfig);\n }\n OperationDefinition(node) {\n const name = this.handleAnonymouseOperation(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, node.selectionSet);\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(this._declarationBlockConfig)\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 } 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(_schema, rawConfig.enumValues),\n addUnderscoreToArgsType: getConfigValue(rawConfig.addUnderscoreToArgsType, false),\n contextType: parseMapper(rawConfig.contextType || 'any', 'ContextType'),\n fieldContextTypes: getConfigValue(rawConfig.fieldContextTypes, []),\n rootValueType: parseMapper(rawConfig.rootValueType || '{}', 'RootValueType'),\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 ...(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);\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));\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 // Kamil: this one is heeeeavvyyyy\n createResolversFields(applyWrapper, clearWrapper, getTypeToUse) {\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 if (typeName.startsWith('__')) {\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 const schemaType = allSchemaTypes[typeName];\n if (isRootType) {\n prev[typeName] = applyWrapper(this.config.rootValueType.type);\n return prev;\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] = this.config.enumValues[typeName].typeIdentifier;\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 (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 });\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 return `Maybe<${str}>`;\n }\n applyResolverTypeWrapper(str) {\n return `ResolverTypeWrapper<${this.clearResolverTypeWrapper(str)}>`;\n }\n clearMaybe(str) {\n if (str.startsWith('Maybe<')) {\n return str.replace(/Maybe<(.*?)>$/, '$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 return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('type')\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]},`))\n .join('\\n')).string;\n }\n buildResolversParentTypes() {\n return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('type')\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]},`))\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 => this.buildMapperImport(source, groupedMappers[source]))\n .filter(Boolean);\n }\n buildMapperImport(source, types) {\n if (!types || types.length === 0) {\n return null;\n }\n const defaultType = types.find(t => t.asDefault === true);\n const namedTypes = types.filter(t => !t.asDefault);\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 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('Resolvers');\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('type')\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));\n })\n .join('\\n')).string,\n deprecatedIResolvers,\n ].join('\\n');\n }\n formatRootResolver(schemaTypeName, resolverType) {\n return `${schemaTypeName}${this.config.avoidOptionals ? '' : '?'}: ${resolverType},`;\n }\n getAllDirectiveResolvers() {\n if (Object.keys(this._collectedDirectiveResolvers).length) {\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('type')\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));\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 `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);\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 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 useTypesPrefix: true,\n }) +\n (this.config.addUnderscoreToArgsType ? '_' : '') +\n this.convertName(node.name, {\n useTypesPrefix: false,\n }) +\n 'Args'}`\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(', ')}>,`);\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 name = this.convertName(node, {\n suffix: 'Resolvers',\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(`__isTypeOf?: isTypeOfResolverFn<ParentType>,`));\n }\n const block = new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('type')\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 name = this.convertName(node, {\n suffix: 'Resolvers',\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;\n const parentType = this.getParentTypeToUse(node.name);\n return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('type')\n .withName(name, `<ContextType = ${this.config.contextType.type}, ${this.transformParentGenericType(parentType)}>`)\n .withBlock(indent(`__resolveType${this.config.optionalResolveType ? '?' : ''}: TypeResolveFn<${possibleTypes}, ParentType, ContextType>`)).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}'`)).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 InterfaceTypeDefinition(node) {\n const name = this.convertName(node, {\n suffix: 'Resolvers',\n });\n const allTypesMap = this._schema.getTypeMap();\n const implementingTypes = [];\n this._collectedResolvers[node.name] = name;\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 return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('type')\n .withName(name, `<ContextType = ${this.config.contextType.type}, ${this.transformParentGenericType(parentType)}>`)\n .withBlock([\n indent(`__resolveType${this.config.optionalResolveType ? '?' : ''}: TypeResolveFn<${possibleTypes}, ParentType, ContextType>,`),\n ...(node.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 'pascal-case';\nimport { generateFragmentImportStatement } from './imports';\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 omitOperationSuffix: getConfigValue(rawConfig.omitOperationSuffix, false),\n gqlImport: rawConfig.gqlImport || 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 ...additionalConfig,\n });\n this._schema = _schema;\n this._fragments = _fragments;\n this._collectedOperations = [];\n this._documents = [];\n this._additionalImports = [];\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 const gqlObj = gqlTag([doc]);\n if (gqlObj && gqlObj.loc) {\n delete gqlObj.loc;\n }\n return JSON.stringify(gqlObj);\n }\n else if (this.config.documentMode === DocumentMode.documentNodeImportFragments) {\n const gqlObj = gqlTag([doc]);\n if (gqlObj && gqlObj.loc) {\n delete gqlObj.loc;\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 return 'gql`' + doc + '`';\n }\n _generateFragment(fragmentDocument) {\n const name = this.getFragmentVariableName(fragmentDocument);\n const isDocumentNode = this.config.documentMode === DocumentMode.documentNode ||\n this.config.documentMode === DocumentMode.documentNodeImportFragments;\n return `export const ${name}${isDocumentNode ? ': DocumentNode' : ''} = ${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 const [moduleName, propName] = importStr.split('#');\n return {\n moduleName,\n propName,\n };\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 const imports = [...this._additionalImports];\n switch (this.config.documentMode) {\n case DocumentMode.documentNode:\n case DocumentMode.documentNodeImportFragments: {\n imports.push(`import { DocumentNode } from 'graphql';`);\n break;\n }\n case DocumentMode.graphQLTag: {\n const gqlImport = this._parseImport(this.config.gqlImport || 'graphql-tag');\n imports.push(`import ${gqlImport.propName ? `{ ${gqlImport.propName === 'gql' ? 'gql' : `${gqlImport.propName} as gql`} }` : 'gql'} from '${gqlImport.moduleName}';`);\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 imports.push(`import * as Operations from './${this.clearExtension(basename(this._documents[0].location))}';`);\n }\n else {\n imports.push(`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 imports.push(...fragmentImports.map(fragmentImport => generateFragmentImportStatement(fragmentImport, 'document')));\n }\n }\n return imports;\n }\n buildOperation(node, documentVariableName, operationType, operationResultType, operationVariablesTypes) {\n return null;\n }\n OperationDefinition(node) {\n if (!node.name || !node.name.value) {\n return null;\n }\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 let documentString = '';\n if (this.config.documentMode !== DocumentMode.external) {\n const isDocumentNode = this.config.documentMode === DocumentMode.documentNode ||\n this.config.documentMode === DocumentMode.documentNodeImportFragments;\n documentString = `${this.config.noExport ? '' : 'export'} const ${documentVariableName}${isDocumentNode ? ': DocumentNode' : ''} = ${this._gql(node)};`;\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 const additional = this.buildOperation(node, documentVariableName, operationType, operationResultType, operationVariablesTypes);\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, } from 'graphql';\nimport { getPossibleTypes, separateSelectionSet, getFieldNodeNameValue, DeclarationBlock, mergeSelectionSets, } from './utils';\nimport { getBaseType } 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.isTypeOf(typeOnSchema, null, null)) {\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 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 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 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),\n type: realSelectedFieldType.name,\n selectionSet: this._processor.config.wrapTypeWithModifiers(selectionSet.transformSelectionSet().split(`\\n`).join(`\\n `), selectedFieldType),\n });\n }\n const typeInfoField = this.buildTypeNameField(parentSchemaType, this._config.nonOptionalTypename, this._config.addTypename, requireTypename);\n const transformed = [\n ...(typeInfoField ? this._processor.transformTypenameField(typeInfoField.type, typeInfoField.name) : []),\n ...this._processor.transformPrimitiveFields(parentSchemaType, Array.from(primitiveFields.values()).map(field => field.name.value)),\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 buildTypeNameField(type, nonOptionalTypename = this._config.nonOptionalTypename, addTypename = this._config.addTypename, queriedForTypename = this._queriedForTypename) {\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 transformSelectionSet() {\n const grouped = this._buildGroupedSelections();\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 } 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];\n const baseType = getBaseType(fieldObj.type);\n let typeToUse = 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 else if (this.config.scalars[baseType.name]) {\n typeToUse = this.config.scalars[baseType.name];\n }\n const name = this.config.formatNamedField(field, fieldObj.type);\n const wrappedType = this.config.wrapTypeWithModifiers(typeToUse, 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-toolkit/relay-operation-optimizer';\nexport function optimizeOperations(schema, documents) {\n const newDocuments = optimizeDocuments(schema, documents.map(s => s.document));\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","parse","join","ApolloFederation","isInterfaceType","getBaseType","GraphQLObjectType","isUnionType","DocumentMode","visit","print","DepGraph","extname","basename","SchemaMetaFieldDef","TypeMetaFieldDef","optimizeDocuments"],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@graphql-codegen/visitor-plugin-common/index.esm.js b/node_modules/@graphql-codegen/visitor-plugin-common/index.esm.js
index 686653c..f5cbd1a 100644
--- a/node_modules/@graphql-codegen/visitor-plugin-common/index.esm.js
+++ b/node_modules/@graphql-codegen/visitor-plugin-common/index.esm.js
@@ -797,12 +797,34 @@ class OperationVariablesToObject {
}
return null;
}
- transform(variablesNode) {
+ transform(variablesNode, selectionSet) {
if (!variablesNode || variablesNode.length === 0) {
return null;
}
- return (variablesNode.map(variable => indent(this.transformVariable(variable))).join(`${this.getPunctuation()}\n`) +
- this.getPunctuation());
+ const exportedArgs = new Set([]);
+ const visitSelections = (selections) => {
+ selections.forEach(s => {
+ var _a, _b, _c;
+ const exportDirective = (_a = s.directives) === null || _a === void 0 ? void 0 : _a.find(d => { var _a; return ((_a = d.name) === null || _a === void 0 ? void 0 : _a.value) === 'export'; });
+ if (exportDirective) {
+ const arg = exportDirective === null || exportDirective === void 0 ? void 0 : exportDirective.arguments.find(a => { var _a; return ((_a = a.name) === null || _a === void 0 ? void 0 : _a.value) === 'as'; });
+ if (((_b = arg === null || arg === void 0 ? void 0 : arg.value) === null || _b === void 0 ? void 0 : _b.kind) === 'StringValue') {
+ exportedArgs.add(arg.value.value);
+ }
+ }
+ if ('selectionSet' in s && ((_c = s.selectionSet) === null || _c === void 0 ? void 0 : _c.selections)) {
+ visitSelections(s.selectionSet.selections);
+ }
+ });
+ };
+ if (selectionSet === null || selectionSet === void 0 ? void 0 : selectionSet.selections) {
+ visitSelections(selectionSet.selections);
+ }
+ const variableDefinitions = variablesNode
+ .filter(variable => { var _a, _b; return !exportedArgs.has((_b = (_a = variable === null || variable === void 0 ? void 0 : variable.variable) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.value); })
+ .map(variable => indent(this.transformVariable(variable)))
+ .join(`${this.getPunctuation()}\n`);
+ return variableDefinitions ? variableDefinitions + this.getPunctuation() : '';
}
getScalar(name) {
const prefix = this._namespacedImportName ? `${this._namespacedImportName}.` : '';
@@ -1212,7 +1234,7 @@ class BaseDocumentsVisitor extends BaseVisitor {
throw new Error(`Unable to find root schema type for operation type "${node.operation}"!`);
}
const selectionSet = this._selectionSetToObject.createNext(operationRootType, node.selectionSet);
- const visitedOperationVariables = this._variablesTransfomer.transform(node.variableDefinitions);
+ const visitedOperationVariables = this._variablesTransfomer.transform(node.variableDefinitions, node.selectionSet);
const operationType = pascalCase(node.operation);
const operationTypeSuffix = this.getOperationSuffix(name, operationType);
const operationResult = new DeclarationBlock(this._declarationBlockConfig)
diff --git a/node_modules/@graphql-codegen/visitor-plugin-common/index.esm.js.map b/node_modules/@graphql-codegen/visitor-plugin-common/index.esm.js.map
index e1a2128..e4d1d6f 100644
--- a/node_modules/@graphql-codegen/visitor-plugin-common/index.esm.js.map
+++ b/node_modules/@graphql-codegen/visitor-plugin-common/index.esm.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.esm.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('#') && !value.includes('\"') && !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}\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) {\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) {\n if (!comment || comment === '') {\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 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) {\n const nonEmptyComment = isStringValueNode(comment) ? !!comment.value : !!comment;\n if (nonEmptyComment) {\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 += '{}';\n }\n return ((this._comment ? this._comment : '') +\n result +\n (this._kind === 'interface' || this._kind === 'enum' || this._kind === 'namespace' ? '' : ';') +\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) {\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: 'any',\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 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}\n//# sourceMappingURL=utils.js.map","import { resolveExternalModuleAndFn } from '@graphql-codegen/plugin-helpers';\nimport { pascalCase } from 'pascal-case';\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 (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';\nexport function parseEnumValues(schema, mapOrStr = {}) {\n const allTypes = schema.getTypeMap();\n const allEnums = Object.keys(allTypes).filter(t => isEnumType(allTypes[t]));\n if (typeof mapOrStr === 'object') {\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] = value;\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};\nexport function normalizeAvoidOptionals(avoidOptionals) {\n if (typeof avoidOptionals === 'boolean') {\n return {\n object: avoidOptionals,\n inputValue: avoidOptionals,\n field: avoidOptionals,\n };\n }\n return {\n ...DEFAULT_AVOID_OPTIONALS,\n ...avoidOptionals,\n };\n}\n//# sourceMappingURL=avoid-optionals.js.map","import { dirname, isAbsolute, join, parse, relative, resolve } from 'path';\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({ importSource, ...rest });\n}\nexport function generateImportStatement(statement) {\n const { baseDir, importSource, outputPath } = statement;\n const importPath = resolveImportPath(baseDir, outputPath, importSource.path);\n const importNames = importSource.identifiers && importSource.identifiers.length ? `{ ${importSource.identifiers.join(', ')} }` : '*';\n const importAlias = importSource.namespace ? ` as ${importSource.namespace}` : '';\n return `import ${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 externalFragments: rawConfig.externalFragments || [],\n fragmentImports: rawConfig.fragmentImports || [],\n addTypename: !rawConfig.skipTypename,\n nonOptionalTypename: !!rawConfig.nonOptionalTypename,\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 get config() {\n return this._parsedConfig;\n }\n convertName(node, options) {\n const useTypesPrefix = typeof (options && options.useTypesPrefix) === 'boolean' ? options.useTypesPrefix : true;\n return (useTypesPrefix ? this.config.typesPrefix : '') + this.config.convert(node, options);\n }\n getOperationSuffix(node, operationType) {\n const { omitOperationSuffix = false, dedupeOperationSuffix = false } = this.config;\n const operationName = typeof node === 'string' ? node : 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 = {}) {\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 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);\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) {\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, } 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 addUnderscoreToArgsType: getConfigValue(rawConfig.addUnderscoreToArgsType, false),\n enumValues: parseEnumValues(_schema, rawConfig.enumValues),\n declarationKind: normalizeDeclarationKind(rawConfig.declarationKind),\n scalars: buildScalars(_schema, rawConfig.scalars, defaultScalars),\n ...additionalConfig,\n });\n this._schema = _schema;\n this._argumentsTransformer = new OperationVariablesToObject(this.scalars, this.convertName);\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 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 } = 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 declarationBlock.withContent(' extends ' + 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 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 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 if (asDefault) {\n return `import ${identifier} from '${source}';`;\n }\n return `import { ${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 buildEnumValuesBlock(typeName, values) {\n return values\n .map(enumOption => {\n const optionName = this.convertName(enumOption, { useTypesPrefix: false, transformUnderscore: true });\n const comment = transformComment(enumOption.description, 1);\n let enumValue = 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)}`));\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 }) +\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) {\n return this._getTypeForNode(node);\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 'pascal-case';\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 namespacedImportName: getConfigValue(rawConfig.namespacedImportName, null),\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 autoBind(this);\n this._variablesTransfomer = new OperationVariablesToObject(this.scalars, this.convertName, this.config.namespacedImportName);\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 handleAnonymouseOperation(node) {\n const name = node.name && node.name.value;\n if (name) {\n return this.convertName(node, {\n useTypesPrefix: false,\n });\n }\n return this.convertName(this._unnamedCounter++ + '', {\n prefix: 'Unnamed_',\n suffix: '_',\n useTypesPrefix: 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 selectionSet.transformFragmentSelectionSetToTypes(node.name.value, fragmentSuffix, this._declarationBlockConfig);\n }\n OperationDefinition(node) {\n const name = this.handleAnonymouseOperation(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(this._declarationBlockConfig)\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 } 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(_schema, rawConfig.enumValues),\n addUnderscoreToArgsType: getConfigValue(rawConfig.addUnderscoreToArgsType, false),\n contextType: parseMapper(rawConfig.contextType || 'any', 'ContextType'),\n fieldContextTypes: getConfigValue(rawConfig.fieldContextTypes, []),\n rootValueType: parseMapper(rawConfig.rootValueType || '{}', 'RootValueType'),\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 ...(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);\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));\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 // Kamil: this one is heeeeavvyyyy\n createResolversFields(applyWrapper, clearWrapper, getTypeToUse) {\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 if (typeName.startsWith('__')) {\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 const schemaType = allSchemaTypes[typeName];\n if (isRootType) {\n prev[typeName] = applyWrapper(this.config.rootValueType.type);\n return prev;\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] = this.config.enumValues[typeName].typeIdentifier;\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 (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 });\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 return `Maybe<${str}>`;\n }\n applyResolverTypeWrapper(str) {\n return `ResolverTypeWrapper<${this.clearResolverTypeWrapper(str)}>`;\n }\n clearMaybe(str) {\n if (str.startsWith('Maybe<')) {\n return str.replace(/Maybe<(.*?)>$/, '$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 return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('type')\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]},`))\n .join('\\n')).string;\n }\n buildResolversParentTypes() {\n return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('type')\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]},`))\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 => this.buildMapperImport(source, groupedMappers[source]))\n .filter(Boolean);\n }\n buildMapperImport(source, types) {\n if (!types || types.length === 0) {\n return null;\n }\n const defaultType = types.find(t => t.asDefault === true);\n const namedTypes = types.filter(t => !t.asDefault);\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 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('Resolvers');\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('type')\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));\n })\n .join('\\n')).string,\n deprecatedIResolvers,\n ].join('\\n');\n }\n formatRootResolver(schemaTypeName, resolverType) {\n return `${schemaTypeName}${this.config.avoidOptionals ? '' : '?'}: ${resolverType},`;\n }\n getAllDirectiveResolvers() {\n if (Object.keys(this._collectedDirectiveResolvers).length) {\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('type')\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));\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 `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);\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 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 useTypesPrefix: true,\n }) +\n (this.config.addUnderscoreToArgsType ? '_' : '') +\n this.convertName(node.name, {\n useTypesPrefix: false,\n }) +\n 'Args'}`\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(', ')}>,`);\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 name = this.convertName(node, {\n suffix: 'Resolvers',\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(`__isTypeOf?: isTypeOfResolverFn<ParentType>,`));\n }\n const block = new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('type')\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 name = this.convertName(node, {\n suffix: 'Resolvers',\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;\n const parentType = this.getParentTypeToUse(node.name);\n return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('type')\n .withName(name, `<ContextType = ${this.config.contextType.type}, ${this.transformParentGenericType(parentType)}>`)\n .withBlock(indent(`__resolveType${this.config.optionalResolveType ? '?' : ''}: TypeResolveFn<${possibleTypes}, ParentType, ContextType>`)).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}'`)).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 InterfaceTypeDefinition(node) {\n const name = this.convertName(node, {\n suffix: 'Resolvers',\n });\n const allTypesMap = this._schema.getTypeMap();\n const implementingTypes = [];\n this._collectedResolvers[node.name] = name;\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 return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('type')\n .withName(name, `<ContextType = ${this.config.contextType.type}, ${this.transformParentGenericType(parentType)}>`)\n .withBlock([\n indent(`__resolveType${this.config.optionalResolveType ? '?' : ''}: TypeResolveFn<${possibleTypes}, ParentType, ContextType>,`),\n ...(node.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 'pascal-case';\nimport { generateFragmentImportStatement } from './imports';\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 omitOperationSuffix: getConfigValue(rawConfig.omitOperationSuffix, false),\n gqlImport: rawConfig.gqlImport || 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 ...additionalConfig,\n });\n this._schema = _schema;\n this._fragments = _fragments;\n this._collectedOperations = [];\n this._documents = [];\n this._additionalImports = [];\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 const gqlObj = gqlTag([doc]);\n if (gqlObj && gqlObj.loc) {\n delete gqlObj.loc;\n }\n return JSON.stringify(gqlObj);\n }\n else if (this.config.documentMode === DocumentMode.documentNodeImportFragments) {\n const gqlObj = gqlTag([doc]);\n if (gqlObj && gqlObj.loc) {\n delete gqlObj.loc;\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 return 'gql`' + doc + '`';\n }\n _generateFragment(fragmentDocument) {\n const name = this.getFragmentVariableName(fragmentDocument);\n const isDocumentNode = this.config.documentMode === DocumentMode.documentNode ||\n this.config.documentMode === DocumentMode.documentNodeImportFragments;\n return `export const ${name}${isDocumentNode ? ': DocumentNode' : ''} = ${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 const [moduleName, propName] = importStr.split('#');\n return {\n moduleName,\n propName,\n };\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 const imports = [...this._additionalImports];\n switch (this.config.documentMode) {\n case DocumentMode.documentNode:\n case DocumentMode.documentNodeImportFragments: {\n imports.push(`import { DocumentNode } from 'graphql';`);\n break;\n }\n case DocumentMode.graphQLTag: {\n const gqlImport = this._parseImport(this.config.gqlImport || 'graphql-tag');\n imports.push(`import ${gqlImport.propName ? `{ ${gqlImport.propName === 'gql' ? 'gql' : `${gqlImport.propName} as gql`} }` : 'gql'} from '${gqlImport.moduleName}';`);\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 imports.push(`import * as Operations from './${this.clearExtension(basename(this._documents[0].location))}';`);\n }\n else {\n imports.push(`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 imports.push(...fragmentImports.map(fragmentImport => generateFragmentImportStatement(fragmentImport, 'document')));\n }\n }\n return imports;\n }\n buildOperation(node, documentVariableName, operationType, operationResultType, operationVariablesTypes) {\n return null;\n }\n OperationDefinition(node) {\n if (!node.name || !node.name.value) {\n return null;\n }\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 let documentString = '';\n if (this.config.documentMode !== DocumentMode.external) {\n const isDocumentNode = this.config.documentMode === DocumentMode.documentNode ||\n this.config.documentMode === DocumentMode.documentNodeImportFragments;\n documentString = `${this.config.noExport ? '' : 'export'} const ${documentVariableName}${isDocumentNode ? ': DocumentNode' : ''} = ${this._gql(node)};`;\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 const additional = this.buildOperation(node, documentVariableName, operationType, operationResultType, operationVariablesTypes);\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, } from 'graphql';\nimport { getPossibleTypes, separateSelectionSet, getFieldNodeNameValue, DeclarationBlock, mergeSelectionSets, } from './utils';\nimport { getBaseType } 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.isTypeOf(typeOnSchema, null, null)) {\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 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 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 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),\n type: realSelectedFieldType.name,\n selectionSet: this._processor.config.wrapTypeWithModifiers(selectionSet.transformSelectionSet().split(`\\n`).join(`\\n `), selectedFieldType),\n });\n }\n const typeInfoField = this.buildTypeNameField(parentSchemaType, this._config.nonOptionalTypename, this._config.addTypename, requireTypename);\n const transformed = [\n ...(typeInfoField ? this._processor.transformTypenameField(typeInfoField.type, typeInfoField.name) : []),\n ...this._processor.transformPrimitiveFields(parentSchemaType, Array.from(primitiveFields.values()).map(field => field.name.value)),\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 buildTypeNameField(type, nonOptionalTypename = this._config.nonOptionalTypename, addTypename = this._config.addTypename, queriedForTypename = this._queriedForTypename) {\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 transformSelectionSet() {\n const grouped = this._buildGroupedSelections();\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 } 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];\n const baseType = getBaseType(fieldObj.type);\n let typeToUse = 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 else if (this.config.scalars[baseType.name]) {\n typeToUse = this.config.scalars[baseType.name];\n }\n const name = this.config.formatNamedField(field, fieldObj.type);\n const wrappedType = this.config.wrapTypeWithModifiers(typeToUse, 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-toolkit/relay-operation-optimizer';\nexport function optimizeOperations(schema, documents) {\n const newDocuments = optimizeDocuments(schema, documents.map(s => s.document));\n return newDocuments.map(document => ({\n location: 'optimized by relay',\n document,\n }));\n}\n//# sourceMappingURL=optimize-operations.js.map"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"index.esm.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('#') && !value.includes('\"') && !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}\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) {\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) {\n if (!comment || comment === '') {\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 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) {\n const nonEmptyComment = isStringValueNode(comment) ? !!comment.value : !!comment;\n if (nonEmptyComment) {\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 += '{}';\n }\n return ((this._comment ? this._comment : '') +\n result +\n (this._kind === 'interface' || this._kind === 'enum' || this._kind === 'namespace' ? '' : ';') +\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) {\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: 'any',\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 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}\n//# sourceMappingURL=utils.js.map","import { resolveExternalModuleAndFn } from '@graphql-codegen/plugin-helpers';\nimport { pascalCase } from 'pascal-case';\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 (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';\nexport function parseEnumValues(schema, mapOrStr = {}) {\n const allTypes = schema.getTypeMap();\n const allEnums = Object.keys(allTypes).filter(t => isEnumType(allTypes[t]));\n if (typeof mapOrStr === 'object') {\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] = value;\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};\nexport function normalizeAvoidOptionals(avoidOptionals) {\n if (typeof avoidOptionals === 'boolean') {\n return {\n object: avoidOptionals,\n inputValue: avoidOptionals,\n field: avoidOptionals,\n };\n }\n return {\n ...DEFAULT_AVOID_OPTIONALS,\n ...avoidOptionals,\n };\n}\n//# sourceMappingURL=avoid-optionals.js.map","import { dirname, isAbsolute, join, parse, relative, resolve } from 'path';\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({ importSource, ...rest });\n}\nexport function generateImportStatement(statement) {\n const { baseDir, importSource, outputPath } = statement;\n const importPath = resolveImportPath(baseDir, outputPath, importSource.path);\n const importNames = importSource.identifiers && importSource.identifiers.length ? `{ ${importSource.identifiers.join(', ')} }` : '*';\n const importAlias = importSource.namespace ? ` as ${importSource.namespace}` : '';\n return `import ${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 externalFragments: rawConfig.externalFragments || [],\n fragmentImports: rawConfig.fragmentImports || [],\n addTypename: !rawConfig.skipTypename,\n nonOptionalTypename: !!rawConfig.nonOptionalTypename,\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 get config() {\n return this._parsedConfig;\n }\n convertName(node, options) {\n const useTypesPrefix = typeof (options && options.useTypesPrefix) === 'boolean' ? options.useTypesPrefix : true;\n return (useTypesPrefix ? this.config.typesPrefix : '') + this.config.convert(node, options);\n }\n getOperationSuffix(node, operationType) {\n const { omitOperationSuffix = false, dedupeOperationSuffix = false } = this.config;\n const operationName = typeof node === 'string' ? node : 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 = {}) {\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 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, selectionSet) {\n if (!variablesNode || variablesNode.length === 0) {\n return null;\n }\n const exportedArgs = new Set([]);\n const visitSelections = (selections) => {\n selections.forEach(s => {\n var _a, _b, _c;\n const exportDirective = (_a = s.directives) === null || _a === void 0 ? void 0 : _a.find(d => { var _a; return ((_a = d.name) === null || _a === void 0 ? void 0 : _a.value) === 'export'; });\n if (exportDirective) {\n const arg = exportDirective === null || exportDirective === void 0 ? void 0 : exportDirective.arguments.find(a => { var _a; return ((_a = a.name) === null || _a === void 0 ? void 0 : _a.value) === 'as'; });\n if (((_b = arg === null || arg === void 0 ? void 0 : arg.value) === null || _b === void 0 ? void 0 : _b.kind) === 'StringValue') {\n exportedArgs.add(arg.value.value);\n }\n }\n if ('selectionSet' in s && ((_c = s.selectionSet) === null || _c === void 0 ? void 0 : _c.selections)) {\n visitSelections(s.selectionSet.selections);\n }\n });\n };\n if (selectionSet === null || selectionSet === void 0 ? void 0 : selectionSet.selections) {\n visitSelections(selectionSet.selections);\n }\n const variableDefinitions = variablesNode\n .filter(variable => { var _a, _b; return !exportedArgs.has((_b = (_a = variable === null || variable === void 0 ? void 0 : variable.variable) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.value); })\n .map(variable => indent(this.transformVariable(variable)))\n .join(`${this.getPunctuation()}\\n`);\n return variableDefinitions ? variableDefinitions + 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);\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) {\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, } 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 addUnderscoreToArgsType: getConfigValue(rawConfig.addUnderscoreToArgsType, false),\n enumValues: parseEnumValues(_schema, rawConfig.enumValues),\n declarationKind: normalizeDeclarationKind(rawConfig.declarationKind),\n scalars: buildScalars(_schema, rawConfig.scalars, defaultScalars),\n ...additionalConfig,\n });\n this._schema = _schema;\n this._argumentsTransformer = new OperationVariablesToObject(this.scalars, this.convertName);\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 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 } = 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 declarationBlock.withContent(' extends ' + 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 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 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 if (asDefault) {\n return `import ${identifier} from '${source}';`;\n }\n return `import { ${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 buildEnumValuesBlock(typeName, values) {\n return values\n .map(enumOption => {\n const optionName = this.convertName(enumOption, { useTypesPrefix: false, transformUnderscore: true });\n const comment = transformComment(enumOption.description, 1);\n let enumValue = 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)}`));\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 }) +\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) {\n return this._getTypeForNode(node);\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 'pascal-case';\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 namespacedImportName: getConfigValue(rawConfig.namespacedImportName, null),\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 autoBind(this);\n this._variablesTransfomer = new OperationVariablesToObject(this.scalars, this.convertName, this.config.namespacedImportName);\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 handleAnonymouseOperation(node) {\n const name = node.name && node.name.value;\n if (name) {\n return this.convertName(node, {\n useTypesPrefix: false,\n });\n }\n return this.convertName(this._unnamedCounter++ + '', {\n prefix: 'Unnamed_',\n suffix: '_',\n useTypesPrefix: 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 selectionSet.transformFragmentSelectionSetToTypes(node.name.value, fragmentSuffix, this._declarationBlockConfig);\n }\n OperationDefinition(node) {\n const name = this.handleAnonymouseOperation(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, node.selectionSet);\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(this._declarationBlockConfig)\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 } 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(_schema, rawConfig.enumValues),\n addUnderscoreToArgsType: getConfigValue(rawConfig.addUnderscoreToArgsType, false),\n contextType: parseMapper(rawConfig.contextType || 'any', 'ContextType'),\n fieldContextTypes: getConfigValue(rawConfig.fieldContextTypes, []),\n rootValueType: parseMapper(rawConfig.rootValueType || '{}', 'RootValueType'),\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 ...(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);\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));\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 // Kamil: this one is heeeeavvyyyy\n createResolversFields(applyWrapper, clearWrapper, getTypeToUse) {\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 if (typeName.startsWith('__')) {\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 const schemaType = allSchemaTypes[typeName];\n if (isRootType) {\n prev[typeName] = applyWrapper(this.config.rootValueType.type);\n return prev;\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] = this.config.enumValues[typeName].typeIdentifier;\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 (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 });\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 return `Maybe<${str}>`;\n }\n applyResolverTypeWrapper(str) {\n return `ResolverTypeWrapper<${this.clearResolverTypeWrapper(str)}>`;\n }\n clearMaybe(str) {\n if (str.startsWith('Maybe<')) {\n return str.replace(/Maybe<(.*?)>$/, '$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 return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('type')\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]},`))\n .join('\\n')).string;\n }\n buildResolversParentTypes() {\n return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('type')\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]},`))\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 => this.buildMapperImport(source, groupedMappers[source]))\n .filter(Boolean);\n }\n buildMapperImport(source, types) {\n if (!types || types.length === 0) {\n return null;\n }\n const defaultType = types.find(t => t.asDefault === true);\n const namedTypes = types.filter(t => !t.asDefault);\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 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('Resolvers');\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('type')\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));\n })\n .join('\\n')).string,\n deprecatedIResolvers,\n ].join('\\n');\n }\n formatRootResolver(schemaTypeName, resolverType) {\n return `${schemaTypeName}${this.config.avoidOptionals ? '' : '?'}: ${resolverType},`;\n }\n getAllDirectiveResolvers() {\n if (Object.keys(this._collectedDirectiveResolvers).length) {\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('type')\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));\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 `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);\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 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 useTypesPrefix: true,\n }) +\n (this.config.addUnderscoreToArgsType ? '_' : '') +\n this.convertName(node.name, {\n useTypesPrefix: false,\n }) +\n 'Args'}`\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(', ')}>,`);\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 name = this.convertName(node, {\n suffix: 'Resolvers',\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(`__isTypeOf?: isTypeOfResolverFn<ParentType>,`));\n }\n const block = new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('type')\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 name = this.convertName(node, {\n suffix: 'Resolvers',\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;\n const parentType = this.getParentTypeToUse(node.name);\n return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('type')\n .withName(name, `<ContextType = ${this.config.contextType.type}, ${this.transformParentGenericType(parentType)}>`)\n .withBlock(indent(`__resolveType${this.config.optionalResolveType ? '?' : ''}: TypeResolveFn<${possibleTypes}, ParentType, ContextType>`)).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}'`)).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 InterfaceTypeDefinition(node) {\n const name = this.convertName(node, {\n suffix: 'Resolvers',\n });\n const allTypesMap = this._schema.getTypeMap();\n const implementingTypes = [];\n this._collectedResolvers[node.name] = name;\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 return new DeclarationBlock(this._declarationBlockConfig)\n .export()\n .asKind('type')\n .withName(name, `<ContextType = ${this.config.contextType.type}, ${this.transformParentGenericType(parentType)}>`)\n .withBlock([\n indent(`__resolveType${this.config.optionalResolveType ? '?' : ''}: TypeResolveFn<${possibleTypes}, ParentType, ContextType>,`),\n ...(node.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 'pascal-case';\nimport { generateFragmentImportStatement } from './imports';\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 omitOperationSuffix: getConfigValue(rawConfig.omitOperationSuffix, false),\n gqlImport: rawConfig.gqlImport || 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 ...additionalConfig,\n });\n this._schema = _schema;\n this._fragments = _fragments;\n this._collectedOperations = [];\n this._documents = [];\n this._additionalImports = [];\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 const gqlObj = gqlTag([doc]);\n if (gqlObj && gqlObj.loc) {\n delete gqlObj.loc;\n }\n return JSON.stringify(gqlObj);\n }\n else if (this.config.documentMode === DocumentMode.documentNodeImportFragments) {\n const gqlObj = gqlTag([doc]);\n if (gqlObj && gqlObj.loc) {\n delete gqlObj.loc;\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 return 'gql`' + doc + '`';\n }\n _generateFragment(fragmentDocument) {\n const name = this.getFragmentVariableName(fragmentDocument);\n const isDocumentNode = this.config.documentMode === DocumentMode.documentNode ||\n this.config.documentMode === DocumentMode.documentNodeImportFragments;\n return `export const ${name}${isDocumentNode ? ': DocumentNode' : ''} = ${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 const [moduleName, propName] = importStr.split('#');\n return {\n moduleName,\n propName,\n };\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 const imports = [...this._additionalImports];\n switch (this.config.documentMode) {\n case DocumentMode.documentNode:\n case DocumentMode.documentNodeImportFragments: {\n imports.push(`import { DocumentNode } from 'graphql';`);\n break;\n }\n case DocumentMode.graphQLTag: {\n const gqlImport = this._parseImport(this.config.gqlImport || 'graphql-tag');\n imports.push(`import ${gqlImport.propName ? `{ ${gqlImport.propName === 'gql' ? 'gql' : `${gqlImport.propName} as gql`} }` : 'gql'} from '${gqlImport.moduleName}';`);\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 imports.push(`import * as Operations from './${this.clearExtension(basename(this._documents[0].location))}';`);\n }\n else {\n imports.push(`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 imports.push(...fragmentImports.map(fragmentImport => generateFragmentImportStatement(fragmentImport, 'document')));\n }\n }\n return imports;\n }\n buildOperation(node, documentVariableName, operationType, operationResultType, operationVariablesTypes) {\n return null;\n }\n OperationDefinition(node) {\n if (!node.name || !node.name.value) {\n return null;\n }\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 let documentString = '';\n if (this.config.documentMode !== DocumentMode.external) {\n const isDocumentNode = this.config.documentMode === DocumentMode.documentNode ||\n this.config.documentMode === DocumentMode.documentNodeImportFragments;\n documentString = `${this.config.noExport ? '' : 'export'} const ${documentVariableName}${isDocumentNode ? ': DocumentNode' : ''} = ${this._gql(node)};`;\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 const additional = this.buildOperation(node, documentVariableName, operationType, operationResultType, operationVariablesTypes);\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, } from 'graphql';\nimport { getPossibleTypes, separateSelectionSet, getFieldNodeNameValue, DeclarationBlock, mergeSelectionSets, } from './utils';\nimport { getBaseType } 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.isTypeOf(typeOnSchema, null, null)) {\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 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 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 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),\n type: realSelectedFieldType.name,\n selectionSet: this._processor.config.wrapTypeWithModifiers(selectionSet.transformSelectionSet().split(`\\n`).join(`\\n `), selectedFieldType),\n });\n }\n const typeInfoField = this.buildTypeNameField(parentSchemaType, this._config.nonOptionalTypename, this._config.addTypename, requireTypename);\n const transformed = [\n ...(typeInfoField ? this._processor.transformTypenameField(typeInfoField.type, typeInfoField.name) : []),\n ...this._processor.transformPrimitiveFields(parentSchemaType, Array.from(primitiveFields.values()).map(field => field.name.value)),\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 buildTypeNameField(type, nonOptionalTypename = this._config.nonOptionalTypename, addTypename = this._config.addTypename, queriedForTypename = this._queriedForTypename) {\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 transformSelectionSet() {\n const grouped = this._buildGroupedSelections();\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 } 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];\n const baseType = getBaseType(fieldObj.type);\n let typeToUse = 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 else if (this.config.scalars[baseType.name]) {\n typeToUse = this.config.scalars[baseType.name];\n }\n const name = this.config.formatNamedField(field, fieldObj.type);\n const wrappedType = this.config.wrapTypeWithModifiers(typeToUse, 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-toolkit/relay-operation-optimizer';\nexport function optimizeOperations(schema, documents) {\n const newDocuments = optimizeDocuments(schema, documents.map(s => s.document));\n return newDocuments.map(document => ({\n location: 'optimized by relay',\n document,\n }));\n}\n//# sourceMappingURL=optimize-operations.js.map"],"names":[],"mappings":"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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment