UNPKG

@cortexql/ts2graphql

Version:

A TypeScrpt transpiler to GraphQL for your project

89 lines (88 loc) 3.37 kB
import { TypeDoc, TypeDocRef } from './TypeDoc'; import { GraphQLObjectType, GraphQLSchema, GraphQLNamedType, GraphQLResolveInfo, GraphQLType } from 'graphql'; export interface Parser { name: string; args: (boolean | string | number | null)[]; } export interface ParserRule extends Parser { path: string[]; valueType: GraphQLType; } export interface ParserHandlerParseOptions { type: GraphQLObjectType; fieldName: string; args: { [argName: string]: any; }; sanitizeRules: ParserRule[]; validateRules: ParserRule[]; source: any; context: any; info: GraphQLResolveInfo; } export declare type ParserHandlerTest = (action: 'sanitize' | 'validate', valueType: GraphQLNamedType, name: string, args: (boolean | string | number | null)[]) => Error | void; export declare type ParserHandlerParse = (options: ParserHandlerParseOptions) => void | Promise<void>; export interface ParserHandler { test: ParserHandlerTest; parse: ParserHandlerParse; } export interface TypeDoc2GraphQLPaths { types: string; query: string; mutation: string; subscription: string; } export interface TypeDoc2GraphQLOptions { types?: GraphQLNamedType[]; parserHandler?: ParserHandler; paths?: Partial<TypeDoc2GraphQLPaths>; } export declare class TypeDoc2GraphQL { protected typedoc: TypeDoc; protected options: TypeDoc2GraphQLOptions; protected resolvedTypes: { [key: string]: GraphQLNamedType; }; protected types: { [name: string]: GraphQLNamedType; }; protected paths: TypeDoc2GraphQLPaths; protected query: GraphQLObjectType | void; protected mutation: GraphQLObjectType | void; protected subscription: GraphQLObjectType | void; protected parserHandler: ParserHandler; constructor(options: TypeDoc2GraphQLOptions); initialize(doc: TypeDocRef | TypeDoc): void; getTypeDoc(): TypeDoc; private relativeError(message, ref, externalModule?); private getFileExport(file, subscribe?); private resolveIntrinsicType(type, ref); private resolveExternalUnionType(typeRef, ref); private resolveExternalType(ref, parents?, isInput?); private resolveInterfaceMethodArg(ref, parent, methodName?); private resolveInterfaceMethodArgs(ref, parent?, methodName?); private parseValueArg(arg); parseValueJSON(tagText: string): any; private parseValue(tagText); private resolveInterfacePropertyAsField(ref, parent, isInput?, methodName?); private resolveInterfaceType(ref, isInput?); resolveFields(ref: TypeDocRef, isInput?: boolean): any; private resolveClassType(ref, checkExtendObjectType?); private resolveEnumerationType(ref); private resolveType(ref, isInput?); private resolveMethod(ref, methodName); getCustomTypes(): any; hasCustomType(name: string): boolean; getCustomType(name: string): GraphQLNamedType; getTypes(): GraphQLNamedType[]; hasType(name: string): boolean; getType(name: string): GraphQLNamedType; private getExportResolveFields(path, name); private getResolveFields(path, name); private getRootType(name, path, extra?); getQueryType(): GraphQLObjectType; getMutationType(): void | GraphQLObjectType; getSubscriptionType(): void | GraphQLObjectType; getSchemaConfig(): any; getSchema(): GraphQLSchema; }