@zeltjs/eventbus 0.7.0 → 0.8.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 "../index-CmcsSQcu.js";
1
+ import { t as MemoryEventBusAdaptor } from "../index-Buq5DkB1.js";
2
2
  export { MemoryEventBusAdaptor };
@@ -1,2 +1,2 @@
1
- import { t as MemoryEventBusAdaptor } from "../adaptor-memory-ChFbXBV9.js";
1
+ import { t as MemoryEventBusAdaptor } from "../adaptor-memory-BG1Xyr7_.js";
2
2
  export { MemoryEventBusAdaptor };
@@ -1,4 +1,4 @@
1
- import { EventEmitter } from "node:events";
1
+ import { t as mitt_default } from "./mitt-BPPfh8xV.js";
2
2
  import { Injectable } from "@zeltjs/core";
3
3
  //#region src/adaptor-memory/memory-event-bus.adaptor.ts
4
4
  function _ts_decorate(decorators, target, key, desc) {
@@ -16,15 +16,19 @@ var MemoryEventBusAdaptor = class {
16
16
  return () => this.emitter.off(event, handler);
17
17
  }
18
18
  once(event, handler) {
19
- this.emitter.once(event, handler);
20
- return () => this.emitter.off(event, handler);
19
+ const wrappedHandler = (data) => {
20
+ unsubscribe();
21
+ handler(data);
22
+ };
23
+ const unsubscribe = this.on(event, wrappedHandler);
24
+ return unsubscribe;
21
25
  }
22
26
  constructor() {
23
- this.emitter = new EventEmitter();
27
+ this.emitter = mitt_default();
24
28
  }
25
29
  };
26
30
  MemoryEventBusAdaptor = _ts_decorate([Injectable()], MemoryEventBusAdaptor);
27
31
  //#endregion
28
32
  export { MemoryEventBusAdaptor as t };
29
33
 
30
- //# sourceMappingURL=adaptor-memory-ChFbXBV9.js.map
34
+ //# sourceMappingURL=adaptor-memory-BG1Xyr7_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adaptor-memory-BG1Xyr7_.js","names":["Injectable","mitt","MemoryEventBusAdaptor","emit","event","data","emitter","on","handler","off","once","wrappedHandler","unsubscribe"],"sources":["../src/adaptor-memory/memory-event-bus.adaptor.ts"],"sourcesContent":["import { Injectable } from '@zeltjs/core';\nimport mitt from 'mitt';\n\nimport type { EventBusAdaptor, EventBusSchema } from '../eventbus.types';\n\n@Injectable()\nexport class MemoryEventBusAdaptor implements EventBusAdaptor {\n private readonly emitter = mitt<EventBusSchema>();\n\n async emit<K extends string & keyof EventBusSchema>(\n event: K,\n data: EventBusSchema[K],\n ): Promise<void> {\n this.emitter.emit(event, data);\n }\n\n on<K extends string & keyof EventBusSchema>(\n event: K,\n handler: (data: EventBusSchema[K]) => void,\n ): () => void {\n this.emitter.on(event, handler);\n return () => this.emitter.off(event, handler);\n }\n\n once<K extends string & 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":";;;;;;;;;AAMA,IAAaE,wBAAb,MAAaA;CAGX,MAAMC,KACJC,OACAC,MACe;AACf,OAAKC,QAAQH,KAAKC,OAAOC,KAAAA;;CAG3BE,GACEH,OACAI,SACY;AACZ,OAAKF,QAAQC,GAAGH,OAAOI,QAAAA;AACvB,eAAa,KAAKF,QAAQG,IAAIL,OAAOI,QAAAA;;CAGvCE,KACEN,OACAI,SACY;EACZ,MAAMG,kBAAkBN,SAAAA;AACtBO,gBAAAA;AACAJ,WAAQH,KAAAA;;EAEV,MAAMO,cAAc,KAAKL,GAAGH,OAAOO,eAAAA;AACnC,SAAOC;;;OA1BQN,UAAUL,cAAAA"}
@@ -1,4 +1,4 @@
1
- import { n as EventBusSchema, t as EventBusAdaptor } from "../types-CLqE_rki.js";
1
+ import { n as EventBusSchema, t as EventBusAdaptor } from "../eventbus.types-Cn8xuI2B.js";
2
2
  import { Lifecycle, LifecycleManager } from "@zeltjs/core";
3
3
  import { RedisService } from "@zeltjs/redis";
4
4
 
@@ -6,13 +6,14 @@ import { RedisService } from "@zeltjs/redis";
6
6
  declare class RedisEventBusAdaptor implements EventBusAdaptor, Lifecycle {
7
7
  private readonly pub;
8
8
  private readonly sub;
9
- private readonly handlers;
9
+ private readonly localEmitter;
10
+ private readonly subscriptions;
10
11
  constructor(redis?: RedisService, lifecycle?: LifecycleManager);
11
12
  startup(): Promise<void>;
12
13
  shutdown(): Promise<void>;
13
- emit<K extends keyof EventBusSchema>(event: K, data: EventBusSchema[K]): Promise<void>;
14
- on<K extends keyof EventBusSchema>(event: K, handler: (data: EventBusSchema[K]) => void): () => void;
15
- once<K extends keyof EventBusSchema>(event: K, handler: (data: EventBusSchema[K]) => void): () => void;
14
+ emit<K extends string & keyof EventBusSchema>(event: K, data: EventBusSchema[K]): Promise<void>;
15
+ on<K extends string & keyof EventBusSchema>(event: K, handler: (data: EventBusSchema[K]) => void): () => void;
16
+ once<K extends string & keyof EventBusSchema>(event: K, handler: (data: EventBusSchema[K]) => void): () => void;
16
17
  }
17
18
  //#endregion
18
19
  export { RedisEventBusAdaptor };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/adaptor-redis/redis-event-bus.adaptor.ts"],"mappings":";;;;;cASa,oBAAA,YAAgC,eAAA,EAAiB,SAAA;EAAA,iBAC3C,GAAA;EAAA,iBACA,GAAA;EAAA,iBACA,QAAA;cAEL,KAAA,GAAK,YAAA,EAAyB,SAAA,GAAS,gBAAA;EAe7C,OAAA,CAAA,GAAW,OAAA;EAEX,QAAA,CAAA,GAAY,OAAA;EAIZ,IAAA,iBAAqB,cAAA,CAAA,CAAgB,KAAA,EAAO,CAAA,EAAG,IAAA,EAAM,cAAA,CAAe,CAAA,IAAK,OAAA;EAI/E,EAAA,iBAAmB,cAAA,CAAA,CACjB,KAAA,EAAO,CAAA,EACP,OAAA,GAAU,IAAA,EAAM,cAAA,CAAe,CAAA;EAoBjC,IAAA,iBAAqB,cAAA,CAAA,CACnB,KAAA,EAAO,CAAA,EACP,OAAA,GAAU,IAAA,EAAM,cAAA,CAAe,CAAA;AAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/adaptor-redis/redis-event-bus.adaptor.ts"],"mappings":";;;;;cASa,oBAAA,YAAgC,eAAA,EAAiB,SAAA;EAAA,iBAC3C,GAAA;EAAA,iBACA,GAAA;EAAA,iBACA,YAAA;EAAA,iBACA,aAAA;cAEL,KAAA,GAAK,YAAA,EAAyB,SAAA,GAAS,gBAAA;EAY7C,OAAA,CAAA,GAAW,OAAA;EAEX,QAAA,CAAA,GAAY,OAAA;EAIZ,IAAA,0BAA8B,cAAA,CAAA,CAClC,KAAA,EAAO,CAAA,EACP,IAAA,EAAM,cAAA,CAAe,CAAA,IACpB,OAAA;EAIH,EAAA,0BAA4B,cAAA,CAAA,CAC1B,KAAA,EAAO,CAAA,EACP,OAAA,GAAU,IAAA,EAAM,cAAA,CAAe,CAAA;EAajC,IAAA,0BAA8B,cAAA,CAAA,CAC5B,KAAA,EAAO,CAAA,EACP,OAAA,GAAU,IAAA,EAAM,cAAA,CAAe,CAAA;AAAA"}
@@ -1,6 +1,16 @@
1
- import { LifecycleManager, inject } from "@zeltjs/core";
1
+ import { t as mitt_default } from "../mitt-BPPfh8xV.js";
2
+ import { Injectable, LifecycleManager, inject } from "@zeltjs/core";
2
3
  import { RedisService } from "@zeltjs/redis";
3
4
  //#region src/adaptor-redis/redis-event-bus.adaptor.ts
5
+ function _ts_decorate(decorators, target, key, desc) {
6
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
8
+ 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;
9
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
10
+ }
11
+ function _ts_metadata(k, v) {
12
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
13
+ }
4
14
  var RedisEventBusAdaptor = class {
5
15
  async startup() {}
6
16
  async shutdown() {
@@ -10,20 +20,13 @@ var RedisEventBusAdaptor = class {
10
20
  await this.pub.publish(event, JSON.stringify(data));
11
21
  }
12
22
  on(event, handler) {
13
- const channel = event;
14
- let handlers = this.handlers.get(channel);
15
- if (!handlers) {
16
- handlers = /* @__PURE__ */ new Set();
17
- this.handlers.set(channel, handlers);
18
- this.sub.subscribe(channel);
23
+ if (!this.subscriptions.has(event)) {
24
+ this.subscriptions.add(event);
25
+ this.sub.subscribe(event);
19
26
  }
20
- handlers.add(handler);
27
+ this.localEmitter.on(event, handler);
21
28
  return () => {
22
- handlers.delete(handler);
23
- if (handlers.size === 0) {
24
- this.handlers.delete(channel);
25
- this.sub.unsubscribe(channel);
26
- }
29
+ this.localEmitter.off(event, handler);
27
30
  };
28
31
  }
29
32
  once(event, handler) {
@@ -35,18 +38,23 @@ var RedisEventBusAdaptor = class {
35
38
  return unsubscribe;
36
39
  }
37
40
  constructor(redis = inject(RedisService), lifecycle = inject(LifecycleManager)) {
38
- this.handlers = /* @__PURE__ */ new Map();
41
+ this.localEmitter = mitt_default();
42
+ this.subscriptions = /* @__PURE__ */ new Set();
39
43
  this.pub = redis.client;
40
44
  this.sub = redis.client.duplicate();
41
45
  lifecycle.register(this);
42
46
  this.sub.on("message", (channel, message) => {
43
- const eventHandlers = this.handlers.get(channel);
44
- if (!eventHandlers) return;
47
+ if (!this.subscriptions.has(channel)) return;
45
48
  const data = JSON.parse(message);
46
- for (const handler of eventHandlers) handler(data);
49
+ this.localEmitter.emit(channel, data);
47
50
  });
48
51
  }
49
52
  };
53
+ RedisEventBusAdaptor = _ts_decorate([
54
+ Injectable(),
55
+ _ts_metadata("design:type", Function),
56
+ _ts_metadata("design:paramtypes", [void 0, void 0])
57
+ ], RedisEventBusAdaptor);
50
58
  //#endregion
51
59
  export { RedisEventBusAdaptor };
52
60
 
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"index.js","names":["Injectable","inject","LifecycleManager","RedisService","mitt","RedisEventBusAdaptor","startup","shutdown","sub","disconnect","emit","event","data","pub","publish","JSON","stringify","on","handler","subscriptions","has","add","subscribe","localEmitter","off","once","wrappedHandler","unsubscribe","redis","lifecycle","Set","client","duplicate","register","channel","message","parse"],"sources":["../../src/adaptor-redis/redis-event-bus.adaptor.ts"],"sourcesContent":["import type { Lifecycle } from '@zeltjs/core';\nimport { Injectable, inject, LifecycleManager } from '@zeltjs/core';\nimport { RedisService } from '@zeltjs/redis';\nimport type Redis from 'ioredis';\nimport mitt from 'mitt';\n\nimport type { EventBusAdaptor, EventBusSchema } from '../eventbus.types';\n\n@Injectable()\nexport class RedisEventBusAdaptor implements EventBusAdaptor, Lifecycle {\n private readonly pub: Redis;\n private readonly sub: Redis;\n private readonly localEmitter = mitt<EventBusSchema>();\n private readonly subscriptions = new Set<string>();\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 if (!this.subscriptions.has(channel)) return;\n const data: unknown = JSON.parse(message);\n this.localEmitter.emit(channel, data);\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 string & keyof EventBusSchema>(\n event: K,\n data: EventBusSchema[K],\n ): Promise<void> {\n await this.pub.publish(event, JSON.stringify(data));\n }\n\n on<K extends string & keyof EventBusSchema>(\n event: K,\n handler: (data: EventBusSchema[K]) => void,\n ): () => void {\n if (!this.subscriptions.has(event)) {\n this.subscriptions.add(event);\n void this.sub.subscribe(event);\n }\n this.localEmitter.on(event, handler);\n\n return () => {\n this.localEmitter.off(event, handler);\n };\n }\n\n once<K extends string & 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,IAAaK,uBAAb,MAAaA;CAkBX,MAAMC,UAAyB;CAE/B,MAAMC,WAA0B;AAC9B,OAAKC,IAAIC,YAAU;;CAGrB,MAAMC,KACJC,OACAC,MACe;AACf,QAAM,KAAKC,IAAIC,QAAQH,OAAOI,KAAKC,UAAUJ,KAAAA,CAAAA;;CAG/CK,GACEN,OACAO,SACY;AACZ,MAAI,CAAC,KAAKC,cAAcC,IAAIT,MAAAA,EAAQ;AAClC,QAAKQ,cAAcE,IAAIV,MAAAA;AAClB,QAAKH,IAAIc,UAAUX,MAAAA;;AAE1B,OAAKY,aAAaN,GAAGN,OAAOO,QAAAA;AAE5B,eAAO;AACL,QAAKK,aAAaC,IAAIb,OAAOO,QAAAA;;;CAIjCO,KACEd,OACAO,SACY;EACZ,MAAMQ,kBAAkBd,SAAAA;AACtBe,gBAAAA;AACAT,WAAQN,KAAAA;;EAEV,MAAMe,cAAc,KAAKV,GAAGN,OAAOe,eAAAA;AACnC,SAAOC;;CAjDT,YAAYC,QAAQ3B,OAAOE,aAAa,EAAE0B,YAAY5B,OAAOC,iBAAiB,EAAE;OAH/DqB,eAAenB,cAAAA;OACfe,gCAAgB,IAAIW,KAAAA;AAGnC,OAAKjB,MAAMe,MAAMG;AACjB,OAAKvB,MAAMoB,MAAMG,OAAOC,WAAS;AACjCH,YAAUI,SAAS,KAAI;AAEvB,OAAKzB,IAAIS,GAAG,YAAYiB,SAAiBC,YAAAA;AACvC,OAAI,CAAC,KAAKhB,cAAcC,IAAIc,QAAAA,CAAU;GACtC,MAAMtB,OAAgBG,KAAKqB,MAAMD,QAAAA;AACjC,QAAKZ,aAAab,KAAKwB,SAAStB,KAAAA;IAClC"}
@@ -0,0 +1,10 @@
1
+ //#region src/eventbus.types.d.ts
2
+ interface EventBusSchema extends Record<string, unknown> {}
3
+ interface EventBusAdaptor {
4
+ emit<K extends string & keyof EventBusSchema>(event: K, data: EventBusSchema[K]): Promise<void>;
5
+ on<K extends string & keyof EventBusSchema>(event: K, handler: (data: EventBusSchema[K]) => void): () => void;
6
+ once<K extends string & keyof EventBusSchema>(event: K, handler: (data: EventBusSchema[K]) => void): () => void;
7
+ }
8
+ //#endregion
9
+ export { EventBusSchema as n, EventBusAdaptor as t };
10
+ //# sourceMappingURL=eventbus.types-Cn8xuI2B.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventbus.types-Cn8xuI2B.d.ts","names":[],"sources":["../src/eventbus.types.ts"],"mappings":";UACiB,cAAA,SAAuB,MAAA;AAAA,UAEvB,eAAA;EACf,IAAA,0BAA8B,cAAA,EAAgB,KAAA,EAAO,CAAA,EAAG,IAAA,EAAM,cAAA,CAAe,CAAA,IAAK,OAAA;EAClF,EAAA,0BAA4B,cAAA,EAC1B,KAAA,EAAO,CAAA,EACP,OAAA,GAAU,IAAA,EAAM,cAAA,CAAe,CAAA;EAEjC,IAAA,0BAA8B,cAAA,EAC5B,KAAA,EAAO,CAAA,EACP,OAAA,GAAU,IAAA,EAAM,cAAA,CAAe,CAAA;AAAA"}
@@ -0,0 +1,12 @@
1
+ import { n as EventBusSchema, t as EventBusAdaptor } from "./eventbus.types-Cn8xuI2B.js";
2
+
3
+ //#region src/adaptor-memory/memory-event-bus.adaptor.d.ts
4
+ declare class MemoryEventBusAdaptor implements EventBusAdaptor {
5
+ private readonly emitter;
6
+ emit<K extends string & keyof EventBusSchema>(event: K, data: EventBusSchema[K]): Promise<void>;
7
+ on<K extends string & keyof EventBusSchema>(event: K, handler: (data: EventBusSchema[K]) => void): () => void;
8
+ once<K extends string & keyof EventBusSchema>(event: K, handler: (data: EventBusSchema[K]) => void): () => void;
9
+ }
10
+ //#endregion
11
+ export { MemoryEventBusAdaptor as t };
12
+ //# sourceMappingURL=index-Buq5DkB1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-Buq5DkB1.d.ts","names":[],"sources":["../src/adaptor-memory/memory-event-bus.adaptor.ts"],"mappings":";;;cAMa,qBAAA,YAAiC,eAAA;EAAA,iBAC3B,OAAA;EAEX,IAAA,0BAA8B,cAAA,CAAA,CAClC,KAAA,EAAO,CAAA,EACP,IAAA,EAAM,cAAA,CAAe,CAAA,IACpB,OAAA;EAIH,EAAA,0BAA4B,cAAA,CAAA,CAC1B,KAAA,EAAO,CAAA,EACP,OAAA,GAAU,IAAA,EAAM,cAAA,CAAe,CAAA;EAMjC,IAAA,0BAA8B,cAAA,CAAA,CAC5B,KAAA,EAAO,CAAA,EACP,OAAA,GAAU,IAAA,EAAM,cAAA,CAAe,CAAA;AAAA"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { n as EventBusSchema, t as EventBusAdaptor } from "./types-CLqE_rki.js";
2
- import { t as MemoryEventBusAdaptor } from "./index-CmcsSQcu.js";
1
+ import { n as EventBusSchema, t as EventBusAdaptor } from "./eventbus.types-Cn8xuI2B.js";
2
+ import { t as MemoryEventBusAdaptor } from "./index-Buq5DkB1.js";
3
3
  export { type EventBusAdaptor, type EventBusSchema, MemoryEventBusAdaptor };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import { t as MemoryEventBusAdaptor } from "./adaptor-memory-ChFbXBV9.js";
1
+ import { t as MemoryEventBusAdaptor } from "./adaptor-memory-BG1Xyr7_.js";
2
2
  export { MemoryEventBusAdaptor };
@@ -0,0 +1,26 @@
1
+ //#region ../../node_modules/.pnpm/mitt@3.0.1/node_modules/mitt/dist/mitt.mjs
2
+ function mitt_default(n) {
3
+ return {
4
+ all: n = n || /* @__PURE__ */ new Map(),
5
+ on: function(t, e) {
6
+ var i = n.get(t);
7
+ i ? i.push(e) : n.set(t, [e]);
8
+ },
9
+ off: function(t, e) {
10
+ var i = n.get(t);
11
+ i && (e ? i.splice(i.indexOf(e) >>> 0, 1) : n.set(t, []));
12
+ },
13
+ emit: function(t, e) {
14
+ var i = n.get(t);
15
+ i && i.slice().map(function(n) {
16
+ n(e);
17
+ }), (i = n.get("*")) && i.slice().map(function(n) {
18
+ n(t, e);
19
+ });
20
+ }
21
+ };
22
+ }
23
+ //#endregion
24
+ export { mitt_default as t };
25
+
26
+ //# sourceMappingURL=mitt-BPPfh8xV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mitt-BPPfh8xV.js","names":["all","Map","on","type","handler","handlers","get","push","set","off","splice","indexOf","emit","evt","slice","map"],"sources":["../../../node_modules/.pnpm/mitt@3.0.1/node_modules/mitt/dist/mitt.mjs"],"sourcesContent":["export type EventType = string | symbol;\n\n// An event handler can take an optional event argument\n// and should not return a value\nexport type Handler<T = unknown> = (event: T) => void;\nexport type WildcardHandler<T = Record<string, unknown>> = (\n\ttype: keyof T,\n\tevent: T[keyof T]\n) => void;\n\n// An array of all currently registered event handlers for a type\nexport type EventHandlerList<T = unknown> = Array<Handler<T>>;\nexport type WildCardEventHandlerList<T = Record<string, unknown>> = Array<\n\tWildcardHandler<T>\n>;\n\n// A map of event types and their corresponding event handlers.\nexport type EventHandlerMap<Events extends Record<EventType, unknown>> = Map<\n\tkeyof Events | '*',\n\tEventHandlerList<Events[keyof Events]> | WildCardEventHandlerList<Events>\n>;\n\nexport interface Emitter<Events extends Record<EventType, unknown>> {\n\tall: EventHandlerMap<Events>;\n\n\ton<Key extends keyof Events>(type: Key, handler: Handler<Events[Key]>): void;\n\ton(type: '*', handler: WildcardHandler<Events>): void;\n\n\toff<Key extends keyof Events>(\n\t\ttype: Key,\n\t\thandler?: Handler<Events[Key]>\n\t): void;\n\toff(type: '*', handler: WildcardHandler<Events>): void;\n\n\temit<Key extends keyof Events>(type: Key, event: Events[Key]): void;\n\temit<Key extends keyof Events>(\n\t\ttype: undefined extends Events[Key] ? Key : never\n\t): void;\n}\n\n/**\n * Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nexport default function mitt<Events extends Record<EventType, unknown>>(\n\tall?: EventHandlerMap<Events>\n): Emitter<Events> {\n\ttype GenericEventHandler =\n\t\t| Handler<Events[keyof Events]>\n\t\t| WildcardHandler<Events>;\n\tall = all || new Map();\n\n\treturn {\n\t\t/**\n\t\t * A Map of event names to registered handler functions.\n\t\t */\n\t\tall,\n\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t * @param {string|symbol} type Type of event to listen for, or `'*'` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton<Key extends keyof Events>(type: Key, handler: GenericEventHandler) {\n\t\t\tconst handlers: Array<GenericEventHandler> | undefined = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\thandlers.push(handler);\n\t\t\t} else {\n\t\t\t\tall!.set(type, [handler] as EventHandlerList<Events[keyof Events]>);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t * If `handler` is omitted, all handlers of the given type are removed.\n\t\t * @param {string|symbol} type Type of event to unregister `handler` from (`'*'` to remove a wildcard handler)\n\t\t * @param {Function} [handler] Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff<Key extends keyof Events>(type: Key, handler?: GenericEventHandler) {\n\t\t\tconst handlers: Array<GenericEventHandler> | undefined = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\tif (handler) {\n\t\t\t\t\thandlers.splice(handlers.indexOf(handler) >>> 0, 1);\n\t\t\t\t} else {\n\t\t\t\t\tall!.set(type, []);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `'*'` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * Note: Manually firing '*' handlers is not supported.\n\t\t *\n\t\t * @param {string|symbol} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit<Key extends keyof Events>(type: Key, evt?: Events[Key]) {\n\t\t\tlet handlers = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\t(handlers as EventHandlerList<Events[keyof Events]>)\n\t\t\t\t\t.slice()\n\t\t\t\t\t.map((handler) => {\n\t\t\t\t\t\thandler(evt!);\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\thandlers = all!.get('*');\n\t\t\tif (handlers) {\n\t\t\t\t(handlers as WildCardEventHandlerList<Events>)\n\t\t\t\t\t.slice()\n\t\t\t\t\t.map((handler) => {\n\t\t\t\t\t\thandler(type, evt!);\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n}\n"],"x_google_ignoreList":[0],"mappings":";sBA8CCA,GAAAA;AAOA,QAAO;EAINA,KANDA,IAAMA,qBAAO,IAAIC,KAAAA;EAchBC,IAAAA,SAA6BC,GAAWC,GAAAA;GACvC,IAAMC,IAAmDL,EAAKM,IAAIH,EAAAA;AAC9DE,OACHA,EAASE,KAAKH,EAAAA,GAEdJ,EAAKQ,IAAIL,GAAM,CAACC,EAAAA,CAAAA;;EAWlBK,KAAAA,SAA8BN,GAAWC,GAAAA;GACxC,IAAMC,IAAmDL,EAAKM,IAAIH,EAAAA;AAC9DE,SACCD,IACHC,EAASK,OAAOL,EAASM,QAAQP,EAAAA,KAAa,GAAG,EAAA,GAEjDJ,EAAKQ,IAAIL,GAAM,EAAA,CAAA;;EAelBS,MAAAA,SAA+BT,GAAWU,GAAAA;GACzC,IAAIR,IAAWL,EAAKM,IAAIH,EAAAA;AACpBE,QACFA,EACCS,OAAAA,CACAC,IAAI,SAACX,GAAAA;AACLA,MAAQS,EAAAA;KAAAA,GAIXR,IAAWL,EAAKM,IAAI,IAAA,KAElBD,EACCS,OAAAA,CACAC,IAAI,SAACX,GAAAA;AACLA,MAAQD,GAAMU,EAAAA;KAAAA;;EAAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeltjs/eventbus",
3
- "version": "0.7.0",
3
+ "version": "0.8.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/core": "0.7.0",
33
- "@zeltjs/redis": "0.7.0"
32
+ "@zeltjs/core": "0.8.0",
33
+ "@zeltjs/redis": "0.8.0"
34
34
  },
35
35
  "peerDependenciesMeta": {
36
36
  "@zeltjs/redis": {
@@ -40,8 +40,9 @@
40
40
  "devDependencies": {
41
41
  "@types/node": "22.19.17",
42
42
  "ioredis": "5.10.1",
43
- "@zeltjs/core": "0.7.0",
44
- "@zeltjs/redis": "0.7.0"
43
+ "mitt": "3.0.1",
44
+ "@zeltjs/redis": "0.8.0",
45
+ "@zeltjs/core": "0.8.0"
45
46
  },
46
47
  "volta": {
47
48
  "extends": "../../package.json"
@@ -1 +0,0 @@
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"}
@@ -1,12 +0,0 @@
1
- import { n as EventBusSchema, t as EventBusAdaptor } from "./types-CLqE_rki.js";
2
-
3
- //#region src/adaptor-memory/memory-event-bus.adaptor.d.ts
4
- declare class MemoryEventBusAdaptor implements EventBusAdaptor {
5
- private readonly emitter;
6
- emit<K extends keyof EventBusSchema>(event: K, data: EventBusSchema[K]): Promise<void>;
7
- on<K extends keyof EventBusSchema>(event: K, handler: (data: EventBusSchema[K]) => void): () => void;
8
- once<K extends keyof EventBusSchema>(event: K, handler: (data: EventBusSchema[K]) => void): () => void;
9
- }
10
- //#endregion
11
- export { MemoryEventBusAdaptor as t };
12
- //# sourceMappingURL=index-CmcsSQcu.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-CmcsSQcu.d.ts","names":[],"sources":["../src/adaptor-memory/memory-event-bus.adaptor.ts"],"mappings":";;;cAMa,qBAAA,YAAiC,eAAA;EAAA,iBAC3B,OAAA;EAEX,IAAA,iBAAqB,cAAA,CAAA,CAAgB,KAAA,EAAO,CAAA,EAAG,IAAA,EAAM,cAAA,CAAe,CAAA,IAAK,OAAA;EAI/E,EAAA,iBAAmB,cAAA,CAAA,CACjB,KAAA,EAAO,CAAA,EACP,OAAA,GAAU,IAAA,EAAM,cAAA,CAAe,CAAA;EAMjC,IAAA,iBAAqB,cAAA,CAAA,CACnB,KAAA,EAAO,CAAA,EACP,OAAA,GAAU,IAAA,EAAM,cAAA,CAAe,CAAA;AAAA"}
@@ -1,10 +0,0 @@
1
- //#region src/types.d.ts
2
- interface EventBusSchema {}
3
- interface EventBusAdaptor {
4
- emit<K extends keyof EventBusSchema>(event: K, data: EventBusSchema[K]): Promise<void>;
5
- on<K extends keyof EventBusSchema>(event: K, handler: (data: EventBusSchema[K]) => void): () => void;
6
- once<K extends keyof EventBusSchema>(event: K, handler: (data: EventBusSchema[K]) => void): () => void;
7
- }
8
- //#endregion
9
- export { EventBusSchema as n, EventBusAdaptor as t };
10
- //# sourceMappingURL=types-CLqE_rki.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types-CLqE_rki.d.ts","names":[],"sources":["../src/types.ts"],"mappings":";UACiB,cAAA;AAAA,UAEA,eAAA;EACf,IAAA,iBAAqB,cAAA,EAAgB,KAAA,EAAO,CAAA,EAAG,IAAA,EAAM,cAAA,CAAe,CAAA,IAAK,OAAA;EACzE,EAAA,iBAAmB,cAAA,EACjB,KAAA,EAAO,CAAA,EACP,OAAA,GAAU,IAAA,EAAM,cAAA,CAAe,CAAA;EAEjC,IAAA,iBAAqB,cAAA,EACnB,KAAA,EAAO,CAAA,EACP,OAAA,GAAU,IAAA,EAAM,cAAA,CAAe,CAAA;AAAA"}