@txstate-mws/graphql-server
Version:
A simple graphql server designed to work with typegraphql.
80 lines (79 loc) • 2.77 kB
TypeScript
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 {};