UNPKG

@interopio/gateway-server

Version:

[![npm version](https://img.shields.io/npm/v/@interopio/gateway-server.svg)](https://www.npmjs.com/package/@interopio/gateway-server)

22 lines (19 loc) 725 B
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>