JetstreamClient
@horizon-republic/nestjs-jetstream
@horizon-republic/nestjs-jetstream / JetstreamClient
JetstreamClient
Defined in: src/client/jetstream.client.ts:132
NestJS ClientProxy implementation for the JetStream transport.
Supports two operational modes:
- Core mode (default): Uses
nc.request()for RPC. - JetStream mode: Uses
js.publish()for RPC commands + inbox for responses.
Events always publish through JetStream and await a PubAck, in either mode.
Events always go through JetStream publish for guaranteed delivery. The mode only affects RPC (request/reply) behavior.
Clients are lightweight: they share the NATS connection from forRoot().
Extends
ClientProxy
Constructors
Constructor
new JetstreamClient(
rootOptions,targetServiceName,connection,codec,eventBus,names?,targetPrefixes?):JetstreamClient
Defined in: src/client/jetstream.client.ts:171
Parameters
rootOptions
targetServiceName
string
connection
ConnectionProvider
codec
eventBus
EventBus
names?
NameResolver
targetPrefixes?
Returns
JetstreamClient
Overrides
ClientProxy.constructor
Methods
cancelSchedule()
cancelSchedule(
id):Promise<void>
Defined in: src/client/jetstream.client.ts:246
Cancel a schedule created with schedule; nothing happens when it does not exist.
Parameters
id
string
Returns
Promise<void>
close()
close():
Promise<void>
Defined in: src/client/jetstream.client.ts:256
Clean up resources: reject pending RPCs, unsubscribe from status events.
Returns
Promise<void>
Overrides
ClientProxy.close
connect()
connect():
Promise<NatsConnection>
Defined in: src/client/jetstream.client.ts:209
Establish connection. Called automatically by NestJS on first use.
Sets up the JetStream RPC inbox (if in JetStream mode) and subscribes to connection status events for fail-fast disconnect handling.
Returns
Promise<NatsConnection>
The underlying NATS connection.
Overrides
ClientProxy.connect
dispatchEvent()
protecteddispatchEvent<T>(packet):Promise<T>
Defined in: src/client/jetstream.client.ts:286
Publish a fire-and-forget event to JetStream.
Events are published to either the workqueue stream or broadcast stream
depending on the subject prefix. When a schedule is present the message
is published to a _sch subject within the same stream, with the target
set to the original event subject.
Type Parameters
T
T = unknown
Parameters
packet
ReadPacket
Returns
Promise<T>
Overrides
ClientProxy.dispatchEvent
listSchedules()
listSchedules():
Promise<ScheduleInfo[]>
Defined in: src/client/jetstream.client.ts:251
Every schedule of the target service, declared by its handlers and created by clients.
Returns
Promise<ScheduleInfo[]>
publish()
protectedpublish(packet,callback): () =>void
Defined in: src/client/jetstream.client.ts:381
Publish an RPC command and register callback for response.
Core mode: uses nc.request() with timeout. JetStream mode: publishes to stream + waits for inbox response.
Parameters
packet
ReadPacket
callback
(p) => void
Returns
() => void
Overrides
ClientProxy.publish
schedule()
schedule(
id,pattern,data,spec):Promise<ScheduleChange>
Defined in: src/client/jetstream.client.ts:236
Create or replace a schedule on the target service. Its ticks go to the
target's handler for pattern, which declares schedule in its extras.
An unchanged schedule is left alone, so an interval keeps its phase.
Parameters
id
string
One subject token naming the schedule, unique within the target.
pattern
string
data
unknown
spec
Returns
Promise<ScheduleChange>
Throws
JetstreamScheduleError for an invalid id, pattern or spec, or a server too old for it.
unwrap()
unwrap<
T>():T
Defined in: src/client/jetstream.client.ts:268
Direct access to the raw NATS connection.
Type Parameters
T
T = NatsConnection
Returns
T
Throws
Error if not connected.
Overrides
ClientProxy.unwrap