@zeltjs/eventbus 0.6.0 → 0.7.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,2 +1,2 @@
1
- import { t as MemoryEventBusAdaptor } from "../adaptor-memory-_pl2McN_.js";
1
+ import { t as MemoryEventBusAdaptor } from "../adaptor-memory-ChFbXBV9.js";
2
2
  export { MemoryEventBusAdaptor };
@@ -0,0 +1,30 @@
1
+ import { EventEmitter } from "node:events";
2
+ import { Injectable } from "@zeltjs/core";
3
+ //#region src/adaptor-memory/memory-event-bus.adaptor.ts
4
+ function _ts_decorate(decorators, target, key, desc) {
5
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
8
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
9
+ }
10
+ var MemoryEventBusAdaptor = class {
11
+ async emit(event, data) {
12
+ this.emitter.emit(event, data);
13
+ }
14
+ on(event, handler) {
15
+ this.emitter.on(event, handler);
16
+ return () => this.emitter.off(event, handler);
17
+ }
18
+ once(event, handler) {
19
+ this.emitter.once(event, handler);
20
+ return () => this.emitter.off(event, handler);
21
+ }
22
+ constructor() {
23
+ this.emitter = new EventEmitter();
24
+ }
25
+ };
26
+ MemoryEventBusAdaptor = _ts_decorate([Injectable()], MemoryEventBusAdaptor);
27
+ //#endregion
28
+ export { MemoryEventBusAdaptor as t };
29
+
30
+ //# sourceMappingURL=adaptor-memory-ChFbXBV9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adaptor-memory-ChFbXBV9.js","names":["EventEmitter","Injectable","MemoryEventBusAdaptor","emit","event","data","emitter","on","handler","off","once"],"sources":["../src/adaptor-memory/memory-event-bus.adaptor.ts"],"sourcesContent":["import { EventEmitter } from 'node:events';\nimport { Injectable } from '@zeltjs/core';\n\nimport type { EventBusAdaptor, EventBusSchema } from '../types';\n\n@Injectable()\nexport class MemoryEventBusAdaptor implements EventBusAdaptor {\n private readonly emitter = new EventEmitter();\n\n async emit<K extends keyof EventBusSchema>(event: K, data: EventBusSchema[K]): Promise<void> {\n this.emitter.emit(event as string, data);\n }\n\n on<K extends keyof EventBusSchema>(\n event: K,\n handler: (data: EventBusSchema[K]) => void,\n ): () => void {\n this.emitter.on(event as string, handler);\n return () => this.emitter.off(event as string, handler);\n }\n\n once<K extends keyof EventBusSchema>(\n event: K,\n handler: (data: EventBusSchema[K]) => void,\n ): () => void {\n this.emitter.once(event as string, handler);\n return () => this.emitter.off(event as string, handler);\n }\n}\n"],"mappings":";;;;;;;;;AAMA,IAAaE,wBAAb,MAAaA;CAGX,MAAMC,KAAqCC,OAAUC,MAAwC;AAC3F,OAAKC,QAAQH,KAAKC,OAAiBC,KAAAA;;CAGrCE,GACEH,OACAI,SACY;AACZ,OAAKF,QAAQC,GAAGH,OAAiBI,QAAAA;AACjC,eAAa,KAAKF,QAAQG,IAAIL,OAAiBI,QAAAA;;CAGjDE,KACEN,OACAI,SACY;AACZ,OAAKF,QAAQI,KAAKN,OAAiBI,QAAAA;AACnC,eAAa,KAAKF,QAAQG,IAAIL,OAAiBI,QAAAA;;;OAnBhCF,UAAU,IAAIN,cAAAA"}
@@ -2,18 +2,6 @@ import { LifecycleManager, inject } from "@zeltjs/core";
2
2
  import { RedisService } from "@zeltjs/redis";
3
3
  //#region src/adaptor-redis/redis-event-bus.adaptor.ts
4
4
  var RedisEventBusAdaptor = class {
5
- constructor(redis = inject(RedisService), lifecycle = inject(LifecycleManager)) {
6
- this.handlers = /* @__PURE__ */ new Map();
7
- this.pub = redis.client;
8
- this.sub = redis.client.duplicate();
9
- lifecycle.register(this);
10
- this.sub.on("message", (channel, message) => {
11
- const eventHandlers = this.handlers.get(channel);
12
- if (!eventHandlers) return;
13
- const data = JSON.parse(message);
14
- for (const handler of eventHandlers) handler(data);
15
- });
16
- }
17
5
  async startup() {}
18
6
  async shutdown() {
19
7
  this.sub.disconnect();
@@ -46,6 +34,18 @@ var RedisEventBusAdaptor = class {
46
34
  const unsubscribe = this.on(event, wrappedHandler);
47
35
  return unsubscribe;
48
36
  }
37
+ constructor(redis = inject(RedisService), lifecycle = inject(LifecycleManager)) {
38
+ this.handlers = /* @__PURE__ */ new Map();
39
+ this.pub = redis.client;
40
+ this.sub = redis.client.duplicate();
41
+ lifecycle.register(this);
42
+ this.sub.on("message", (channel, message) => {
43
+ const eventHandlers = this.handlers.get(channel);
44
+ if (!eventHandlers) return;
45
+ const data = JSON.parse(message);
46
+ for (const handler of eventHandlers) handler(data);
47
+ });
48
+ }
49
49
  };
50
50
  //#endregion
51
51
  export { RedisEventBusAdaptor };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/adaptor-redis/redis-event-bus.adaptor.ts"],"sourcesContent":["import type { Lifecycle } from '@zeltjs/core';\nimport { inject, LifecycleManager } from '@zeltjs/core';\nimport { RedisService } from '@zeltjs/redis';\nimport type Redis from 'ioredis';\n\nimport type { EventBusAdaptor, EventBusSchema } from '../types';\n\ntype Handler = (data: unknown) => void;\n\nexport class RedisEventBusAdaptor implements EventBusAdaptor, Lifecycle {\n private readonly pub: Redis;\n private readonly sub: Redis;\n private readonly handlers = new Map<string, Set<Handler>>();\n\n constructor(redis = inject(RedisService), lifecycle = inject(LifecycleManager)) {\n this.pub = redis.client;\n this.sub = redis.client.duplicate();\n lifecycle.register(this);\n\n this.sub.on('message', (channel: string, message: string) => {\n const eventHandlers = this.handlers.get(channel);\n if (!eventHandlers) return;\n const data: unknown = JSON.parse(message);\n for (const handler of eventHandlers) {\n handler(data);\n }\n });\n }\n\n async startup(): Promise<void> {}\n\n async shutdown(): Promise<void> {\n this.sub.disconnect();\n }\n\n async emit<K extends keyof EventBusSchema>(event: K, data: EventBusSchema[K]): Promise<void> {\n await this.pub.publish(event as string, JSON.stringify(data));\n }\n\n on<K extends keyof EventBusSchema>(\n event: K,\n handler: (data: EventBusSchema[K]) => void,\n ): () => void {\n const channel = event as string;\n let handlers = this.handlers.get(channel);\n if (!handlers) {\n handlers = new Set();\n this.handlers.set(channel, handlers);\n void this.sub.subscribe(channel);\n }\n handlers.add(handler as Handler);\n\n return () => {\n handlers.delete(handler as Handler);\n if (handlers.size === 0) {\n this.handlers.delete(channel);\n void this.sub.unsubscribe(channel);\n }\n };\n }\n\n once<K extends keyof EventBusSchema>(\n event: K,\n handler: (data: EventBusSchema[K]) => void,\n ): () => void {\n const wrappedHandler = (data: EventBusSchema[K]) => {\n unsubscribe();\n handler(data);\n };\n const unsubscribe = this.on(event, wrappedHandler);\n return unsubscribe;\n }\n}\n"],"mappings":";;;AASA,IAAa,uBAAb,MAAwE;CAKtE,YAAY,QAAQ,OAAO,aAAa,EAAE,YAAY,OAAO,iBAAiB,EAAE;kCAFpD,IAAI,KAA2B;AAGzD,OAAK,MAAM,MAAM;AACjB,OAAK,MAAM,MAAM,OAAO,WAAW;AACnC,YAAU,SAAS,KAAK;AAExB,OAAK,IAAI,GAAG,YAAY,SAAiB,YAAoB;GAC3D,MAAM,gBAAgB,KAAK,SAAS,IAAI,QAAQ;AAChD,OAAI,CAAC,cAAe;GACpB,MAAM,OAAgB,KAAK,MAAM,QAAQ;AACzC,QAAK,MAAM,WAAW,cACpB,SAAQ,KAAK;IAEf;;CAGJ,MAAM,UAAyB;CAE/B,MAAM,WAA0B;AAC9B,OAAK,IAAI,YAAY;;CAGvB,MAAM,KAAqC,OAAU,MAAwC;AAC3F,QAAM,KAAK,IAAI,QAAQ,OAAiB,KAAK,UAAU,KAAK,CAAC;;CAG/D,GACE,OACA,SACY;EACZ,MAAM,UAAU;EAChB,IAAI,WAAW,KAAK,SAAS,IAAI,QAAQ;AACzC,MAAI,CAAC,UAAU;AACb,8BAAW,IAAI,KAAK;AACpB,QAAK,SAAS,IAAI,SAAS,SAAS;AAC/B,QAAK,IAAI,UAAU,QAAQ;;AAElC,WAAS,IAAI,QAAmB;AAEhC,eAAa;AACX,YAAS,OAAO,QAAmB;AACnC,OAAI,SAAS,SAAS,GAAG;AACvB,SAAK,SAAS,OAAO,QAAQ;AACxB,SAAK,IAAI,YAAY,QAAQ;;;;CAKxC,KACE,OACA,SACY;EACZ,MAAM,kBAAkB,SAA4B;AAClD,gBAAa;AACb,WAAQ,KAAK;;EAEf,MAAM,cAAc,KAAK,GAAG,OAAO,eAAe;AAClD,SAAO"}
1
+ {"version":3,"file":"index.js","names":["inject","LifecycleManager","RedisService","RedisEventBusAdaptor","startup","shutdown","sub","disconnect","emit","event","data","pub","publish","JSON","stringify","on","handler","channel","handlers","get","Set","set","subscribe","add","delete","size","unsubscribe","once","wrappedHandler","redis","lifecycle","Map","client","duplicate","register","message","eventHandlers","parse"],"sources":["../../src/adaptor-redis/redis-event-bus.adaptor.ts"],"sourcesContent":["import type { Lifecycle } from '@zeltjs/core';\nimport { inject, LifecycleManager } from '@zeltjs/core';\nimport { RedisService } from '@zeltjs/redis';\nimport type Redis from 'ioredis';\n\nimport type { EventBusAdaptor, EventBusSchema } from '../types';\n\ntype Handler = (data: unknown) => void;\n\nexport class RedisEventBusAdaptor implements EventBusAdaptor, Lifecycle {\n private readonly pub: Redis;\n private readonly sub: Redis;\n private readonly handlers = new Map<string, Set<Handler>>();\n\n constructor(redis = inject(RedisService), lifecycle = inject(LifecycleManager)) {\n this.pub = redis.client;\n this.sub = redis.client.duplicate();\n lifecycle.register(this);\n\n this.sub.on('message', (channel: string, message: string) => {\n const eventHandlers = this.handlers.get(channel);\n if (!eventHandlers) return;\n const data: unknown = JSON.parse(message);\n for (const handler of eventHandlers) {\n handler(data);\n }\n });\n }\n\n async startup(): Promise<void> {}\n\n async shutdown(): Promise<void> {\n this.sub.disconnect();\n }\n\n async emit<K extends keyof EventBusSchema>(event: K, data: EventBusSchema[K]): Promise<void> {\n await this.pub.publish(event as string, JSON.stringify(data));\n }\n\n on<K extends keyof EventBusSchema>(\n event: K,\n handler: (data: EventBusSchema[K]) => void,\n ): () => void {\n const channel = event as string;\n let handlers = this.handlers.get(channel);\n if (!handlers) {\n handlers = new Set();\n this.handlers.set(channel, handlers);\n void this.sub.subscribe(channel);\n }\n handlers.add(handler as Handler);\n\n return () => {\n handlers.delete(handler as Handler);\n if (handlers.size === 0) {\n this.handlers.delete(channel);\n void this.sub.unsubscribe(channel);\n }\n };\n }\n\n once<K extends keyof EventBusSchema>(\n event: K,\n handler: (data: EventBusSchema[K]) => void,\n ): () => void {\n const wrappedHandler = (data: EventBusSchema[K]) => {\n unsubscribe();\n handler(data);\n };\n const unsubscribe = this.on(event, wrappedHandler);\n return unsubscribe;\n }\n}\n"],"mappings":";;;AASA,IAAaG,uBAAb,MAAaA;CAoBX,MAAMC,UAAyB;CAE/B,MAAMC,WAA0B;AAC9B,OAAKC,IAAIC,YAAU;;CAGrB,MAAMC,KAAqCC,OAAUC,MAAwC;AAC3F,QAAM,KAAKC,IAAIC,QAAQH,OAAiBI,KAAKC,UAAUJ,KAAAA,CAAAA;;CAGzDK,GACEN,OACAO,SACY;EACZ,MAAMC,UAAUR;EAChB,IAAIS,WAAW,KAAKA,SAASC,IAAIF,QAAAA;AACjC,MAAI,CAACC,UAAU;AACbA,8BAAW,IAAIE,KAAAA;AACf,QAAKF,SAASG,IAAIJ,SAASC,SAAAA;AACtB,QAAKZ,IAAIgB,UAAUL,QAAAA;;AAE1BC,WAASK,IAAIP,QAAAA;AAEb,eAAO;AACLE,YAASM,OAAOR,QAAAA;AAChB,OAAIE,SAASO,SAAS,GAAG;AACvB,SAAKP,SAASM,OAAOP,QAAAA;AAChB,SAAKX,IAAIoB,YAAYT,QAAAA;;;;CAKhCU,KACElB,OACAO,SACY;EACZ,MAAMY,kBAAkBlB,SAAAA;AACtBgB,gBAAAA;AACAV,WAAQN,KAAAA;;EAEV,MAAMgB,cAAc,KAAKX,GAAGN,OAAOmB,eAAAA;AACnC,SAAOF;;CAxDT,YAAYG,QAAQ7B,OAAOE,aAAa,EAAE4B,YAAY9B,OAAOC,iBAAiB,EAAE;OAF/DiB,2BAAW,IAAIa,KAAAA;AAG9B,OAAKpB,MAAMkB,MAAMG;AACjB,OAAK1B,MAAMuB,MAAMG,OAAOC,WAAS;AACjCH,YAAUI,SAAS,KAAI;AAEvB,OAAK5B,IAAIS,GAAG,YAAYE,SAAiBkB,YAAAA;GACvC,MAAMC,gBAAgB,KAAKlB,SAASC,IAAIF,QAAAA;AACxC,OAAI,CAACmB,cAAe;GACpB,MAAM1B,OAAgBG,KAAKwB,MAAMF,QAAAA;AACjC,QAAK,MAAMnB,WAAWoB,cACpBpB,SAAQN,KAAAA;IAEZ"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import { t as MemoryEventBusAdaptor } from "./adaptor-memory-_pl2McN_.js";
1
+ import { t as MemoryEventBusAdaptor } from "./adaptor-memory-ChFbXBV9.js";
2
2
  export { MemoryEventBusAdaptor };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeltjs/eventbus",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -29,8 +29,8 @@
29
29
  "dist"
30
30
  ],
31
31
  "peerDependencies": {
32
- "@zeltjs/redis": "0.6.0",
33
- "@zeltjs/core": "0.6.0"
32
+ "@zeltjs/core": "0.7.0",
33
+ "@zeltjs/redis": "0.7.0"
34
34
  },
35
35
  "peerDependenciesMeta": {
36
36
  "@zeltjs/redis": {
@@ -40,8 +40,8 @@
40
40
  "devDependencies": {
41
41
  "@types/node": "22.19.17",
42
42
  "ioredis": "5.10.1",
43
- "@zeltjs/core": "0.6.0",
44
- "@zeltjs/redis": "0.6.0"
43
+ "@zeltjs/core": "0.7.0",
44
+ "@zeltjs/redis": "0.7.0"
45
45
  },
46
46
  "volta": {
47
47
  "extends": "../../package.json"
@@ -1,23 +0,0 @@
1
- import { EventEmitter } from "node:events";
2
- import { Injectable } from "@zeltjs/core";
3
- //#region src/adaptor-memory/memory-event-bus.adaptor.ts
4
- var MemoryEventBusAdaptor = @Injectable() class {
5
- constructor() {
6
- this.emitter = new EventEmitter();
7
- }
8
- async emit(event, data) {
9
- this.emitter.emit(event, data);
10
- }
11
- on(event, handler) {
12
- this.emitter.on(event, handler);
13
- return () => this.emitter.off(event, handler);
14
- }
15
- once(event, handler) {
16
- this.emitter.once(event, handler);
17
- return () => this.emitter.off(event, handler);
18
- }
19
- };
20
- //#endregion
21
- export { MemoryEventBusAdaptor as t };
22
-
23
- //# sourceMappingURL=adaptor-memory-_pl2McN_.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adaptor-memory-_pl2McN_.js","names":[],"sources":["../src/adaptor-memory/memory-event-bus.adaptor.ts"],"sourcesContent":["import { EventEmitter } from 'node:events';\nimport { Injectable } from '@zeltjs/core';\n\nimport type { EventBusAdaptor, EventBusSchema } from '../types';\n\n@Injectable()\nexport class MemoryEventBusAdaptor implements EventBusAdaptor {\n private readonly emitter = new EventEmitter();\n\n async emit<K extends keyof EventBusSchema>(event: K, data: EventBusSchema[K]): Promise<void> {\n this.emitter.emit(event as string, data);\n }\n\n on<K extends keyof EventBusSchema>(\n event: K,\n handler: (data: EventBusSchema[K]) => void,\n ): () => void {\n this.emitter.on(event as string, handler);\n return () => this.emitter.off(event as string, handler);\n }\n\n once<K extends keyof EventBusSchema>(\n event: K,\n handler: (data: EventBusSchema[K]) => void,\n ): () => void {\n this.emitter.once(event as string, handler);\n return () => this.emitter.off(event as string, handler);\n }\n}\n"],"mappings":";;;AAMA,IAAa,wBADb,CAAC,YAAY,CAAb,MAC8D;;iBACjC,IAAI,cAAc;;CAE7C,MAAM,KAAqC,OAAU,MAAwC;AAC3F,OAAK,QAAQ,KAAK,OAAiB,KAAK;;CAG1C,GACE,OACA,SACY;AACZ,OAAK,QAAQ,GAAG,OAAiB,QAAQ;AACzC,eAAa,KAAK,QAAQ,IAAI,OAAiB,QAAQ;;CAGzD,KACE,OACA,SACY;AACZ,OAAK,QAAQ,KAAK,OAAiB,QAAQ;AAC3C,eAAa,KAAK,QAAQ,IAAI,OAAiB,QAAQ"}