@lakutata/nats 1.1.0 → 1.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/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.2.0](https://github.com/lakutata/lakutata-packages/compare/@lakutata/nats@1.1.0...@lakutata/nats@1.2.0) (2025-10-14)
7
+
8
+
9
+ ### Features
10
+
11
+ * **nats:** add iterator support for NATS subscriptions ([8877dc2](https://github.com/lakutata/lakutata-packages/commit/8877dc2b238a2f7e49bcef516ec452f5423df8f7))
12
+
13
+
14
+
15
+
16
+
6
17
  # 1.1.0 (2025-09-27)
7
18
 
8
19
 
@@ -1 +1 @@
1
- {"version":3,"file":"NATS.d.ts","sourceRoot":"","sources":["../../src/components/NATS.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EAET,uBAAuB,EAE1B,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAC,KAAK,KAAK,EAA6C,YAAY,EAAC,MAAM,MAAM,CAAA;AACxF,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAA;AAO1D,OAAO,EAAC,iBAAiB,EAAC,MAAM,iCAAiC,CAAA;AAGjE,eAAO,MAAM,sBAAsB,EAAE,uBAAuB,CAAC,iBAAiB,CAkB7E,CAAA;AAED,qBAAa,IAAK,SAAQ,SAAS;;IAC/B;;;OAGG;IAEH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAE7C;;;OAGG;IAKH,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IAExC;;;;OAIG;IAEH,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IAEnC;;;;OAIG;IAEH,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IAEjC;;;OAGG;IAEH,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IAEhC;;;OAGG;IAEH,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IAEhC;;;;OAIG;IAEH,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IAElC;;;;OAIG;IAEH,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAEtC;;;;;;OAMG;IAEH,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAEhD;;;;OAIG;IAEH,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IAEhC;;;;;OAKG;IAEH,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IAEnC;;;OAGG;IAEH,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAExC;;;;;OAKG;IAEH,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAExC;;;;;OAKG;IAEH,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAQtC;;;OAGG;cACa,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBrC;;;OAGG;cACa,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC;;;;OAIG;IACI,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI;IAInD;;;;;;;;;OASG;IACU,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA4BpF;;;;;;;OAOG;IACI,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,YAAY;CAYpI"}
1
+ {"version":3,"file":"NATS.d.ts","sourceRoot":"","sources":["../../src/components/NATS.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EAET,uBAAuB,EAE1B,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAC,KAAK,KAAK,EAA6C,YAAY,EAAC,MAAM,MAAM,CAAA;AACxF,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAA;AAO1D,OAAO,EAAC,iBAAiB,EAAC,MAAM,iCAAiC,CAAA;AAGjE,eAAO,MAAM,sBAAsB,EAAE,uBAAuB,CAAC,iBAAiB,CAkB7E,CAAA;AAED,qBAAa,IAAK,SAAQ,SAAS;;IAC/B;;;OAGG;IAEH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAE7C;;;OAGG;IAKH,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IAExC;;;;OAIG;IAEH,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IAEnC;;;;OAIG;IAEH,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IAEjC;;;OAGG;IAEH,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IAEhC;;;OAGG;IAEH,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IAEhC;;;;OAIG;IAEH,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IAElC;;;;OAIG;IAEH,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAEtC;;;;;;OAMG;IAEH,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAEhD;;;;OAIG;IAEH,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IAEhC;;;;;OAKG;IAEH,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IAEnC;;;OAGG;IAEH,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAExC;;;;;OAKG;IAEH,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAExC;;;;;OAKG;IAEH,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAQtC;;;OAGG;cACa,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBrC;;;OAGG;cACa,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC;;;;OAIG;IACI,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI;IAInD;;;;;;;;;OASG;IACU,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA4BpF;;;;;;;OAOG;IACI,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,YAAY;CAuBpI"}
@@ -130,17 +130,29 @@ class NATS extends lakutata_1.Component {
130
130
  * @param subscribeOptions
131
131
  */
132
132
  subscribe(subject, callback, subscribeOptions) {
133
- return this.#conn.subscribe(subject, {
133
+ const subscription = this.#conn.subscribe(subject, {
134
134
  queue: subscribeOptions?.queue,
135
- max: subscribeOptions?.max,
136
- callback: async (err, msg) => {
135
+ max: subscribeOptions?.max
136
+ });
137
+ if (subscribeOptions?.iterator) {
138
+ setImmediate(async () => {
139
+ for await (const msg of subscription) {
140
+ const data = this.codec.decode(msg.data);
141
+ const result = await callback(data);
142
+ msg.respond(this.codec.encode(result));
143
+ }
144
+ });
145
+ }
146
+ else {
147
+ subscription.callback = async (err, msg) => {
137
148
  if (err)
138
149
  this.emit('error', err);
139
150
  const data = this.codec.decode(msg.data);
140
151
  const result = await callback(data);
141
152
  msg.respond(this.codec.encode(result));
142
- }
143
- });
153
+ };
154
+ }
155
+ return subscription;
144
156
  }
145
157
  }
146
158
  exports.NATS = NATS;
@@ -14,6 +14,7 @@ const entrypoint_1 = require("lakutata/com/entrypoint");
14
14
  const di_1 = require("lakutata/decorator/di");
15
15
  const CommonExports_1 = require("../CommonExports");
16
16
  const ctrl_1 = require("lakutata/decorator/ctrl");
17
+ const helper_1 = require("lakutata/helper");
17
18
  class TestComponent extends lakutata_1.Component {
18
19
  async init() {
19
20
  // this.nats.subscribe('test-invoke', (msg) => {
@@ -29,6 +30,13 @@ class TestComponent extends lakutata_1.Component {
29
30
  // console.log('res:', await this.nats.request('test-invoke', JSON.stringify({haha: true})), 1000000)
30
31
  // }, 1)
31
32
  console.log(await this.nats.request(this.app.appId, { test: true }));
33
+ this.nats.subscribe('test', async (inp) => {
34
+ console.log(inp);
35
+ await (0, helper_1.Delay)(1000);
36
+ }, { iterator: true });
37
+ for (let i = 0; i < 1000; i++) {
38
+ this.nats.publish('test', i);
39
+ }
32
40
  }
33
41
  }
34
42
  __decorate([
@@ -1,5 +1,6 @@
1
1
  export type SubscribeOptions = {
2
2
  queue?: string;
3
3
  max?: number;
4
+ iterator?: boolean;
4
5
  };
5
6
  //# sourceMappingURL=SubscribeOptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SubscribeOptions.d.ts","sourceRoot":"","sources":["../../src/types/SubscribeOptions.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;CACf,CAAA"}
1
+ {"version":3,"file":"SubscribeOptions.d.ts","sourceRoot":"","sources":["../../src/types/SubscribeOptions.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lakutata/nats",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "Lakutata NATS Client",
5
5
  "keywords": [
6
6
  "lakutata",
@@ -31,5 +31,5 @@
31
31
  "dependencies": {
32
32
  "nats": "^2.29.3"
33
33
  },
34
- "gitHead": "30da3fc101c09b9f3495c90bc88ceae78401e64a"
34
+ "gitHead": "5a3648926825f9d85eca8e7ba3d9f0953480f612"
35
35
  }