UNPKG

@n1ru4l/socket-io-graphql-server

Version:

[![npm version](https://img.shields.io/npm/v/@n1ru4l/socket-io-graphql-server.svg)](https://www.npmjs.com/package/@n1ru4l/socket-io-graphql-server) [![npm downloads](https://img.shields.io/npm/dm/@n1ru4l/socket-io-graphql-server.svg)](https://www.npmjs.co

54 lines (53 loc) 2.38 kB
import { subscribe as defaultSubscribe, validateSchema as defaultValidateSchema, validate as defaultValidate, parse as defaultParse, GraphQLSchema, ExecutionResult, ExecutionArgs, DocumentNode, ValidationRule } from "graphql"; import type { Server as IOServer, Socket as IOSocket } from "socket.io"; export declare type PromiseOrPlain<T> = T | Promise<T>; declare type DocumentSourceString = string; declare type MaybeDocumentNode = Record<string, unknown> | DocumentNode; export declare type ExecuteFunction = (args: ExecutionArgs) => PromiseOrPlain<AsyncIterableIterator<ExecutionResult> | ExecutionResult>; export declare type GetParameterFunctionParameter = { socket: IOSocket; graphQLPayload: { source: DocumentSourceString | MaybeDocumentNode; variableValues: { [key: string]: any; } | null; operationName: string | null; /** Additional extensions that can be used for authentication tokens etc. */ extensions: { [key: string]: any; } | null; }; }; export declare type GetParameterFunction = (parameter: GetParameterFunctionParameter) => PromiseOrPlain<{ graphQLExecutionParameter: { schema: GraphQLSchema; contextValue?: unknown; rootValue?: unknown; source?: DocumentSourceString | DocumentNode; variableValues?: { [key: string]: any; } | null; operationName?: string; }; execute?: ExecuteFunction; subscribe?: typeof defaultSubscribe; parse?: typeof defaultParse; validateSchema?: typeof defaultValidateSchema; validate?: typeof defaultValidate; validationRules?: ValidationRule[]; }>; export declare type DecodeErrorHandler = (error: Error) => void; export declare type RegisterSocketIOGraphQLServerParameter = { socketServer: IOServer; getParameter: GetParameterFunction; onMessageDecodeError?: DecodeErrorHandler; isLazy?: boolean; }; export declare type UnsubscribeHandler = () => void; export declare type SocketIOGraphQLServer = { registerSocket: (socket: IOSocket) => UnsubscribeHandler; disposeSocket: (socket: IOSocket) => void; destroy: () => void; }; export declare const registerSocketIOGraphQLServer: ({ socketServer, getParameter, onMessageDecodeError, isLazy, }: RegisterSocketIOGraphQLServerParameter) => SocketIOGraphQLServer; export {};