@epztickets/common 1.7.0 → 1.9.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.
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { JetStreamClient, JsMsg } from "nats";
|
|
2
|
+
import { Subjects } from "./subjects";
|
|
2
3
|
interface Event {
|
|
3
|
-
subject:
|
|
4
|
+
subject: Subjects;
|
|
4
5
|
data: any;
|
|
5
6
|
}
|
|
6
7
|
export declare abstract class JetStreamListener<T extends Event> {
|
|
7
8
|
abstract subject: T["subject"];
|
|
8
9
|
abstract durableName: string;
|
|
9
|
-
abstract
|
|
10
|
-
protected ackWait: number;
|
|
10
|
+
abstract queueGroup: string;
|
|
11
11
|
protected js: JetStreamClient;
|
|
12
12
|
constructor(js: JetStreamClient);
|
|
13
|
-
abstract onMessage(data: T["data"], msg: JsMsg): void | Promise<void>;
|
|
14
13
|
listen(): Promise<void>;
|
|
14
|
+
abstract onMessage(data: T["data"], msg: JsMsg): void;
|
|
15
15
|
}
|
|
16
16
|
export {};
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
// src/events/jetstream-listener.ts
|
|
3
|
+
// import { JsMsg, JetStreamClient, consumerOpts } from "nats";
|
|
2
4
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
5
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
6
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -17,46 +19,77 @@ var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
|
17
19
|
};
|
|
18
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
21
|
exports.JetStreamListener = void 0;
|
|
20
|
-
//
|
|
22
|
+
// interface Event {
|
|
23
|
+
// subject: string;
|
|
24
|
+
// data: any;
|
|
25
|
+
// }
|
|
26
|
+
// export abstract class JetStreamListener<T extends Event> {
|
|
27
|
+
// abstract subject: T["subject"];
|
|
28
|
+
// abstract durableName: string;
|
|
29
|
+
// abstract streamName: string; // The JetStream stream
|
|
30
|
+
// protected ackWait = 5 * 1000;
|
|
31
|
+
// protected js: JetStreamClient;
|
|
32
|
+
// constructor(js: JetStreamClient) {
|
|
33
|
+
// this.js = js;
|
|
34
|
+
// }
|
|
35
|
+
// abstract onMessage(data: T["data"], msg: JsMsg): void | Promise<void>;
|
|
36
|
+
// async listen() {
|
|
37
|
+
// const opts = consumerOpts();
|
|
38
|
+
// opts.durable(this.durableName);
|
|
39
|
+
// opts.manualAck();
|
|
40
|
+
// opts.ackWait(this.ackWait);
|
|
41
|
+
// opts.deliverAll();
|
|
42
|
+
// const sub = await this.js.subscribe(this.subject, opts);
|
|
43
|
+
// console.log(`Listening for JetStream messages on subject: ${this.subject}`);
|
|
44
|
+
// (async () => {
|
|
45
|
+
// for await (const msg of sub) {
|
|
46
|
+
// try {
|
|
47
|
+
// const parsedData = JSON.parse(msg.data.toString());
|
|
48
|
+
// await this.onMessage(parsedData, msg);
|
|
49
|
+
// } catch (err) {
|
|
50
|
+
// console.error("Error handling JetStream message:", err);
|
|
51
|
+
// }
|
|
52
|
+
// }
|
|
53
|
+
// })();
|
|
54
|
+
// }
|
|
55
|
+
// }
|
|
21
56
|
const nats_1 = require("nats");
|
|
22
57
|
class JetStreamListener {
|
|
23
58
|
constructor(js) {
|
|
24
|
-
this.ackWait = 5 * 1000;
|
|
25
59
|
this.js = js;
|
|
26
60
|
}
|
|
27
61
|
listen() {
|
|
28
62
|
return __awaiter(this, void 0, void 0, function* () {
|
|
63
|
+
var _a, e_1, _b, _c;
|
|
29
64
|
const opts = (0, nats_1.consumerOpts)();
|
|
30
65
|
opts.durable(this.durableName);
|
|
31
66
|
opts.manualAck();
|
|
32
|
-
opts.
|
|
33
|
-
opts.
|
|
67
|
+
opts.ackExplicit();
|
|
68
|
+
opts.deliverTo(`${this.queueGroup}.${this.durableName}`); // optional but safe
|
|
69
|
+
opts.filterSubject(this.subject);
|
|
34
70
|
const sub = yield this.js.subscribe(this.subject, opts);
|
|
35
|
-
console.log(`Listening for
|
|
36
|
-
|
|
37
|
-
var
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
_d = false;
|
|
42
|
-
const msg = _c;
|
|
43
|
-
try {
|
|
44
|
-
const parsedData = JSON.parse(msg.data.toString());
|
|
45
|
-
yield this.onMessage(parsedData, msg);
|
|
46
|
-
}
|
|
47
|
-
catch (err) {
|
|
48
|
-
console.error("Error handling JetStream message:", err);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
53
|
-
finally {
|
|
71
|
+
console.log(`Listening for ${this.subject} with durable ${this.durableName}`);
|
|
72
|
+
try {
|
|
73
|
+
for (var _d = true, sub_1 = __asyncValues(sub), sub_1_1; sub_1_1 = yield sub_1.next(), _a = sub_1_1.done, !_a; _d = true) {
|
|
74
|
+
_c = sub_1_1.value;
|
|
75
|
+
_d = false;
|
|
76
|
+
const msg = _c;
|
|
54
77
|
try {
|
|
55
|
-
|
|
78
|
+
const data = JSON.parse(msg.data.toString());
|
|
79
|
+
yield this.onMessage(data, msg);
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
console.error("Listener error", err);
|
|
56
83
|
}
|
|
57
|
-
finally { if (e_1) throw e_1.error; }
|
|
58
84
|
}
|
|
59
|
-
}
|
|
85
|
+
}
|
|
86
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
87
|
+
finally {
|
|
88
|
+
try {
|
|
89
|
+
if (!_d && !_a && (_b = sub_1.return)) yield _b.call(sub_1);
|
|
90
|
+
}
|
|
91
|
+
finally { if (e_1) throw e_1.error; }
|
|
92
|
+
}
|
|
60
93
|
});
|
|
61
94
|
}
|
|
62
95
|
}
|
package/build/index.d.ts
CHANGED
package/build/index.js
CHANGED
|
@@ -37,3 +37,4 @@ __exportStar(require("./events/expiration-complete-event"), exports);
|
|
|
37
37
|
__exportStar(require("./events/payment-created-event"), exports);
|
|
38
38
|
__exportStar(require("./events/jetstream-listener"), exports);
|
|
39
39
|
__exportStar(require("./events/jetstream-publisher"), exports);
|
|
40
|
+
__exportStar(require("./nats/ensure-streams"), exports);
|