UNPKG

@backland/schema

Version:

TypeScript schema declaration and validation library with static type inference

120 lines (119 loc) 6.58 kB
import type { GraphQLInterfaceType, GraphQLNamedInputType, GraphQLNamedType } from 'graphql'; import { BacklandModules } from '../CircularDeps'; import { Infer } from '../Infer'; import { FinalFieldDefinition, ObjectDefinitionInput } from '../ObjectType'; import { ExtendObjectDefinition } from '../extendObjectDefinition'; import { ExtendType, MakeTypeList, MakeTypeOptional, MakeTypeRequired, MakeTypeSingle } from '../extendType'; import { FieldParserConfig, TAnyFieldType } from '../fields/FieldType'; import { GraphTypeLike } from '../fields/IObjectLike'; import { ObjectFieldInput } from '../fields/_parseFields'; import type { ObjectToTypescriptOptions } from '../objectToTypescript'; import type { ConvertFieldResult } from './GraphQLParser'; export declare class GraphType<Definition extends ObjectFieldInput> { static __isGraphType: boolean; readonly __isGraphType = true; static register: import("@backland/utils").Store<Record<string, GraphTypeLike>, string, GraphTypeLike>; static resolvers: import("@backland/utils").Store<Record<string, { description?: import("graphql/jsutils/Maybe").Maybe<string>; subscribe?: import("graphql").GraphQLFieldResolver<any, any, any, unknown> | undefined; deprecationReason?: import("graphql/jsutils/Maybe").Maybe<string>; extensions?: import("graphql/jsutils/Maybe").Maybe<Readonly<import("graphql").GraphQLFieldExtensions<any, any, any>>>; astNode?: import("graphql/jsutils/Maybe").Maybe<import("graphql").FieldDefinitionNode>; __graphTypeId: string; __isRelation: boolean; __isResolver: true; __relatedToGraphTypeId: string; args: any; argsDef: any; argsType: any; asObjectField: (name?: string | undefined) => import("graphql").GraphQLField<any, any, any>; kind: import("../Resolver").ResolverKind; name: string; payloadType: any; type: any; typeDef: any; resolve: <Root>(root: Root, args: any, context: any, info: import("graphql").GraphQLResolveInfo) => any; }>, string, { description?: import("graphql/jsutils/Maybe").Maybe<string>; subscribe?: import("graphql").GraphQLFieldResolver<any, any, any, unknown> | undefined; deprecationReason?: import("graphql/jsutils/Maybe").Maybe<string>; extensions?: import("graphql/jsutils/Maybe").Maybe<Readonly<import("graphql").GraphQLFieldExtensions<any, any, any>>>; astNode?: import("graphql/jsutils/Maybe").Maybe<import("graphql").FieldDefinitionNode>; __graphTypeId: string; __isRelation: boolean; __isResolver: true; __relatedToGraphTypeId: string; args: any; argsDef: any; argsType: any; asObjectField: (name?: string | undefined) => import("graphql").GraphQLField<any, any, any>; kind: import("../Resolver").ResolverKind; name: string; payloadType: any; type: any; typeDef: any; resolve: <Root>(root: Root, args: any, context: any, info: import("graphql").GraphQLResolveInfo) => any; }>; static reset: () => Promise<void>; readonly definition: Definition; get id(): string; private _optionalId; get optionalId(): string | undefined; constructor(definition: Definition extends ObjectFieldInput ? Definition | (() => Definition) : never); constructor(name: string, definition: Definition extends ObjectFieldInput ? Definition | (() => Definition) : never); __lazyGetter: LazyParseGraphTypePayload; touched: boolean; touch(): this; private __hidden; identify: (name: string) => void; set hidden(value: boolean); get hidden(): boolean; parse: (input: any, options?: FieldParserConfig) => Infer<Definition>; _toGraphQL: () => ConvertFieldResult; graphQLType: (options?: import("./GraphQLParser").ParseTypeOptions | undefined) => GraphQLNamedType; graphQLInputType: (options?: import("./GraphQLParser").ParseInputTypeOptions | undefined) => GraphQLNamedInputType; graphQLInterface: (options?: import("./GraphQLParser").ParseInterfaceOptions | undefined) => GraphQLInterfaceType; clone<T>(handler: (input: ExtendObjectDefinition<this, this>) => T): T; override<T>(handler: (input: ExtendType<this>) => T): T; beforeInitialize: ((definition: LazyParseGraphTypePayload) => LazyParseGraphTypePayload)[]; mutateFields<Def extends ObjectDefinitionInput>(callback: (input: ExtendObjectDefinition<this, this>) => Def): GraphType<{ object: Def; }>; print: () => string[]; typescriptPrint: (options?: (ObjectToTypescriptOptions & { name?: string | undefined; }) | undefined) => Promise<string>; optionalType: (name?: string) => Definition extends unknown ? GraphType<MakeTypeOptional<Definition>> : never; requiredType: (name?: string) => Definition extends unknown ? GraphType<MakeTypeRequired<Definition>> : never; listType: (name?: string) => Definition extends unknown ? GraphType<MakeTypeList<Definition>> : never; singleType: (name?: string) => Definition extends unknown ? GraphType<MakeTypeSingle<Definition>> : never; /** * Get an Object with the provided id * or set a new Object in the register if not found. * @param id * @param def */ static getOrSet: <T extends ObjectFieldInput>(id: string, def: T) => GraphType<T>; static is(input: any): input is GraphType<any>; static isTypeDefinition(input: any): input is { defaultValue?: unknown; description?: string; hidden?: boolean; list?: boolean; name?: string; optional?: boolean; type: GraphTypeLike; }; } export type LazyParseGraphTypePayload = { definition: FinalFieldDefinition; definitionInput: ObjectFieldInput | ((utils: BacklandModules) => ObjectFieldInput); field: TAnyFieldType; id: string | undefined; idFromArgs: string | undefined; objectType?: any; }; export type GraphTypeArgs<Def extends ObjectFieldInput = ObjectFieldInput> = [string, Def | ((utils: BacklandModules) => Def)] | [Def | ((utils: BacklandModules) => Def)]; export declare function createType<Definition extends ObjectFieldInput>(definition: Definition | ((utils: BacklandModules) => Definition)): GraphType<Definition>; export declare function createType<Definition extends ObjectFieldInput>(name: string, definition: Definition | ((utils: BacklandModules) => Definition)): GraphType<Definition>; export declare function getType(name: string): GraphTypeLike;