JetstreamRecordBuilder<TData>
Defined in: src/client/jetstream.record.ts:41
Fluent builder for constructing JetstreamRecord instances.
Protected headers (correlation-id, reply-to, error) cannot be
set by the user — attempting to do so throws an error at build time.
Type Parameters
TData
TData = unknown
Constructors
Constructor
new JetstreamRecordBuilder<
TData>(data?):JetstreamRecordBuilder<TData>
Defined in: src/client/jetstream.record.ts:48
Parameters
data?
TData
Returns
JetstreamRecordBuilder<TData>
Methods
build()
build():
JetstreamRecord<TData>
Defined in: src/client/jetstream.record.ts:156
Build the immutable JetstreamRecord.
Returns
JetstreamRecord<TData>
A frozen record ready to pass to client.send() or client.emit().
scheduleAt()
scheduleAt(
date):this
Defined in: src/client/jetstream.record.ts:135
Schedule one-shot delayed delivery.
The message is held by NATS and delivered to the event consumer
at the specified time. Requires NATS >= 2.12 and allow_msg_schedules: true
on the event stream (via events: { stream: { allow_msg_schedules: true } }).
Only meaningful for events (client.emit()). If used with RPC
(client.send()), a warning is logged and the schedule is ignored.
Parameters
date
Date
Delivery time. Must be in the future.
Returns
this
Throws
Error if the date is not in the future.
setData()
setData(
data):this
Defined in: src/client/jetstream.record.ts:57
Set the message payload.
Parameters
data
TData
Payload to serialize via the configured Codec.
Returns
this
setHeader()
setHeader(
key,value):this
Defined in: src/client/jetstream.record.ts:69
Set a single custom header.
Parameters
key
string
Header name (e.g. 'x-tenant').
value
string
Header value.
Returns
this
Throws
Error if the header name is reserved by the transport.
setHeaders()
setHeaders(
headers):this
Defined in: src/client/jetstream.record.ts:81
Set multiple custom headers at once.
Parameters
headers
Record<string, string>
Key-value pairs to set as headers.
Returns
this
Throws
Error if any header name is reserved by the transport.
setMessageId()
setMessageId(
id):this
Defined in: src/client/jetstream.record.ts:107
Set a custom message ID for JetStream deduplication.
NATS JetStream uses this ID to detect duplicate publishes within the
stream's duplicate_window. If two messages with the same ID arrive
within the window, the second is silently dropped.
When not set, a random UUID is generated automatically.
Parameters
id
string
Unique message identifier (e.g. order ID, idempotency key).
Returns
this
Example
new JetstreamRecordBuilder(data)
.setMessageId(`order-${order.id}`)
.build();
setTimeout()
setTimeout(
ms):this
Defined in: src/client/jetstream.record.ts:117
Set per-request RPC timeout.
Parameters
ms
number
Timeout in milliseconds. Overrides the global RPC timeout for this request only.
Returns
this