@horizon-republic/nestjs-jetstream 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -3
- package/dist/client/jetstream.client.d.ts +4 -0
- package/dist/client/jetstream.client.d.ts.map +1 -1
- package/dist/client/jetstream.client.js +49 -18
- package/dist/client/jetstream.client.js.map +1 -1
- package/dist/hooks/event-bus.d.ts.map +1 -1
- package/dist/hooks/event-bus.js +5 -0
- package/dist/hooks/event-bus.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces/hooks.interface.d.ts +26 -1
- package/dist/interfaces/hooks.interface.d.ts.map +1 -1
- package/dist/interfaces/hooks.interface.js +1 -0
- package/dist/interfaces/hooks.interface.js.map +1 -1
- package/dist/interfaces/index.d.ts +1 -1
- package/dist/interfaces/index.d.ts.map +1 -1
- package/dist/interfaces/options.interface.d.ts +24 -0
- package/dist/interfaces/options.interface.d.ts.map +1 -1
- package/dist/jetstream.module.d.ts +6 -0
- package/dist/jetstream.module.d.ts.map +1 -1
- package/dist/jetstream.module.js +20 -1
- package/dist/jetstream.module.js.map +1 -1
- package/dist/server/routing/event.router.d.ts +19 -3
- package/dist/server/routing/event.router.d.ts.map +1 -1
- package/dist/server/routing/event.router.js +42 -2
- package/dist/server/routing/event.router.js.map +1 -1
- package/dist/server/routing/index.d.ts +1 -0
- package/dist/server/routing/index.d.ts.map +1 -1
- package/dist/server/routing/index.js.map +1 -1
- package/dist/utils/unwrap-result.d.ts +8 -4
- package/dist/utils/unwrap-result.d.ts.map +1 -1
- package/dist/utils/unwrap-result.js +34 -22
- package/dist/utils/unwrap-result.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -252,6 +252,9 @@ interface JetstreamModuleOptions {
|
|
|
252
252
|
/** Transport lifecycle hook handlers. Unset hooks fall back to NestJS Logger. */
|
|
253
253
|
hooks?: Partial<TransportHooks>;
|
|
254
254
|
|
|
255
|
+
/** Async callback for dead letter handling. See Dead Letter Queue section below. */
|
|
256
|
+
onDeadLetter?: (info: DeadLetterInfo) => Promise<void>;
|
|
257
|
+
|
|
255
258
|
/**
|
|
256
259
|
* Graceful shutdown timeout in ms.
|
|
257
260
|
* @default 10_000
|
|
@@ -610,6 +613,53 @@ JetstreamModule.forRoot({
|
|
|
610
613
|
| `messageRouted` | `(subject: string, kind: 'rpc' \| 'event')` | `Logger.debug` |
|
|
611
614
|
| `shutdownStart` | `()` | `Logger.log` |
|
|
612
615
|
| `shutdownComplete` | `()` | `Logger.log` |
|
|
616
|
+
| `deadLetter` | `(info: DeadLetterInfo)` | `Logger.warn` |
|
|
617
|
+
|
|
618
|
+
### Dead Letter Queue (DLQ)
|
|
619
|
+
|
|
620
|
+
When an event handler fails on every delivery attempt (`max_deliver`), the message becomes a "dead letter." By default, NATS terminates it silently. Configure `onDeadLetter` to intercept these messages:
|
|
621
|
+
|
|
622
|
+
```typescript
|
|
623
|
+
JetstreamModule.forRoot({
|
|
624
|
+
name: 'my-service',
|
|
625
|
+
servers: ['nats://localhost:4222'],
|
|
626
|
+
onDeadLetter: async (info) => {
|
|
627
|
+
// Persist to your DLQ store (database, S3, another queue, etc.)
|
|
628
|
+
await dlqRepository.save({
|
|
629
|
+
subject: info.subject,
|
|
630
|
+
data: info.data,
|
|
631
|
+
error: String(info.error),
|
|
632
|
+
deliveryCount: info.deliveryCount,
|
|
633
|
+
stream: info.stream,
|
|
634
|
+
timestamp: info.timestamp,
|
|
635
|
+
});
|
|
636
|
+
},
|
|
637
|
+
});
|
|
638
|
+
```
|
|
639
|
+
|
|
640
|
+
**Behavior:**
|
|
641
|
+
- Hook is awaited before `msg.term()` — if it succeeds, the message is terminated
|
|
642
|
+
- If the hook throws, the message is `nak()`'d for retry (NATS redelivers it)
|
|
643
|
+
- `TransportEvent.DeadLetter` is emitted for observability regardless of the hook
|
|
644
|
+
- Applies only to events (workqueue + broadcast), not RPC
|
|
645
|
+
|
|
646
|
+
**With dependency injection (`forRootAsync`):**
|
|
647
|
+
|
|
648
|
+
```typescript
|
|
649
|
+
import { JETSTREAM_CONNECTION } from '@horizon-republic/nestjs-jetstream';
|
|
650
|
+
|
|
651
|
+
JetstreamModule.forRootAsync({
|
|
652
|
+
name: 'my-service',
|
|
653
|
+
imports: [DlqModule],
|
|
654
|
+
inject: [DlqService, JETSTREAM_CONNECTION],
|
|
655
|
+
useFactory: (dlqService: DlqService, connection: ConnectionProvider) => ({
|
|
656
|
+
servers: ['nats://localhost:4222'],
|
|
657
|
+
onDeadLetter: async (info) => {
|
|
658
|
+
await dlqService.persist(info);
|
|
659
|
+
},
|
|
660
|
+
}),
|
|
661
|
+
});
|
|
662
|
+
```
|
|
613
663
|
|
|
614
664
|
## Health Checks
|
|
615
665
|
|
|
@@ -646,9 +696,9 @@ const status = await this.jetstream.check();
|
|
|
646
696
|
// { connected: true, server: 'nats://localhost:4222', latency: 2 }
|
|
647
697
|
```
|
|
648
698
|
|
|
649
|
-
| Method
|
|
650
|
-
|
|
651
|
-
| `check()`
|
|
699
|
+
| Method | Returns | Throws |
|
|
700
|
+
|-------------------|------------------------------------|------------------------------------|
|
|
701
|
+
| `check()` | `JetstreamHealthStatus` | Never |
|
|
652
702
|
| `isHealthy(key?)` | `{ [key]: { status: 'up', ... } }` | On unhealthy (Terminus convention) |
|
|
653
703
|
|
|
654
704
|
## Graceful Shutdown
|
|
@@ -891,6 +941,7 @@ nanos
|
|
|
891
941
|
|
|
892
942
|
// Types
|
|
893
943
|
Codec
|
|
944
|
+
DeadLetterInfo
|
|
894
945
|
JetstreamModuleOptions
|
|
895
946
|
JetstreamModuleAsyncOptions
|
|
896
947
|
JetstreamFeatureOptions
|
|
@@ -30,6 +30,8 @@ export declare class JetstreamClient extends ClientProxy {
|
|
|
30
30
|
private readonly pendingMessages;
|
|
31
31
|
/** Pending JetStream-mode RPC timeouts, keyed by correlation ID. */
|
|
32
32
|
private readonly pendingTimeouts;
|
|
33
|
+
/** Subscription to connection status events for disconnect handling. */
|
|
34
|
+
private statusSubscription;
|
|
33
35
|
constructor(rootOptions: JetstreamModuleOptions, targetServiceName: string, connection: ConnectionProvider, codec: Codec, eventBus: EventBus);
|
|
34
36
|
/** Establish connection. Called automatically by NestJS on first use. */
|
|
35
37
|
connect(): Promise<NatsConnection>;
|
|
@@ -55,6 +57,8 @@ export declare class JetstreamClient extends ClientProxy {
|
|
|
55
57
|
private publishCoreRpc;
|
|
56
58
|
/** JetStream mode: publish to stream + wait for inbox response. */
|
|
57
59
|
private publishJetStreamRpc;
|
|
60
|
+
/** Fail-fast all pending JetStream RPC callbacks on connection loss. */
|
|
61
|
+
private handleDisconnect;
|
|
58
62
|
/** Setup shared inbox subscription for JetStream RPC responses. */
|
|
59
63
|
private setupInbox;
|
|
60
64
|
/** Route an inbox reply to the matching pending callback. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jetstream.client.d.ts","sourceRoot":"","sources":["../../src/client/jetstream.client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,
|
|
1
|
+
{"version":3,"file":"jetstream.client.d.ts","sourceRoot":"","sources":["../../src/client/jetstream.client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAML,cAAc,EAEf,MAAM,MAAM,CAAC;AAGd,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,OAAO,KAAK,EACV,KAAK,EAEL,sBAAsB,EAEvB,MAAM,eAAe,CAAC;AAYvB;;;;;;;;;;;GAWG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAoB5C,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAvB3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;IAEzD,yDAAyD;IACzD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC,qDAAqD;IACrD,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,iBAAiB,CAA6B;IAEtD,qEAAqE;IACrE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA+C;IAE/E,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoD;IAEpF,wEAAwE;IACxE,OAAO,CAAC,kBAAkB,CAA+B;gBAGtC,WAAW,EAAE,sBAAsB,EACpD,iBAAiB,EAAE,MAAM,EACR,UAAU,EAAE,kBAAkB,EAC9B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ;IAMrC,yEAAyE;IAC5D,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;IAkB/C,0BAA0B;IACb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBnC,gDAAgD;IAChC,MAAM,CAAC,CAAC,GAAG,cAAc,KAAK,CAAC;IAI/C;;;;;OAKG;cACa,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC;IAkB1E;;;;;OAKG;IACH,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,GAAG,MAAM,IAAI;IA0CrF,4CAA4C;YAC9B,cAAc;IAmC5B,mEAAmE;YACrD,mBAAmB;IAwDjC,wEAAwE;IACxE,OAAO,CAAC,gBAAgB;IAsBxB,mEAAmE;IACnE,OAAO,CAAC,UAAU;IAiBlB,6DAA6D;IAC7D,OAAO,CAAC,eAAe;IAyCvB,oDAAoD;IACpD,OAAO,CAAC,iBAAiB;IAWzB,wEAAwE;IACxE,OAAO,CAAC,YAAY;IA6BpB,kFAAkF;IAClF,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,aAAa;CAStB"}
|
|
@@ -34,6 +34,8 @@ class JetstreamClient extends microservices_1.ClientProxy {
|
|
|
34
34
|
this.pendingMessages = new Map();
|
|
35
35
|
/** Pending JetStream-mode RPC timeouts, keyed by correlation ID. */
|
|
36
36
|
this.pendingTimeouts = new Map();
|
|
37
|
+
/** Subscription to connection status events for disconnect handling. */
|
|
38
|
+
this.statusSubscription = null;
|
|
37
39
|
this.targetName = targetServiceName;
|
|
38
40
|
}
|
|
39
41
|
/** Establish connection. Called automatically by NestJS on first use. */
|
|
@@ -43,17 +45,30 @@ class JetstreamClient extends microservices_1.ClientProxy {
|
|
|
43
45
|
if (this.isJetStreamRpcMode() && !this.inboxSubscription) {
|
|
44
46
|
this.setupInbox(nc);
|
|
45
47
|
}
|
|
48
|
+
// Subscribe to disconnect events (once)
|
|
49
|
+
this.statusSubscription ??= this.connection.status$.subscribe((status) => {
|
|
50
|
+
if (status.type === nats_1.Events.Disconnect) {
|
|
51
|
+
this.handleDisconnect();
|
|
52
|
+
}
|
|
53
|
+
});
|
|
46
54
|
return nc;
|
|
47
55
|
}
|
|
48
56
|
/** Clean up resources. */
|
|
49
57
|
async close() {
|
|
50
|
-
this.
|
|
51
|
-
this.
|
|
58
|
+
this.statusSubscription?.unsubscribe();
|
|
59
|
+
this.statusSubscription = null;
|
|
60
|
+
// Reject all pending JetStream RPC callbacks before clearing
|
|
61
|
+
const error = new Error('Client closed');
|
|
62
|
+
for (const callback of this.pendingMessages.values()) {
|
|
63
|
+
callback({ err: error, response: null, isDisposed: true });
|
|
64
|
+
}
|
|
52
65
|
for (const timeoutId of this.pendingTimeouts.values()) {
|
|
53
66
|
clearTimeout(timeoutId);
|
|
54
67
|
}
|
|
55
|
-
this.pendingTimeouts.clear();
|
|
56
68
|
this.pendingMessages.clear();
|
|
69
|
+
this.pendingTimeouts.clear();
|
|
70
|
+
this.inboxSubscription?.unsubscribe();
|
|
71
|
+
this.inboxSubscription = null;
|
|
57
72
|
}
|
|
58
73
|
/** Direct access to the raw NATS connection. */
|
|
59
74
|
unwrap() {
|
|
@@ -89,7 +104,7 @@ class JetstreamClient extends microservices_1.ClientProxy {
|
|
|
89
104
|
const { data, hdrs, timeout } = this.extractRecordData(packet.data);
|
|
90
105
|
const onUnhandled = (err) => {
|
|
91
106
|
this.logger.error('Unhandled publish error:', err);
|
|
92
|
-
callback({ err: 'Internal transport error', response: null, isDisposed: true });
|
|
107
|
+
callback({ err: new Error('Internal transport error'), response: null, isDisposed: true });
|
|
93
108
|
};
|
|
94
109
|
// Track correlation ID for cleanup in JetStream mode
|
|
95
110
|
let jetStreamCorrelationId = null;
|
|
@@ -133,13 +148,10 @@ class JetstreamClient extends microservices_1.ClientProxy {
|
|
|
133
148
|
}
|
|
134
149
|
}
|
|
135
150
|
catch (err) {
|
|
151
|
+
const error = err instanceof Error ? err : new Error('Unknown error');
|
|
136
152
|
this.logger.error(`Core RPC error (${subject}):`, err);
|
|
137
|
-
this.eventBus.emit(interfaces_1.TransportEvent.Error,
|
|
138
|
-
callback({
|
|
139
|
-
err: err instanceof Error ? err.message : 'Unknown error',
|
|
140
|
-
response: null,
|
|
141
|
-
isDisposed: true,
|
|
142
|
-
});
|
|
153
|
+
this.eventBus.emit(interfaces_1.TransportEvent.Error, error, 'client-rpc');
|
|
154
|
+
callback({ err: error, response: null, isDisposed: true });
|
|
143
155
|
}
|
|
144
156
|
}
|
|
145
157
|
/** JetStream mode: publish to stream + wait for inbox response. */
|
|
@@ -148,11 +160,13 @@ class JetstreamClient extends microservices_1.ClientProxy {
|
|
|
148
160
|
const effectiveTimeout = timeout ?? this.getRpcTimeout();
|
|
149
161
|
this.pendingMessages.set(correlationId, callback);
|
|
150
162
|
const timeoutId = setTimeout(() => {
|
|
163
|
+
if (!this.pendingMessages.has(correlationId))
|
|
164
|
+
return;
|
|
151
165
|
this.pendingTimeouts.delete(correlationId);
|
|
152
166
|
this.pendingMessages.delete(correlationId);
|
|
153
167
|
this.logger.error(`JetStream RPC timeout (${effectiveTimeout}ms): ${subject}`);
|
|
154
168
|
this.eventBus.emit(interfaces_1.TransportEvent.RpcTimeout, subject, correlationId);
|
|
155
|
-
callback({ err: 'RPC timeout', response: null, isDisposed: true });
|
|
169
|
+
callback({ err: new Error('RPC timeout'), response: null, isDisposed: true });
|
|
156
170
|
}, effectiveTimeout);
|
|
157
171
|
this.pendingTimeouts.set(correlationId, timeoutId);
|
|
158
172
|
try {
|
|
@@ -173,14 +187,31 @@ class JetstreamClient extends microservices_1.ClientProxy {
|
|
|
173
187
|
catch (err) {
|
|
174
188
|
clearTimeout(timeoutId);
|
|
175
189
|
this.pendingTimeouts.delete(correlationId);
|
|
176
|
-
this.
|
|
177
|
-
|
|
178
|
-
err: err instanceof Error ? err.message : 'Unknown error',
|
|
179
|
-
response: null,
|
|
180
|
-
isDisposed: true,
|
|
181
|
-
});
|
|
190
|
+
if (!this.pendingMessages.has(correlationId))
|
|
191
|
+
return;
|
|
182
192
|
this.pendingMessages.delete(correlationId);
|
|
193
|
+
const error = err instanceof Error ? err : new Error('Unknown error');
|
|
194
|
+
this.logger.error(`JetStream RPC publish error (${subject}):`, err);
|
|
195
|
+
callback({ err: error, response: null, isDisposed: true });
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
/** Fail-fast all pending JetStream RPC callbacks on connection loss. */
|
|
199
|
+
handleDisconnect() {
|
|
200
|
+
const error = new Error('Connection lost');
|
|
201
|
+
// Reject all pending callbacks
|
|
202
|
+
for (const callback of this.pendingMessages.values()) {
|
|
203
|
+
callback({ err: error, response: null, isDisposed: true });
|
|
204
|
+
}
|
|
205
|
+
// Clear timeouts
|
|
206
|
+
for (const timeoutId of this.pendingTimeouts.values()) {
|
|
207
|
+
clearTimeout(timeoutId);
|
|
183
208
|
}
|
|
209
|
+
this.pendingMessages.clear();
|
|
210
|
+
this.pendingTimeouts.clear();
|
|
211
|
+
// Reset inbox — will be recreated on next connect()
|
|
212
|
+
this.inboxSubscription?.unsubscribe();
|
|
213
|
+
this.inboxSubscription = null;
|
|
214
|
+
this.inbox = null;
|
|
184
215
|
}
|
|
185
216
|
/** Setup shared inbox subscription for JetStream RPC responses. */
|
|
186
217
|
setupInbox(nc) {
|
|
@@ -224,7 +255,7 @@ class JetstreamClient extends microservices_1.ClientProxy {
|
|
|
224
255
|
}
|
|
225
256
|
catch (err) {
|
|
226
257
|
callback({
|
|
227
|
-
err: err instanceof Error ? err
|
|
258
|
+
err: err instanceof Error ? err : new Error('Decode error'),
|
|
228
259
|
response: null,
|
|
229
260
|
isDisposed: true,
|
|
230
261
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jetstream.client.js","sourceRoot":"","sources":["../../src/client/jetstream.client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jetstream.client.js","sourceRoot":"","sources":["../../src/client/jetstream.client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/hooks/event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEb,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAKlE,4EAA4E;IACrE,IAAI,CAAC,CAAC,SAAS,MAAM,cAAc,EACxC,KAAK,EAAE,CAAC,EACR,GAAG,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GACrC,IAAI;IAkBP,yDAAyD;IACzD,OAAO,CAAC,cAAc;
|
|
1
|
+
{"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/hooks/event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEb,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAKlE,4EAA4E;IACrE,IAAI,CAAC,CAAC,SAAS,MAAM,cAAc,EACxC,KAAK,EAAE,CAAC,EACR,GAAG,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GACrC,IAAI;IAkBP,yDAAyD;IACzD,OAAO,CAAC,cAAc;CAmCvB"}
|
package/dist/hooks/event-bus.js
CHANGED
|
@@ -67,6 +67,11 @@ class EventBus {
|
|
|
67
67
|
case interfaces_1.TransportEvent.ShutdownComplete:
|
|
68
68
|
this.logger.log('Graceful shutdown complete');
|
|
69
69
|
break;
|
|
70
|
+
case interfaces_1.TransportEvent.DeadLetter: {
|
|
71
|
+
const info = args[0];
|
|
72
|
+
this.logger.warn(`Dead letter: ${info?.subject ?? 'unknown'}`);
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
70
75
|
}
|
|
71
76
|
}
|
|
72
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../src/hooks/event-bus.ts"],"names":[],"mappings":";;;AAEA,8CAA+C;AAG/C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAa,QAAQ;IAInB,YAAmB,MAAc,EAAE,KAA+B;QAChE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,4EAA4E;IACrE,IAAI,CACT,KAAQ,EACR,GAAG,IAAmC;QAEtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE/B,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC;gBACF,IAAkC,CAAC,GAAG,IAAI,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,SAAS,KAAK,qBAAqB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAC9E,CAAC;YACJ,CAAC;YAED,OAAO;QACT,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,yDAAyD;IACjD,cAAc,CAAC,KAA2B,EAAE,IAAe;QACjE,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,2BAAc,CAAC,OAAO;gBACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjD,MAAM;YACR,KAAK,2BAAc,CAAC,UAAU;gBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACzC,MAAM;YACR,KAAK,2BAAc,CAAC,SAAS;gBAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,2BAAc,CAAC,KAAK;gBACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAChE,MAAM;YACR,KAAK,2BAAc,CAAC,UAAU;gBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC9D,MAAM;YACR,KAAK,2BAAc,CAAC,aAAa;gBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC7D,MAAM;YACR,KAAK,2BAAc,CAAC,aAAa;gBAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;gBAC/C,MAAM;YACR,KAAK,2BAAc,CAAC,gBAAgB;gBAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;gBAC9C,MAAM;
|
|
1
|
+
{"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../src/hooks/event-bus.ts"],"names":[],"mappings":";;;AAEA,8CAA+C;AAG/C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAa,QAAQ;IAInB,YAAmB,MAAc,EAAE,KAA+B;QAChE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,4EAA4E;IACrE,IAAI,CACT,KAAQ,EACR,GAAG,IAAmC;QAEtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE/B,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC;gBACF,IAAkC,CAAC,GAAG,IAAI,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,SAAS,KAAK,qBAAqB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAC9E,CAAC;YACJ,CAAC;YAED,OAAO;QACT,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,yDAAyD;IACjD,cAAc,CAAC,KAA2B,EAAE,IAAe;QACjE,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,2BAAc,CAAC,OAAO;gBACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjD,MAAM;YACR,KAAK,2BAAc,CAAC,UAAU;gBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACzC,MAAM;YACR,KAAK,2BAAc,CAAC,SAAS;gBAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,2BAAc,CAAC,KAAK;gBACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAChE,MAAM;YACR,KAAK,2BAAc,CAAC,UAAU;gBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC9D,MAAM;YACR,KAAK,2BAAc,CAAC,aAAa;gBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC7D,MAAM;YACR,KAAK,2BAAc,CAAC,aAAa;gBAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;gBAC/C,MAAM;YACR,KAAK,2BAAc,CAAC,gBAAgB;gBAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;gBAC9C,MAAM;YAER,KAAK,2BAAc,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAqC,CAAC;gBAEzD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC;gBAC/D,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAnED,4BAmEC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { JetstreamModule } from './jetstream.module';
|
|
2
2
|
export { TransportEvent } from './interfaces';
|
|
3
|
-
export type { Codec, JetstreamFeatureOptions, JetstreamModuleAsyncOptions, JetstreamModuleOptions, RpcConfig, StreamConsumerOverrides, TransportHooks, } from './interfaces';
|
|
3
|
+
export type { Codec, DeadLetterInfo, JetstreamFeatureOptions, JetstreamModuleAsyncOptions, JetstreamModuleOptions, RpcConfig, StreamConsumerOverrides, TransportHooks, } from './interfaces';
|
|
4
4
|
export { JetstreamClient } from './client';
|
|
5
5
|
export { JetstreamRecord, JetstreamRecordBuilder } from './client';
|
|
6
6
|
export { JsonCodec } from './codec';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,YAAY,EACV,KAAK,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,sBAAsB,EACtB,SAAS,EACT,uBAAuB,EACvB,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGnE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAEpD,YAAY,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGtD,OAAO,EACL,cAAc,EACd,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,GACN,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,YAAY,EACV,KAAK,EACL,cAAc,EACd,uBAAuB,EACvB,2BAA2B,EAC3B,sBAAsB,EACtB,SAAS,EACT,uBAAuB,EACvB,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGnE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAEpD,YAAY,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGtD,OAAO,EACL,cAAc,EACd,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,GACN,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,SAAS;AACT,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAExB,aAAa;AACb,2CAA8C;AAArC,4GAAA,cAAc,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,SAAS;AACT,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAExB,aAAa;AACb,2CAA8C;AAArC,4GAAA,cAAc,OAAA;AAavB,SAAS;AACT,mCAA2C;AAAlC,yGAAA,eAAe,OAAA;AAExB,mCAAmE;AAA1D,yGAAA,eAAe,OAAA;AAAE,gHAAA,sBAAsB,OAAA;AAEhD,QAAQ;AACR,iCAAoC;AAA3B,kGAAA,SAAS,OAAA;AAElB,UAAU;AACV,qCAAuC;AAA9B,qGAAA,UAAU,OAAA;AAEnB,SAAS;AACT,mCAAoD;AAA3C,kHAAA,wBAAwB,OAAA;AAIjC,+CAA+C;AAC/C,6DAQ+B;AAP7B,qHAAA,cAAc,OAAA;AACd,sHAAA,eAAe,OAAA;AACf,sHAAA,eAAe,OAAA;AACf,2HAAA,oBAAoB,OAAA;AACpB,0HAAA,mBAAmB,OAAA;AACnB,wHAAA,iBAAiB,OAAA;AACjB,4GAAA,KAAK,OAAA;AAGP,QAAQ;AACR,iCAAmC;AAA1B,iGAAA,QAAQ,OAAA;AAEjB,kCAAkC;AAClC,mCAA6C;AAApC,2GAAA,iBAAiB,OAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { MsgHdrs } from 'nats';
|
|
1
2
|
export declare enum TransportEvent {
|
|
2
3
|
Connect = "connect",
|
|
3
4
|
Disconnect = "disconnect",
|
|
@@ -6,7 +7,8 @@ export declare enum TransportEvent {
|
|
|
6
7
|
RpcTimeout = "rpcTimeout",
|
|
7
8
|
MessageRouted = "messageRouted",
|
|
8
9
|
ShutdownStart = "shutdownStart",
|
|
9
|
-
ShutdownComplete = "shutdownComplete"
|
|
10
|
+
ShutdownComplete = "shutdownComplete",
|
|
11
|
+
DeadLetter = "deadLetter"
|
|
10
12
|
}
|
|
11
13
|
/**
|
|
12
14
|
* Hook callbacks for transport lifecycle and operational events.
|
|
@@ -42,5 +44,28 @@ export interface TransportHooks {
|
|
|
42
44
|
[TransportEvent.ShutdownStart](): void;
|
|
43
45
|
/** Fired after graceful shutdown completes. */
|
|
44
46
|
[TransportEvent.ShutdownComplete](): void;
|
|
47
|
+
/** Fired when a message exhausts all delivery attempts (dead letter). */
|
|
48
|
+
[TransportEvent.DeadLetter](info: DeadLetterInfo): void;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Context passed to the onDeadLetter callback when a message exhausts all delivery attempts.
|
|
52
|
+
*/
|
|
53
|
+
export interface DeadLetterInfo {
|
|
54
|
+
/** The NATS subject the message was published to. */
|
|
55
|
+
subject: string;
|
|
56
|
+
/** Decoded message payload. */
|
|
57
|
+
data: unknown;
|
|
58
|
+
/** Message headers (raw NATS MsgHdrs). */
|
|
59
|
+
headers: MsgHdrs | undefined;
|
|
60
|
+
/** The error that caused the last handler failure. */
|
|
61
|
+
error: unknown;
|
|
62
|
+
/** How many times this message was delivered. */
|
|
63
|
+
deliveryCount: number;
|
|
64
|
+
/** The stream this message belongs to. */
|
|
65
|
+
stream: string;
|
|
66
|
+
/** The stream sequence number. */
|
|
67
|
+
streamSequence: number;
|
|
68
|
+
/** ISO timestamp of the message (derived from msg.info.timestampNanos). */
|
|
69
|
+
timestamp: string;
|
|
45
70
|
}
|
|
46
71
|
//# sourceMappingURL=hooks.interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/hooks.interface.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,gBAAgB,qBAAqB;
|
|
1
|
+
{"version":3,"file":"hooks.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/hooks.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,gBAAgB,qBAAqB;IACrC,UAAU,eAAe;CAC1B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,cAAc;IAC7B,iDAAiD;IACjD,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/C,0CAA0C;IAC1C,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;IAEpC,uEAAuE;IACvE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjD,0CAA0C;IAC1C,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7D,qDAAqD;IACrD,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1E,mEAAmE;IACnE,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC;IAE7E,4DAA4D;IAC5D,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;IAEvC,+CAA+C;IAC/C,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC;IAE1C,yEAAyE;IACzE,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;CACzD;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,0CAA0C;IAC1C,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,sDAAsD;IACtD,KAAK,EAAE,OAAO,CAAC;IACf,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -11,5 +11,6 @@ var TransportEvent;
|
|
|
11
11
|
TransportEvent["MessageRouted"] = "messageRouted";
|
|
12
12
|
TransportEvent["ShutdownStart"] = "shutdownStart";
|
|
13
13
|
TransportEvent["ShutdownComplete"] = "shutdownComplete";
|
|
14
|
+
TransportEvent["DeadLetter"] = "deadLetter";
|
|
14
15
|
})(TransportEvent || (exports.TransportEvent = TransportEvent = {}));
|
|
15
16
|
//# sourceMappingURL=hooks.interface.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.interface.js","sourceRoot":"","sources":["../../src/interfaces/hooks.interface.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"hooks.interface.js","sourceRoot":"","sources":["../../src/interfaces/hooks.interface.ts"],"names":[],"mappings":";;;AAEA,IAAY,cAUX;AAVD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,2CAAyB,CAAA;IACzB,yCAAuB,CAAA;IACvB,iCAAe,CAAA;IACf,2CAAyB,CAAA;IACzB,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,uDAAqC,CAAA;IACrC,2CAAyB,CAAA;AAC3B,CAAC,EAVW,cAAc,8BAAd,cAAc,QAUzB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type { Codec } from './codec.interface';
|
|
2
2
|
export { TransportEvent } from './hooks.interface';
|
|
3
|
-
export type { TransportHooks } from './hooks.interface';
|
|
3
|
+
export type { DeadLetterInfo, TransportHooks } from './hooks.interface';
|
|
4
4
|
export type { JetstreamFeatureOptions, JetstreamModuleAsyncOptions, JetstreamModuleOptions, RpcConfig, StreamConsumerOverrides, } from './options.interface';
|
|
5
5
|
export type { StreamKind, SubjectKind } from './stream.interface';
|
|
6
6
|
export type { TransportHeaderOptions, ExtractedRecordData } from './client.interface';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExE,YAAY,EACV,uBAAuB,EACvB,2BAA2B,EAC3B,sBAAsB,EACtB,SAAS,EACT,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAElE,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEtF,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { FactoryProvider, ModuleMetadata, Type } from '@nestjs/common';
|
|
2
2
|
import { ConnectionOptions, ConsumerConfig, StreamConfig } from 'nats';
|
|
3
3
|
import { Codec } from './codec.interface';
|
|
4
|
+
import type { DeadLetterInfo } from './hooks.interface';
|
|
4
5
|
import { TransportHooks } from './hooks.interface';
|
|
5
6
|
/**
|
|
6
7
|
* RPC transport configuration.
|
|
@@ -66,6 +67,29 @@ export interface JetstreamModuleOptions {
|
|
|
66
67
|
* Unset hooks fall back to NestJS Logger.
|
|
67
68
|
*/
|
|
68
69
|
hooks?: Partial<TransportHooks>;
|
|
70
|
+
/**
|
|
71
|
+
* Async callback invoked when an event message exhausts all delivery attempts.
|
|
72
|
+
* Called before msg.term(). If it throws, the message is nak'd for retry.
|
|
73
|
+
*
|
|
74
|
+
* Use this to persist dead letters to an external store (DB, S3, another queue).
|
|
75
|
+
* The NATS connection is available via `JETSTREAM_CONNECTION` token in forRootAsync.
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```typescript
|
|
79
|
+
* JetstreamModule.forRootAsync({
|
|
80
|
+
* name: 'my-service',
|
|
81
|
+
* imports: [DlqModule],
|
|
82
|
+
* inject: [DlqService, JETSTREAM_CONNECTION],
|
|
83
|
+
* useFactory: (dlqService, connection) => ({
|
|
84
|
+
* servers: ['nats://localhost:4222'],
|
|
85
|
+
* onDeadLetter: async (info) => {
|
|
86
|
+
* await dlqService.persist(info);
|
|
87
|
+
* },
|
|
88
|
+
* }),
|
|
89
|
+
* })
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
onDeadLetter?(info: DeadLetterInfo): Promise<void>;
|
|
69
93
|
/**
|
|
70
94
|
* Graceful shutdown timeout in ms.
|
|
71
95
|
* Handlers exceeding this are abandoned.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/options.interface.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"options.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/options.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,6 +70,12 @@ export declare class JetstreamModule implements OnApplicationShutdown {
|
|
|
70
70
|
*/
|
|
71
71
|
static forFeature(options: JetstreamFeatureOptions): DynamicModule;
|
|
72
72
|
/** Create all providers for synchronous forRoot(). */
|
|
73
|
+
/**
|
|
74
|
+
* Build a map of stream name -> max_deliver for dead letter detection.
|
|
75
|
+
* Each stream kind (ev, broadcast) has its own consumer config with potentially
|
|
76
|
+
* different max_deliver values.
|
|
77
|
+
*/
|
|
78
|
+
private static buildMaxDeliverMap;
|
|
73
79
|
private static createCoreProviders;
|
|
74
80
|
/** Create providers that depend on JETSTREAM_OPTIONS (shared by sync and async). */
|
|
75
81
|
private static createCoreDependentProviders;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jetstream.module.d.ts","sourceRoot":"","sources":["../src/jetstream.module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAKb,qBAAqB,EAGtB,MAAM,gBAAgB,CAAC;AAOxB,OAAO,KAAK,EAEV,uBAAuB,EACvB,2BAA2B,EAC3B,sBAAsB,EACvB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"jetstream.module.d.ts","sourceRoot":"","sources":["../src/jetstream.module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAKb,qBAAqB,EAGtB,MAAM,gBAAgB,CAAC;AAOxB,OAAO,KAAK,EAEV,uBAAuB,EACvB,2BAA2B,EAC3B,sBAAsB,EACvB,MAAM,cAAc,CAAC;AAgBtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAEa,eAAgB,YAAW,qBAAqB;IAIzD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IACM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBADhD,eAAe,CAAC,EAAE,eAAe,YAAA,EACM,QAAQ,CAAC,GAAE,iBAAiB,GAAG,IAAI,aAAA;IAO7F;;;;;;;;OAQG;WACW,OAAO,CAAC,OAAO,EAAE,sBAAsB,GAAG,aAAa;IAuBrE;;;;;;;;OAQG;WACW,YAAY,CAAC,YAAY,EAAE,2BAA2B,GAAG,aAAa;IAyBpF;;;;;;;;OAQG;WACW,UAAU,CAAC,OAAO,EAAE,uBAAuB,GAAG,aAAa;IA6BzE,sDAAsD;IACtD;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAkBjC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAUlC,oFAAoF;IACpF,OAAO,CAAC,MAAM,CAAC,4BAA4B;IA8P3C,0EAA0E;IAC1E,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAkDzC;;OAEG;IACU,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;CAKpD"}
|
package/dist/jetstream.module.js
CHANGED
|
@@ -156,6 +156,19 @@ let JetstreamModule = JetstreamModule_1 = class JetstreamModule {
|
|
|
156
156
|
// Provider factories
|
|
157
157
|
// -------------------------------------------------------------------
|
|
158
158
|
/** Create all providers for synchronous forRoot(). */
|
|
159
|
+
/**
|
|
160
|
+
* Build a map of stream name -> max_deliver for dead letter detection.
|
|
161
|
+
* Each stream kind (ev, broadcast) has its own consumer config with potentially
|
|
162
|
+
* different max_deliver values.
|
|
163
|
+
*/
|
|
164
|
+
static buildMaxDeliverMap(options) {
|
|
165
|
+
const map = new Map();
|
|
166
|
+
const defaultEventMax = jetstream_constants_1.DEFAULT_EVENT_CONSUMER_CONFIG.max_deliver ?? 3;
|
|
167
|
+
const defaultBroadcastMax = jetstream_constants_1.DEFAULT_BROADCAST_CONSUMER_CONFIG.max_deliver ?? 3;
|
|
168
|
+
map.set((0, jetstream_constants_1.streamName)(options.name, 'ev'), options.events?.consumer?.max_deliver ?? defaultEventMax);
|
|
169
|
+
map.set((0, jetstream_constants_1.streamName)(options.name, 'broadcast'), options.broadcast?.consumer?.max_deliver ?? defaultBroadcastMax);
|
|
170
|
+
return map;
|
|
171
|
+
}
|
|
159
172
|
static createCoreProviders(options) {
|
|
160
173
|
return [
|
|
161
174
|
{
|
|
@@ -266,7 +279,13 @@ let JetstreamModule = JetstreamModule_1 = class JetstreamModule {
|
|
|
266
279
|
useFactory: (options, messageProvider, patternRegistry, codec, eventBus) => {
|
|
267
280
|
if (options.consumer === false)
|
|
268
281
|
return null;
|
|
269
|
-
|
|
282
|
+
const deadLetterConfig = options.onDeadLetter
|
|
283
|
+
? {
|
|
284
|
+
maxDeliverByStream: JetstreamModule_1.buildMaxDeliverMap(options),
|
|
285
|
+
onDeadLetter: options.onDeadLetter,
|
|
286
|
+
}
|
|
287
|
+
: undefined;
|
|
288
|
+
return new routing_1.EventRouter(messageProvider, patternRegistry, codec, eventBus, deadLetterConfig);
|
|
270
289
|
},
|
|
271
290
|
},
|
|
272
291
|
// RpcRouter — routes RPC command messages in JetStream mode
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jetstream.module.js","sourceRoot":"","sources":["../src/jetstream.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CASwB;AAExB,qCAA2C;AAC3C,mCAAoC;AACpC,6CAAkD;AAClD,mCAAmC;AACnC,qCAAoD;AAOpD,+
|
|
1
|
+
{"version":3,"file":"jetstream.module.js","sourceRoot":"","sources":["../src/jetstream.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import { EventBus } from '../../hooks';
|
|
2
|
-
import type { Codec } from '../../interfaces';
|
|
2
|
+
import type { Codec, DeadLetterInfo } from '../../interfaces';
|
|
3
3
|
import { MessageProvider } from '../infrastructure/message.provider';
|
|
4
4
|
import { PatternRegistry } from './pattern-registry';
|
|
5
|
+
/** Options for dead letter queue handling. */
|
|
6
|
+
export interface DeadLetterConfig {
|
|
7
|
+
/**
|
|
8
|
+
* Map of stream name -> max_deliver value.
|
|
9
|
+
* Used to detect when a message from a given stream has exhausted all delivery attempts.
|
|
10
|
+
*/
|
|
11
|
+
maxDeliverByStream: Map<string, number>;
|
|
12
|
+
/** Async callback invoked when a message exhausts all deliveries. */
|
|
13
|
+
onDeadLetter(info: DeadLetterInfo): Promise<void>;
|
|
14
|
+
}
|
|
5
15
|
/**
|
|
6
16
|
* Routes incoming event messages (workqueue and broadcast) to NestJS handlers.
|
|
7
17
|
*
|
|
@@ -9,6 +19,7 @@ import { PatternRegistry } from './pattern-registry';
|
|
|
9
19
|
* - Handler executes first
|
|
10
20
|
* - Success -> ack (message consumed)
|
|
11
21
|
* - Handler error -> nak (NATS redelivers, up to `max_deliver` times)
|
|
22
|
+
* - Dead letter (max_deliver reached) -> onDeadLetter hook -> term or nak
|
|
12
23
|
* - Decode error -> term (no retry for malformed payloads)
|
|
13
24
|
* - No handler found -> term (configuration error)
|
|
14
25
|
*
|
|
@@ -23,9 +34,10 @@ export declare class EventRouter {
|
|
|
23
34
|
private readonly patternRegistry;
|
|
24
35
|
private readonly codec;
|
|
25
36
|
private readonly eventBus;
|
|
37
|
+
private readonly deadLetterConfig?;
|
|
26
38
|
private readonly logger;
|
|
27
39
|
private readonly subscriptions;
|
|
28
|
-
constructor(messageProvider: MessageProvider, patternRegistry: PatternRegistry, codec: Codec, eventBus: EventBus);
|
|
40
|
+
constructor(messageProvider: MessageProvider, patternRegistry: PatternRegistry, codec: Codec, eventBus: EventBus, deadLetterConfig?: DeadLetterConfig | undefined);
|
|
29
41
|
/** Start routing event and broadcast messages to handlers. */
|
|
30
42
|
start(): void;
|
|
31
43
|
/** Stop routing and unsubscribe from all streams. */
|
|
@@ -34,7 +46,11 @@ export declare class EventRouter {
|
|
|
34
46
|
private subscribeToStream;
|
|
35
47
|
/** Handle a single event message: decode -> execute handler -> ack/nak. */
|
|
36
48
|
private handle;
|
|
37
|
-
/** Execute handler, then ack on success or nak on failure. */
|
|
49
|
+
/** Execute handler, then ack on success or nak/dead-letter on failure. */
|
|
38
50
|
private executeHandler;
|
|
51
|
+
/** Check if the message has exhausted all delivery attempts. */
|
|
52
|
+
private isDeadLetter;
|
|
53
|
+
/** Handle a dead letter: invoke callback, then term or nak based on result. */
|
|
54
|
+
private handleDeadLetter;
|
|
39
55
|
}
|
|
40
56
|
//# sourceMappingURL=event.router.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.router.d.ts","sourceRoot":"","sources":["../../../src/server/routing/event.router.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"event.router.d.ts","sourceRoot":"","sources":["../../../src/server/routing/event.router.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,8CAA8C;AAC9C,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,qEAAqE;IACrE,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,WAAW;IAKpB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IARpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;gBAGjC,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,EAChC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,CAAC,EAAE,gBAAgB,YAAA;IAGtD,8DAA8D;IACvD,KAAK,IAAI,IAAI;IAKpB,qDAAqD;IAC9C,OAAO,IAAI,IAAI;IAQtB,4DAA4D;IAC5D,OAAO,CAAC,iBAAiB;IAczB,2EAA2E;IAC3E,OAAO,CAAC,MAAM;IA0Bd,0EAA0E;YAC5D,cAAc;IAyB5B,gEAAgE;IAChE,OAAO,CAAC,YAAY;IAUpB,+EAA+E;YACjE,gBAAgB;CAwB/B"}
|
|
@@ -12,6 +12,7 @@ const interfaces_1 = require("../../interfaces");
|
|
|
12
12
|
* - Handler executes first
|
|
13
13
|
* - Success -> ack (message consumed)
|
|
14
14
|
* - Handler error -> nak (NATS redelivers, up to `max_deliver` times)
|
|
15
|
+
* - Dead letter (max_deliver reached) -> onDeadLetter hook -> term or nak
|
|
15
16
|
* - Decode error -> term (no retry for malformed payloads)
|
|
16
17
|
* - No handler found -> term (configuration error)
|
|
17
18
|
*
|
|
@@ -22,11 +23,12 @@ const interfaces_1 = require("../../interfaces");
|
|
|
22
23
|
* Handlers must be idempotent — NATS may redeliver on failure or timeout.
|
|
23
24
|
*/
|
|
24
25
|
class EventRouter {
|
|
25
|
-
constructor(messageProvider, patternRegistry, codec, eventBus) {
|
|
26
|
+
constructor(messageProvider, patternRegistry, codec, eventBus, deadLetterConfig) {
|
|
26
27
|
this.messageProvider = messageProvider;
|
|
27
28
|
this.patternRegistry = patternRegistry;
|
|
28
29
|
this.codec = codec;
|
|
29
30
|
this.eventBus = eventBus;
|
|
31
|
+
this.deadLetterConfig = deadLetterConfig;
|
|
30
32
|
this.logger = new common_1.Logger('Jetstream:EventRouter');
|
|
31
33
|
this.subscriptions = [];
|
|
32
34
|
}
|
|
@@ -73,7 +75,7 @@ class EventRouter {
|
|
|
73
75
|
const ctx = new context_1.RpcContext([msg]);
|
|
74
76
|
return (0, rxjs_1.from)(this.executeHandler(handler, data, ctx, msg));
|
|
75
77
|
}
|
|
76
|
-
/** Execute handler, then ack on success or nak on failure. */
|
|
78
|
+
/** Execute handler, then ack on success or nak/dead-letter on failure. */
|
|
77
79
|
async executeHandler(handler, data, ctx, msg) {
|
|
78
80
|
try {
|
|
79
81
|
const result = await handler(data, ctx);
|
|
@@ -84,6 +86,44 @@ class EventRouter {
|
|
|
84
86
|
}
|
|
85
87
|
catch (err) {
|
|
86
88
|
this.logger.error(`Event handler error (${msg.subject}):`, err);
|
|
89
|
+
if (this.isDeadLetter(msg)) {
|
|
90
|
+
await this.handleDeadLetter(msg, data, err);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
msg.nak();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/** Check if the message has exhausted all delivery attempts. */
|
|
98
|
+
isDeadLetter(msg) {
|
|
99
|
+
if (!this.deadLetterConfig)
|
|
100
|
+
return false;
|
|
101
|
+
const maxDeliver = this.deadLetterConfig.maxDeliverByStream.get(msg.info.stream);
|
|
102
|
+
if (maxDeliver === undefined)
|
|
103
|
+
return false;
|
|
104
|
+
return msg.info.deliveryCount >= maxDeliver;
|
|
105
|
+
}
|
|
106
|
+
/** Handle a dead letter: invoke callback, then term or nak based on result. */
|
|
107
|
+
async handleDeadLetter(msg, data, error) {
|
|
108
|
+
const info = {
|
|
109
|
+
subject: msg.subject,
|
|
110
|
+
data,
|
|
111
|
+
headers: msg.headers,
|
|
112
|
+
error,
|
|
113
|
+
deliveryCount: msg.info.deliveryCount,
|
|
114
|
+
stream: msg.info.stream,
|
|
115
|
+
streamSequence: msg.info.streamSequence,
|
|
116
|
+
timestamp: new Date(msg.info.timestampNanos / 1_000_000).toISOString(),
|
|
117
|
+
};
|
|
118
|
+
this.eventBus.emit(interfaces_1.TransportEvent.DeadLetter, info);
|
|
119
|
+
if (!this.deadLetterConfig)
|
|
120
|
+
return;
|
|
121
|
+
try {
|
|
122
|
+
await this.deadLetterConfig.onDeadLetter(info);
|
|
123
|
+
msg.term('Dead letter processed');
|
|
124
|
+
}
|
|
125
|
+
catch (hookErr) {
|
|
126
|
+
this.logger.error(`onDeadLetter callback failed for ${msg.subject}, nak for retry:`, hookErr);
|
|
87
127
|
msg.nak();
|
|
88
128
|
}
|
|
89
129
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.router.js","sourceRoot":"","sources":["../../../src/server/routing/event.router.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAExC,+BASc;AAEd,2CAA2C;AAE3C,iDAAkD;
|
|
1
|
+
{"version":3,"file":"event.router.js","sourceRoot":"","sources":["../../../src/server/routing/event.router.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/routing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/routing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/routing/index.ts"],"names":[],"mappings":";;;AAAA,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAExB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/routing/index.ts"],"names":[],"mappings":";;;AAAA,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAExB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAIpB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Unwrap a handler result that may be a Promise, Observable, or
|
|
2
|
+
* Unwrap a handler result that may be a Promise, Observable, or nested combination.
|
|
3
3
|
*
|
|
4
|
-
* -
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* NestJS-wrapped handlers may return Promise<Observable> (e.g. when exception
|
|
5
|
+
* filters convert errors to throwError() Observables). This function handles:
|
|
6
|
+
*
|
|
7
|
+
* - Observable → subscribe immediately (no await — preserves sync emissions)
|
|
8
|
+
* - Promise<Observable> → await Promise, then subscribe
|
|
9
|
+
* - Promise<value> → await
|
|
10
|
+
* - Plain value → return as-is
|
|
7
11
|
*
|
|
8
12
|
* Used by both CoreRpcServer and RpcRouter to normalize handler output.
|
|
9
13
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unwrap-result.d.ts","sourceRoot":"","sources":["../../src/utils/unwrap-result.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"unwrap-result.d.ts","sourceRoot":"","sources":["../../src/utils/unwrap-result.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,GAAU,QAAQ,OAAO,KAAG,OAAO,CAAC,OAAO,CAenE,CAAC"}
|
|
@@ -3,35 +3,47 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.unwrapResult = void 0;
|
|
4
4
|
const rxjs_1 = require("rxjs");
|
|
5
5
|
/**
|
|
6
|
-
* Unwrap a handler result that may be a Promise, Observable, or
|
|
6
|
+
* Unwrap a handler result that may be a Promise, Observable, or nested combination.
|
|
7
7
|
*
|
|
8
|
-
* -
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* NestJS-wrapped handlers may return Promise<Observable> (e.g. when exception
|
|
9
|
+
* filters convert errors to throwError() Observables). This function handles:
|
|
10
|
+
*
|
|
11
|
+
* - Observable → subscribe immediately (no await — preserves sync emissions)
|
|
12
|
+
* - Promise<Observable> → await Promise, then subscribe
|
|
13
|
+
* - Promise<value> → await
|
|
14
|
+
* - Plain value → return as-is
|
|
11
15
|
*
|
|
12
16
|
* Used by both CoreRpcServer and RpcRouter to normalize handler output.
|
|
13
17
|
*/
|
|
14
18
|
const unwrapResult = async (result) => {
|
|
15
|
-
//
|
|
19
|
+
// Direct Observable — subscribe immediately (no microtask yield)
|
|
16
20
|
if ((0, rxjs_1.isObservable)(result)) {
|
|
17
|
-
return
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
error: reject,
|
|
27
|
-
complete: () => {
|
|
28
|
-
if (!resolved)
|
|
29
|
-
resolve(undefined);
|
|
30
|
-
},
|
|
31
|
-
});
|
|
32
|
-
});
|
|
21
|
+
return subscribeToFirst(result);
|
|
22
|
+
}
|
|
23
|
+
// Await Promise, then check if it resolved to an Observable
|
|
24
|
+
// (NestJS-wrapped handlers return Promise<Observable> when exception filters fire)
|
|
25
|
+
const resolved = await result;
|
|
26
|
+
if ((0, rxjs_1.isObservable)(resolved)) {
|
|
27
|
+
return subscribeToFirst(resolved);
|
|
33
28
|
}
|
|
34
|
-
return
|
|
29
|
+
return resolved;
|
|
35
30
|
};
|
|
36
31
|
exports.unwrapResult = unwrapResult;
|
|
32
|
+
/** Subscribe to an Observable and resolve with its first emitted value. */
|
|
33
|
+
const subscribeToFirst = (obs) => new Promise((resolve, reject) => {
|
|
34
|
+
let done = false;
|
|
35
|
+
obs.subscribe({
|
|
36
|
+
next: (val) => {
|
|
37
|
+
if (!done) {
|
|
38
|
+
done = true;
|
|
39
|
+
resolve(val);
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
error: reject,
|
|
43
|
+
complete: () => {
|
|
44
|
+
if (!done)
|
|
45
|
+
resolve(undefined);
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
});
|
|
37
49
|
//# sourceMappingURL=unwrap-result.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unwrap-result.js","sourceRoot":"","sources":["../../src/utils/unwrap-result.ts"],"names":[],"mappings":";;;AAAA,+BAAgD;AAEhD
|
|
1
|
+
{"version":3,"file":"unwrap-result.js","sourceRoot":"","sources":["../../src/utils/unwrap-result.ts"],"names":[],"mappings":";;;AAAA,+BAAgD;AAEhD;;;;;;;;;;;;GAYG;AACI,MAAM,YAAY,GAAG,KAAK,EAAE,MAAe,EAAoB,EAAE;IACtE,iEAAiE;IACjE,IAAI,IAAA,mBAAY,EAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,gBAAgB,CAAC,MAA6B,CAAC,CAAC;IACzD,CAAC;IAED,4DAA4D;IAC5D,mFAAmF;IACnF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC;IAE9B,IAAI,IAAA,mBAAY,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,OAAO,gBAAgB,CAAC,QAA+B,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAfW,QAAA,YAAY,gBAevB;AAEF,2EAA2E;AAC3E,MAAM,gBAAgB,GAAG,CAAC,GAAwB,EAAoB,EAAE,CACtE,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC9B,IAAI,IAAI,GAAG,KAAK,CAAC;IAEjB,GAAG,CAAC,SAAS,CAAC;QACZ,IAAI,EAAE,CAAC,GAAY,EAAE,EAAE;YACrB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,GAAG,IAAI,CAAC;gBACZ,OAAO,CAAC,GAAG,CAAC,CAAC;YACf,CAAC;QACH,CAAC;QACD,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,GAAG,EAAE;YACb,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@horizon-republic/nestjs-jetstream",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "A NestJS transport for NATS with JetStream events, broadcast fan-out, and Core/JetStream RPC.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -79,6 +79,7 @@
|
|
|
79
79
|
"test": "jest",
|
|
80
80
|
"test:watch": "jest --watch",
|
|
81
81
|
"test:cov": "jest --coverage",
|
|
82
|
-
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand"
|
|
82
|
+
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
|
|
83
|
+
"test:integration": "jest --config jest.integration.config.ts --runInBand"
|
|
83
84
|
}
|
|
84
85
|
}
|