@graphql-tools/graphql
Version:
Fork of GraphQL.js
30 lines (29 loc) • 1.43 kB
text/typescript
import type { ObjMap } from '../jsutils/ObjMap.cjs';
import type { FieldNode, FragmentDefinitionNode, SelectionSetNode } from '../language/ast.cjs';
import type { GraphQLObjectType } from '../type/definition.cjs';
import type { GraphQLSchema } from '../type/schema.cjs';
/**
* Given a selectionSet, collects all of the fields and returns them.
*
* CollectFields requires the "runtime type" of an object. For a field that
* returns an Interface or Union type, the "runtime type" will be the actual
* object type returned by that field.
*
* @internal
*/
export declare function collectFields(schema: GraphQLSchema, fragments: ObjMap<FragmentDefinitionNode>, variableValues: {
[variable: string]: unknown;
}, runtimeType: GraphQLObjectType, selectionSet: SelectionSetNode): Map<string, ReadonlyArray<FieldNode>>;
/**
* Given an array of field nodes, collects all of the subfields of the passed
* in fields, and returns them at the end.
*
* CollectSubFields requires the "return type" of an object. For a field that
* returns an Interface or Union type, the "return type" will be the actual
* object type returned by that field.
*
* @internal
*/
export declare function collectSubfields(schema: GraphQLSchema, fragments: ObjMap<FragmentDefinitionNode>, variableValues: {
[variable: string]: unknown;
}, returnType: GraphQLObjectType, fieldNodes: ReadonlyArray<FieldNode>): Map<string, ReadonlyArray<FieldNode>>;