@the_pixelport/aws-lambda-graphql
Version:
Apollo server for AWS Lambda with WebSocket subscriptions support over API Gateway v1 + v2
52 lines • 1.71 kB
TypeScript
/// <reference types="node" />
export interface IConnection {
/**
* Unique connection id
*/
readonly id: string;
/**
* Extra connection data, this data is stored only upon registration
* All values should be JSON serializable
*/
readonly data: IConnectionData;
}
export interface IConnectionData {
[key: string]: any;
/**
* Connection context data provided from GQL_CONNECTION_INIT message or from onConnect method
* This data is passed to graphql resolvers' context
* All values should be JSON serializable
*/
context: Object;
/**
* Indicates whether connection sent GQL_CONNECTION_INIT message or
*/
readonly isInitialized: boolean;
}
export interface HydrateConnectionOptions {
/**
* How many times should we retry the connection query in case it fails for timing issues
*
* Default is 0
*/
retryCount?: number;
/**
* How long should we wait until we try determine connection state again?
*
* Default is 50ms
*/
timeout?: number;
}
export interface IConnectEvent {
connectionId: string;
endpoint: string;
}
export interface IConnectionManager {
hydrateConnection(connectionId: string, options?: HydrateConnectionOptions): Promise<IConnection>;
setConnectionData(data: Object, connection: IConnection): Promise<void>;
registerConnection(event: IConnectEvent): Promise<IConnection>;
sendToConnection(connection: IConnection, payload: string | Buffer): Promise<void>;
unregisterConnection(connection: IConnection): Promise<void>;
closeConnection(connection: IConnection): Promise<void>;
}
//# sourceMappingURL=connections.d.ts.map