@interopio/gateway-server
Version:
[](https://www.npmjs.com/package/@interopio/gateway-server)
22 lines (19 loc) • 725 B
TypeScript
import type {WebSocket} from 'ws';
import type {ReadonlyHttpHeaders, HttpCookie} from './http';
import type {Principal} from '../auth';
import type {AddressInfo} from 'node:net';
type WebSocketHandshakeInfo = {
readonly url: URL;
readonly protocol?: string;
// request headers for server and response headers for client
readonly headers: ReadonlyHttpHeaders;
readonly cookies: ReadonlyArray<HttpCookie>;
principal<P extends Principal>(): Promise<P | undefined>;
readonly remoteAddress?: AddressInfo;
readonly logPrefix?: string;
}
type WebSocketSession = {
socket: WebSocket;
handshake: WebSocketHandshakeInfo;
};
type WebSocketHandler = (session: WebSocketSession) => Promise<void>