Skip to main content
Version: v8.0.0

Listener

Represents a socket message listener bound to a specific topic. Use it to subscribe to typed messages from WebSocket or Server-Sent Events connections via the socket adapter.

Response is the raw message type, Delivered is what listen callbacks receive. They differ only when a delivery strategy changes the shape (e.g. batch delivers Response[] ).


Import
import { Listener } from "@hyper-fetch/sockets"

Parameters​

class Listener<Response, Topic, Socket, HasParams, Delivered> {
constructor(socket: Socket, listenerOptions: ListenerOptionsType<Topic, ExtractSocketAdapterType<Socket>, Response>) {};
topic: Topic;
socket: Socket;
params: ParamsType;
options: ExtractAdapterListenerOptionsType<ExtractSocketAdapterType<Socket>>;
listenerOptions: ListenerOptionsType<Topic, ExtractSocketAdapterType<Socket>>;
delivery: ListenerDeliveryType<any, ExtractSocketAdapterType<Socket>>;
listen() => ListenType<Listener<Response, Topic, Socket, HasParams, Delivered>, Socket>;
clone<NewHasParams, NewDelivered>(options?: ListenerConfigurationType<ExtractUrlParams<Topic>, Topic, Socket, Response>) => Listener<Response, Topic, Socket, NewHasParams, NewDelivered>;
setDelivery<NewDelivery>(delivery: NewDelivery) => Listener<Response, Topic, Socket, HasParams, ResolveDeliveredType<Response, NewDelivery>>;
setOptions(options: ExtractAdapterListenerOptionsType<ExtractSocketAdapterType<Socket>>) => Listener<Response, Topic, Socket, HasParams, Delivered>;
setParams(params: ExtractUrlParams<Topic>) => Listener<Response, Topic, Socket, true, Delivered>;
}
Parameters
NameTypeDescription
socket
Socket
listenerOptions
ListenerOptionsType<Topic, ExtractSocketAdapterType<Socket>, Response>

Properties​

delivery​

How messages reach listen callbacks. Typed with any input on purpose - it keeps Response

covariant so partial ListenerInstance&lt;{ response: ... }&gt; constraints keep matching wider listeners.

Type
ListenerDeliveryType<any, ExtractSocketAdapterType<Socket>>

listenerOptions​

Stored with an any response for the same covariance reason as delivery .

Type
ListenerOptionsType<Topic, ExtractSocketAdapterType<Socket>>

options​

Type
ExtractAdapterListenerOptionsType<ExtractSocketAdapterType<Socket>>

params​

Type
ParamsType

socket​

Type
Socket

topic​

Type
Topic

Methods​

clone()​

Create a new listener instance with optional configuration overrides.

Preview
clone<NewHasParams, NewDelivered>(options: ListenerConfigurationType<ExtractUrlParams<Topic>, Topic, Socket, Response>)
Parameters
Parameters
NameTypeDescription
options
ListenerConfigurationType<ExtractUrlParams<Topic>, Topic, Socket, Response>
Returns
Listener<Response, Topic, Socket, NewHasParams, NewDelivered>

setDelivery()​

Set how messages are delivered to listen callbacks - a latest / batch preset or a custom strategy. Pass undefined to restore immediate delivery. Returns a clone; the callback data type follows the strategy.

Preview
setDelivery<NewDelivery>(delivery: NewDelivery)
Parameters
Parameters
NameTypeDescription
delivery
NewDelivery
Returns
Listener<Response, Topic, Socket, HasParams, ResolveDeliveredType<Response, NewDelivery>>

setOptions()​

Set adapter-specific listener options.

Preview
setOptions(options: ExtractAdapterListenerOptionsType<ExtractSocketAdapterType<Socket>>)
Parameters
Parameters
NameTypeDescription
options
ExtractAdapterListenerOptionsType<ExtractSocketAdapterType<Socket>>
Returns
Listener<Response, Topic, Socket, HasParams, Delivered>

setParams()​

Set the URL path parameters for the topic (e.g., :channelId ).

Preview
setParams(params: ExtractUrlParams<Topic>)
Parameters
Parameters
NameTypeDescription
params
ExtractUrlParams<Topic>
Returns
Listener<Response, Topic, Socket, true, Delivered>