UNPKG

@txstate-mws/graphql-server

Version:

A simple graphql server designed to work with typegraphql.

80 lines (79 loc) 2.77 kB
import Server, { type FastifyTxStateOptions } from 'fastify-txstate'; import { type GraphQLError } from 'graphql'; import { type BuildSchemaOptions } from 'type-graphql'; import { Context, MockContext } from './context'; interface PlaygroundSettings { 'general.betaUpdates'?: boolean; 'editor.cursorShape'?: 'line' | 'block' | 'underline'; 'editor.theme'?: 'dark' | 'light'; 'editor.reuseHeaders'?: boolean; 'tracing.hideTracingResponse'?: boolean; 'tracing.tracingSupported'?: boolean; 'editor.fontSize'?: number; 'editor.fontFamily'?: string; 'request.credentials'?: string; 'request.globalHeaders'?: Record<string, string>; 'schema.polling.enable'?: boolean; 'schema.polling.endpointFilter'?: string; 'schema.polling.interval'?: number; } export interface GQLStartOpts<CustomContext extends typeof MockContext = typeof Context> extends BuildSchemaOptions { port?: number; gqlEndpoint?: string | string[]; playgroundEndpoint?: string | false; playgroundSettings?: PlaygroundSettings; voyagerEndpoint?: string | false; customContext?: CustomContext; send401?: boolean; federated?: boolean; introspection?: boolean; requireSignedQueries?: boolean; signedQueriesWhitelist?: Set<string>; after?: (queryTime: number, operationName: string, query: string, auth: any, variables: any, data: any, errors: GraphQLError[] | undefined, ctx: InstanceType<CustomContext>) => void | Promise<void>; send403?: (ctx: InstanceType<CustomContext>) => boolean | Promise<boolean>; } export interface GQLRequest { Body: { operationName: string; query: string; variables?: object; extensions?: { persistedQuery?: { version: number; sha256Hash: string; }; querySignature: string; }; }; } export declare const gqlDevLogger: { info: (msg: any) => void; level: string; error: { (...data: any[]): void; (message?: any, ...optionalParams: any[]): void; }; debug: { (...data: any[]): void; (message?: any, ...optionalParams: any[]): void; }; fatal: { (...data: any[]): void; (message?: any, ...optionalParams: any[]): void; }; warn: { (...data: any[]): void; (message?: any, ...optionalParams: any[]): void; }; trace: { (...data: any[]): void; (message?: any, ...optionalParams: any[]): void; }; silent: (msg: any) => void; child(bindings: any, options?: any): any; }; export declare class GQLServer extends Server { constructor(config?: FastifyTxStateOptions); start(options?: number | GQLStartOpts): Promise<void>; } export {};