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 { 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>;
}
| Name | Type | Description |
|---|---|---|
| socket | | |
| listenerOptions | |
Properties
delivery
How messages reach
listen
callbacks. Typed with
any
input on purpose - it keeps
Response
covariant so partial
ListenerInstance<{ response: ... }>
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>>
Methods
clone()
Create a new listener instance with optional configuration overrides.
Preview
clone<NewHasParams, NewDelivered>(options: ListenerConfigurationType<ExtractUrlParams<Topic>, Topic, Socket, Response>)
Parameters
| Name | Type | Description |
|---|---|---|
| options | |
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
| Name | Type | Description |
|---|---|---|
| delivery | |
Returns
Listener<Response, Topic, Socket, HasParams, ResolveDeliveredType<Response, NewDelivery>>
setOptions()
Set adapter-specific listener options.
Preview
setOptions(options: ExtractAdapterListenerOptionsType<ExtractSocketAdapterType<Socket>>)
Parameters
| Name | Type | Description |
|---|---|---|
| options | |
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
| Name | Type | Description |
|---|---|---|
| params | |
Returns
Listener<Response, Topic, Socket, true, Delivered>
