mercurius-integration-testing
Version:
[](https://badge.fury.io/js/mercurius-integration-testing) [](https://codecov.i
63 lines (62 loc) • 2.21 kB
TypeScript
import WebSocket from 'ws';
import type { IncomingHttpHeaders } from 'http';
type Operation = {
started: boolean;
options: {
query: string;
variables: Record<string, unknown>;
operationName: string | undefined | null;
};
handler: (data: unknown) => Promise<void>;
extensions?: {
type: string;
payload: unknown;
}[];
};
export declare class SubscriptionClient {
subscriptionQueryMap: Record<string, string>;
socket: WebSocket | null;
protocols: string[];
headers: IncomingHttpHeaders;
uri: string;
operationId: number;
ready: boolean;
operations: Map<string, Operation>;
operationsCount: Record<string | number, number>;
tryReconnect: boolean;
maxReconnectAttempts: number;
serviceName?: string;
reconnectAttempts: number;
connectionCallback?: Function;
failedConnectionCallback?: Function;
failedReconnectCallback?: Function;
connectionInitPayload?: unknown;
closedByUser?: boolean;
reconnecting?: boolean;
reconnectTimeoutId?: NodeJS.Timeout;
constructor(uri: string, config: {
protocols?: [];
reconnect?: boolean;
maxReconnectAttempts?: number;
serviceName?: string;
connectionCallback?: Function;
failedConnectionCallback?: Function;
failedReconnectCallback?: Function;
connectionInitPayload?: object;
headers?: IncomingHttpHeaders;
});
connect(): void;
close(tryReconnect?: boolean, closedByUser?: boolean): void;
getReconnectDelay(): number;
reconnect(): any;
unsubscribe(operationId: string | number, forceUnsubscribe?: boolean): void;
unsubscribeAll(): void;
sendMessage(operationId: number | string | null, type: string, payload?: unknown, extensions?: unknown): Promise<void>;
handleMessage(message: string): Promise<void>;
startOperation(operationId: string): Promise<void>;
createSubscription(query: string, variables: Record<string, unknown>, publish: (args: {
topic: string;
payload: any;
}) => void | Promise<void>, operationName?: string | null, connectionInit?: Record<string, any>): Promise<void>;
}
export {};