UNPKG

graphql

Version:

A Query Language and Runtime which can target any service.

70 lines (69 loc) 4.61 kB
import type { GraphQLArgumentNormalizedConfig, GraphQLEnumTypeNormalizedConfig, GraphQLEnumValueConfig, GraphQLFieldNormalizedConfig, GraphQLInputFieldConfig, GraphQLInputObjectTypeNormalizedConfig, GraphQLInterfaceTypeNormalizedConfig, GraphQLNamedType, GraphQLObjectTypeNormalizedConfig, GraphQLScalarTypeNormalizedConfig, GraphQLUnionTypeNormalizedConfig } from "../type/definition.js"; import type { GraphQLDirectiveNormalizedConfig } from "../type/directives.js"; import type { GraphQLSchemaNormalizedConfig } from "../type/schema.js"; /** * The set of GraphQL Schema Elements. * * @internal */ export declare const SchemaElementKind: { readonly SCHEMA: "SCHEMA"; readonly SCALAR: "SCALAR"; readonly OBJECT: "OBJECT"; readonly FIELD: "FIELD"; readonly ARGUMENT: "ARGUMENT"; readonly INTERFACE: "INTERFACE"; readonly UNION: "UNION"; readonly ENUM: "ENUM"; readonly ENUM_VALUE: "ENUM_VALUE"; readonly INPUT_OBJECT: "INPUT_OBJECT"; readonly INPUT_FIELD: "INPUT_FIELD"; readonly DIRECTIVE: "DIRECTIVE"; }; /** @internal */ type SchemaElementKind = (typeof SchemaElementKind)[keyof typeof SchemaElementKind]; /** @internal */ export interface MappedSchemaContext { getNamedType: (typeName: string) => GraphQLNamedType; setNamedType: (type: GraphQLNamedType) => void; getNamedTypes: () => ReadonlyArray<GraphQLNamedType>; } type GraphQLScalarTypeMappedConfig = GraphQLScalarTypeNormalizedConfig<any, any>; type EnsureThunks<T, ThunkFields extends keyof T> = { [K in keyof T]: K extends ThunkFields ? () => T[K] : T[K]; }; type GraphQLObjectTypeMappedConfig = EnsureThunks<GraphQLObjectTypeNormalizedConfig<any, any>, 'interfaces' | 'fields'>; type GraphQLInterfaceTypeMappedConfig = EnsureThunks<GraphQLInterfaceTypeNormalizedConfig<any, any>, 'interfaces' | 'fields'>; type GraphQLUnionTypeMappedConfig = EnsureThunks<GraphQLUnionTypeNormalizedConfig<any, any>, 'types'>; type GraphQLEnumTypeMappedConfig = EnsureThunks<GraphQLEnumTypeNormalizedConfig, 'values'>; type GraphQLInputObjectTypeMappedConfig = EnsureThunks<GraphQLInputObjectTypeNormalizedConfig, 'fields'>; type ScalarTypeConfigMapper = (scalarConfig: GraphQLScalarTypeMappedConfig) => GraphQLScalarTypeMappedConfig; type ObjectTypeConfigMapper = (objectConfig: GraphQLObjectTypeMappedConfig) => GraphQLObjectTypeMappedConfig; type FieldConfigMapper = (fieldConfig: GraphQLFieldNormalizedConfig<any, any>, parentTypeName: string) => GraphQLFieldNormalizedConfig<any, any>; type ArgumentConfigMapper = (argConfig: GraphQLArgumentNormalizedConfig, fieldOrDirectiveName: string, parentTypeName?: string) => GraphQLArgumentNormalizedConfig; type InterfaceTypeConfigMapper = (interfaceConfig: GraphQLInterfaceTypeMappedConfig) => GraphQLInterfaceTypeMappedConfig; type UnionTypeConfigMapper = (unionConfig: GraphQLUnionTypeMappedConfig) => GraphQLUnionTypeMappedConfig; type EnumTypeConfigMapper = (enumConfig: GraphQLEnumTypeMappedConfig) => GraphQLEnumTypeMappedConfig; type EnumValueConfigMapper = (enumValueConfig: GraphQLEnumValueConfig, valueName: string, enumName: string) => GraphQLEnumValueConfig; type InputObjectTypeConfigMapper = (inputObjectConfig: GraphQLInputObjectTypeMappedConfig) => GraphQLInputObjectTypeMappedConfig; type InputFieldConfigMapper = (inputFieldConfig: GraphQLInputFieldConfig, inputFieldName: string, inputObjectTypeName: string) => GraphQLInputFieldConfig; type DirectiveConfigMapper = (directiveConfig: GraphQLDirectiveNormalizedConfig) => GraphQLDirectiveNormalizedConfig; type SchemaConfigMapper = (originalSchemaConfig: GraphQLSchemaNormalizedConfig) => GraphQLSchemaNormalizedConfig; /** @internal */ export interface ConfigMapperMap { [SchemaElementKind.SCALAR]?: ScalarTypeConfigMapper; [SchemaElementKind.OBJECT]?: ObjectTypeConfigMapper; [SchemaElementKind.FIELD]?: FieldConfigMapper; [SchemaElementKind.ARGUMENT]?: ArgumentConfigMapper; [SchemaElementKind.INTERFACE]?: InterfaceTypeConfigMapper; [SchemaElementKind.UNION]?: UnionTypeConfigMapper; [SchemaElementKind.ENUM]?: EnumTypeConfigMapper; [SchemaElementKind.ENUM_VALUE]?: EnumValueConfigMapper; [SchemaElementKind.INPUT_OBJECT]?: InputObjectTypeConfigMapper; [SchemaElementKind.INPUT_FIELD]?: InputFieldConfigMapper; [SchemaElementKind.DIRECTIVE]?: DirectiveConfigMapper; [SchemaElementKind.SCHEMA]?: SchemaConfigMapper; } /** @internal */ export declare function mapSchemaConfig(schemaConfig: GraphQLSchemaNormalizedConfig, configMapperMapFn: (context: MappedSchemaContext) => ConfigMapperMap): GraphQLSchemaNormalizedConfig; export {};