import { DocumentNode, FragmentDefinitionNode, GraphQLSchema } from 'graphql'; import { Types } from '@graphql-codegen/plugin-helpers'; import { FragmentImport, ImportDeclaration, LoadedFragment, ParsedConfig } from '@graphql-codegen/visitor-plugin-common'; import { DocumentImportResolverOptions } from './resolve-document-imports.js'; export interface NearOperationFileParsedConfig extends ParsedConfig { importTypesNamespace?: string; dedupeOperationSuffix: boolean; omitOperationSuffix: boolean; fragmentVariablePrefix: string; fragmentVariableSuffix: string; } export type FragmentRegistry = { [fragmentName: string]: { filePath: string; onType: string; node: FragmentDefinitionNode; imports: Array; possibleTypes: string[]; }; }; /** * Builds a fragment "resolver" that collects `externalFragments` definitions and `fragmentImportStatements` */ export default function buildFragmentResolver(collectorOptions: DocumentImportResolverOptions, presetOptions: Types.PresetFnArgs, schemaObject: GraphQLSchema, dedupeFragments?: boolean): (generatedFilePath: string, documentFileContent: DocumentNode) => { externalFragments: LoadedFragment<{ level: number; }>[]; fragmentImports: ImportDeclaration[]; };