Core
WebSocketSessionLike
Minimal WebSocket session surface that interceptors see.
@defjs/core · Type
Signature
interface WebSocketSessionLike extends AsyncDisposable { readonly bufferedAmount: number; readonly connection: { extensions?: string; generation: number; protocol?: string; url?: string; }; readonly closed: Promise<WebSocketCloseInfo>; readonly receive: AsyncIterable<unknown>; readonly state: WebSocketState; close(code?: number, reason?: string): void; [Symbol.asyncDispose](): PromiseLike<void>; onRuntimeError(listener: (error: unknown) => void): () => void; onStateChange(listener: (state: WebSocketState) => void): () => void; send(message: unknown): void; }
Structurally compatible with WebSocketSession without importing that
type, which avoids a circular dependency between interceptors and WebSocket.
Messages are typed unknown.
A wrapper or short-circuit session must forward the same
[Symbol.asyncDispose]() teardown as its close / closed lifecycle;
returning an unrelated resolved promise is not sufficient. Requiring this
member is a compile-time breaking change for structural implementations. Code
that only accepts sessions returned by Defjs has no additional runtime call
requirement.
Members
Prop
Type
bufferedAmount numberconnection { extensions?: string; generation: number; protocol?: string; url?: string; }closed Promise<WebSocketCloseInfo>receive AsyncIterable<unknown>state WebSocketStateclose (code?: number, reason?: string) => void[Symbol.asyncDispose] () => PromiseLike<void>onRuntimeError (listener: (error: unknown) => void) => () => voidonStateChange (listener: (state: WebSocketState) => void) => () => voidsend (message: unknown) => void