@daiso-tech/core 0.24.0 → 0.26.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 +3 -2
- package/dist/async/utilities/lazy-promise/lazy-promise.d.ts +12 -3
- package/dist/async/utilities/lazy-promise/lazy-promise.js +37 -4
- package/dist/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
- package/dist/cache/contracts/cache.contract.d.ts +4 -4
- package/dist/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +2 -2
- package/dist/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
- package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +4 -4
- package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
- package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +2 -2
- package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
- package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +5 -5
- package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
- package/dist/cache/implementations/derivables/cache/cache.d.ts +70 -184
- package/dist/cache/implementations/derivables/cache/cache.js +68 -185
- package/dist/cache/implementations/derivables/cache/cache.js.map +1 -1
- package/dist/cache/implementations/derivables/cache-factory/cache-factory.d.ts +11 -15
- package/dist/cache/implementations/derivables/cache-factory/cache-factory.js +0 -11
- package/dist/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
- package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js +5 -5
- package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
- package/dist/collection/implementations/iterable-collection/iterable-collection.js +5 -5
- package/dist/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
- package/dist/collection/implementations/list-collection/list-collection.js +5 -5
- package/dist/collection/implementations/list-collection/list-collection.js.map +1 -1
- package/dist/event-bus/contracts/_shared.d.ts +0 -7
- package/dist/event-bus/contracts/_shared.js.map +1 -1
- package/dist/event-bus/contracts/event-bus-adapter.contract.d.ts +6 -5
- package/dist/event-bus/contracts/event-bus.contract.d.ts +21 -16
- package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.d.ts +4 -3
- package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +3 -3
- package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
- package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.d.ts +4 -3
- package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -1
- package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.d.ts +4 -3
- package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +3 -3
- package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
- package/dist/event-bus/implementations/derivables/event-bus/event-bus.d.ts +64 -33
- package/dist/event-bus/implementations/derivables/event-bus/event-bus.js +92 -33
- package/dist/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
- package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js +957 -201
- package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js.map +1 -1
- package/dist/lock/contracts/lock-provider.contract.d.ts +2 -2
- package/dist/lock/contracts/lock.contract.d.ts +24 -6
- package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js +2 -2
- package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js.map +1 -1
- package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js +4 -4
- package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js.map +1 -1
- package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js +2 -2
- package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js.map +1 -1
- package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js +4 -4
- package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js.map +1 -1
- package/dist/lock/implementations/derivables/lock-provider/lock-provider.d.ts +90 -48
- package/dist/lock/implementations/derivables/lock-provider/lock-provider.js +67 -43
- package/dist/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -1
- package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.d.ts +4 -23
- package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js +8 -2
- package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js.map +1 -1
- package/dist/lock/implementations/derivables/lock-provider/lock.d.ts +744 -11
- package/dist/lock/implementations/derivables/lock-provider/lock.js +770 -3
- package/dist/lock/implementations/derivables/lock-provider/lock.js.map +1 -1
- package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.d.ts +36 -5
- package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js +10 -4
- package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -1
- package/dist/lock/implementations/test-utilities/lock-provider.test-suite.d.ts +1 -0
- package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js +417 -0
- package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js.map +1 -1
- package/dist/serde/implementations/derivables/serde.js +4 -4
- package/dist/serde/implementations/derivables/serde.js.map +1 -1
- package/dist/utilities/{constants.js → _constants.js} +1 -1
- package/dist/utilities/_constants.js.map +1 -0
- package/dist/utilities/_module-exports.d.ts +1 -1
- package/dist/utilities/_module-exports.js +1 -1
- package/dist/utilities/_module-exports.js.map +1 -1
- package/dist/utilities/contracts/_module.d.ts +0 -1
- package/dist/utilities/contracts/_module.js +0 -1
- package/dist/utilities/contracts/_module.js.map +1 -1
- package/dist/utilities/functions.d.ts +3 -7
- package/dist/utilities/functions.js +3 -10
- package/dist/utilities/functions.js.map +1 -1
- package/dist/utilities/pipeline/_module.d.ts +1 -0
- package/dist/utilities/pipeline/_module.js +2 -0
- package/dist/utilities/pipeline/_module.js.map +1 -0
- package/dist/utilities/pipeline/pipeline.d.ts +45 -0
- package/dist/utilities/pipeline/pipeline.js +75 -0
- package/dist/utilities/pipeline/pipeline.js.map +1 -0
- package/dist/utilities/time-span/time-span.d.ts +3 -12
- package/dist/utilities/time-span/time-span.js +3 -6
- package/dist/utilities/time-span/time-span.js.map +1 -1
- package/dist/utilities/types.d.ts +19 -2
- package/package.json +1 -1
- package/dist/utilities/constants.js.map +0 -1
- package/dist/utilities/contracts/buildable.contract.d.ts +0 -11
- package/dist/utilities/contracts/buildable.contract.js +0 -5
- package/dist/utilities/contracts/buildable.contract.js.map +0 -1
- /package/dist/utilities/{constants.d.ts → _constants.d.ts} +0 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { LazyPromise } from "../../../../async/_module-exports.js";
|
|
5
5
|
import { UnableToDispatchEventBusError, UnableToRemoveListenerEventBusError, UnableToAddListenerEventBusError, } from "../../../../event-bus/contracts/_module-exports.js";
|
|
6
|
-
import { getConstructorName,
|
|
6
|
+
import { getConstructorName, resolveOneOrMoreStr, } from "../../../../utilities/_module-exports.js";
|
|
7
7
|
/**
|
|
8
8
|
* <i>EventBus</i> class can be derived from any <i>{@link IEventBusAdapter}</i>.
|
|
9
9
|
*
|
|
@@ -16,6 +16,7 @@ export class EventBus {
|
|
|
16
16
|
backoffPolicy;
|
|
17
17
|
retryPolicy;
|
|
18
18
|
timeout;
|
|
19
|
+
listenerObjectMap = new Map();
|
|
19
20
|
/**
|
|
20
21
|
* @example
|
|
21
22
|
* ```ts
|
|
@@ -66,7 +67,7 @@ export class EventBus {
|
|
|
66
67
|
*/
|
|
67
68
|
withGroup(group) {
|
|
68
69
|
return new EventBus({
|
|
69
|
-
adapter: this.adapter.withGroup(
|
|
70
|
+
adapter: this.adapter.withGroup(resolveOneOrMoreStr(group)),
|
|
70
71
|
retryAttempts: this.retryAttempts,
|
|
71
72
|
backoffPolicy: this.backoffPolicy,
|
|
72
73
|
retryPolicy: this.retryPolicy,
|
|
@@ -92,6 +93,27 @@ export class EventBus {
|
|
|
92
93
|
getGroup() {
|
|
93
94
|
return this.adapter.getGroup();
|
|
94
95
|
}
|
|
96
|
+
ensureListenerObject(listener) {
|
|
97
|
+
let listenerFn = this.listenerObjectMap.get(listener);
|
|
98
|
+
if (listenerFn !== undefined) {
|
|
99
|
+
return listenerFn;
|
|
100
|
+
}
|
|
101
|
+
listenerFn = listener.invoke.bind(listener);
|
|
102
|
+
this.listenerObjectMap.set(listener, listenerFn);
|
|
103
|
+
return listenerFn;
|
|
104
|
+
}
|
|
105
|
+
resolveListener(listener) {
|
|
106
|
+
if (typeof listener === "function") {
|
|
107
|
+
return listener;
|
|
108
|
+
}
|
|
109
|
+
return this.ensureListenerObject(listener);
|
|
110
|
+
}
|
|
111
|
+
deleteListener(listener) {
|
|
112
|
+
if (typeof listener === "function") {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
this.listenerObjectMap.delete(listener);
|
|
116
|
+
}
|
|
95
117
|
/**
|
|
96
118
|
* @example
|
|
97
119
|
* ```ts
|
|
@@ -106,19 +128,21 @@ export class EventBus {
|
|
|
106
128
|
*
|
|
107
129
|
* class AddEvent extends BaseEvent<{ a: number, b: number }> {}
|
|
108
130
|
*
|
|
109
|
-
* const listener:
|
|
131
|
+
* const listener: Invokable<AddEvent> = event => {
|
|
110
132
|
* console.log(event);
|
|
111
133
|
* }
|
|
112
134
|
* await eventBus.addListener(AddEvent, listener);
|
|
135
|
+
* await eventBus.dispatch(new AddEvent({ a: 1, b: 2,}));
|
|
113
136
|
* ```
|
|
114
137
|
*/
|
|
115
138
|
addListener(event, listener) {
|
|
116
139
|
return this.createLayPromise(async () => {
|
|
140
|
+
const resolvedListener = this.resolveListener(listener);
|
|
117
141
|
try {
|
|
118
|
-
await this.adapter.addListener(event.name,
|
|
142
|
+
await this.adapter.addListener(event.name, resolvedListener);
|
|
119
143
|
}
|
|
120
144
|
catch (error) {
|
|
121
|
-
throw new UnableToAddListenerEventBusError(`A listener with name of "${
|
|
145
|
+
throw new UnableToAddListenerEventBusError(`A listener with name of "${resolvedListener.name}" could not added for "${String(event)}" event`, error);
|
|
122
146
|
}
|
|
123
147
|
});
|
|
124
148
|
}
|
|
@@ -136,19 +160,23 @@ export class EventBus {
|
|
|
136
160
|
*
|
|
137
161
|
* class AddEvent extends BaseEvent<{ a: number, b: number }> {}
|
|
138
162
|
*
|
|
139
|
-
* const listener:
|
|
163
|
+
* const listener: Invokable<AddEvent> = event => {
|
|
140
164
|
* console.log(event);
|
|
141
165
|
* }
|
|
166
|
+
* await eventBus.addListener(AddEvent, listener);
|
|
167
|
+
* await eventBus.dispatch(new AddEvent({ a: 1, b: 2,}));
|
|
142
168
|
* await eventBus.removeListener(AddEvent, listener);
|
|
143
169
|
* ```
|
|
144
170
|
*/
|
|
145
171
|
removeListener(event, listener) {
|
|
146
172
|
return this.createLayPromise(async () => {
|
|
173
|
+
const resolvedListener = this.resolveListener(listener);
|
|
147
174
|
try {
|
|
148
|
-
await this.adapter.removeListener(event.name,
|
|
175
|
+
await this.adapter.removeListener(event.name, resolvedListener);
|
|
176
|
+
this.deleteListener(listener);
|
|
149
177
|
}
|
|
150
178
|
catch (error) {
|
|
151
|
-
throw new UnableToRemoveListenerEventBusError(`A listener with name of "${
|
|
179
|
+
throw new UnableToRemoveListenerEventBusError(`A listener with name of "${resolvedListener.name}" could not removed of "${String(event)}" event`, error);
|
|
152
180
|
}
|
|
153
181
|
});
|
|
154
182
|
}
|
|
@@ -167,15 +195,19 @@ export class EventBus {
|
|
|
167
195
|
* class AddEvent extends BaseEvent<{ a: number, b: number }> {}
|
|
168
196
|
* class SubEvent extends BaseEvent<{ c: number, d: number }> {}
|
|
169
197
|
*
|
|
170
|
-
* const listener:
|
|
198
|
+
* const listener: Invokable<AddEvent | SubEvent> = event => {
|
|
171
199
|
* console.log(event)
|
|
172
200
|
* }
|
|
173
201
|
* await eventBus.addListenerMany([AddEvent, SubEvent], listener);
|
|
202
|
+
* await eventBus.dispatchMany([
|
|
203
|
+
* new AddEvent({ a: 1, b: 2 }),
|
|
204
|
+
* new SubEvent({ c: 1, d: 2 }),
|
|
205
|
+
* ]);
|
|
174
206
|
* ```
|
|
175
207
|
*/
|
|
176
208
|
addListenerMany(events, listener) {
|
|
177
209
|
return this.createLayPromise(async () => {
|
|
178
|
-
if (
|
|
210
|
+
if (events.length === 0) {
|
|
179
211
|
return;
|
|
180
212
|
}
|
|
181
213
|
const promises = [];
|
|
@@ -200,15 +232,20 @@ export class EventBus {
|
|
|
200
232
|
* class AddEvent extends BaseEvent<{ a: number, b: number }> {}
|
|
201
233
|
* class SubEvent extends BaseEvent<{ c: number, d: number }> {}
|
|
202
234
|
*
|
|
203
|
-
* const listener:
|
|
235
|
+
* const listener: Invokable<AddEvent | SubEvent> = event => {
|
|
204
236
|
* console.log(event);
|
|
205
237
|
* }
|
|
238
|
+
* await eventBus.addListenerMany([AddEvent, SubEvent], listener);
|
|
239
|
+
* await eventBus.dispatchMany([
|
|
240
|
+
* new AddEvent({ a: 1, b: 2 }),
|
|
241
|
+
* new SubEvent({ c: 1, d: 2 }),
|
|
242
|
+
* ]);
|
|
206
243
|
* await eventBus.removeListenerMany([AddEvent, SubEvent], listener);
|
|
207
244
|
* ```
|
|
208
245
|
*/
|
|
209
246
|
removeListenerMany(events, listener) {
|
|
210
247
|
return this.createLayPromise(async () => {
|
|
211
|
-
if (
|
|
248
|
+
if (events.length === 0) {
|
|
212
249
|
return;
|
|
213
250
|
}
|
|
214
251
|
const promises = [];
|
|
@@ -232,17 +269,19 @@ export class EventBus {
|
|
|
232
269
|
*
|
|
233
270
|
* class AddEvent extends BaseEvent<{ a: number, b: number }> {}
|
|
234
271
|
*
|
|
235
|
-
*
|
|
272
|
+
* await eventBus.listenOnce(AddEvent, event => {
|
|
236
273
|
* console.log(event);
|
|
237
|
-
* }
|
|
238
|
-
*
|
|
274
|
+
* });
|
|
275
|
+
*
|
|
276
|
+
* await eventBus.dispatch(new AddEvent({ a: 1, b: 2,}));
|
|
239
277
|
* ```
|
|
240
278
|
*/
|
|
241
279
|
listenOnce(event, listener) {
|
|
242
280
|
return this.createLayPromise(async () => {
|
|
243
281
|
const wrappedListener = async (event_) => {
|
|
244
282
|
try {
|
|
245
|
-
|
|
283
|
+
const resolvedListener = this.resolveListener(listener);
|
|
284
|
+
await resolvedListener(event_);
|
|
246
285
|
}
|
|
247
286
|
finally {
|
|
248
287
|
await this.removeListener(event, wrappedListener);
|
|
@@ -251,6 +290,34 @@ export class EventBus {
|
|
|
251
290
|
await this.addListener(event, wrappedListener);
|
|
252
291
|
});
|
|
253
292
|
}
|
|
293
|
+
/**
|
|
294
|
+
* @example
|
|
295
|
+
* ```ts
|
|
296
|
+
* import type { IGroupableEventBus } from "@daiso-tech/core/event-bus/contracts";
|
|
297
|
+
* import { EventBus } from "@daiso-tech/core/event-bus/implementations/derivables";
|
|
298
|
+
* import { MemoryEventBusAdapter } from "@daiso-tech/core/event-bus/implementations/adapters";
|
|
299
|
+
* import { BaseEvent, type Listener } from "@daiso-tech/core/event-bus/contracts";
|
|
300
|
+
*
|
|
301
|
+
* const eventBus: IGroupableEventBus = new EventBus({
|
|
302
|
+
* adapter: new MemoryEventBusAdapter({ rootGroup: "@global" })
|
|
303
|
+
* });
|
|
304
|
+
*
|
|
305
|
+
* class AddEvent extends BaseEvent<{ a: number, b: number }> {}
|
|
306
|
+
*
|
|
307
|
+
* eventBus.asPromise(AddEvent).then(event => {
|
|
308
|
+
* console.log(event);
|
|
309
|
+
* });
|
|
310
|
+
*
|
|
311
|
+
* await eventBus.dispatch(new AddEvent({ a: 1, b: 2,}));
|
|
312
|
+
* ```
|
|
313
|
+
*/
|
|
314
|
+
asPromise(event) {
|
|
315
|
+
return new LazyPromise(() => new Promise((resolve, reject) => {
|
|
316
|
+
this.listenOnce(event, resolve).then((event) => event,
|
|
317
|
+
// eslint-disable-next-line @typescript-eslint/use-unknown-in-catch-callback-variable
|
|
318
|
+
reject);
|
|
319
|
+
}));
|
|
320
|
+
}
|
|
254
321
|
/**
|
|
255
322
|
* @example
|
|
256
323
|
* ```ts
|
|
@@ -268,6 +335,7 @@ export class EventBus {
|
|
|
268
335
|
* const unsubscribe = await eventBus.subscribe(AddEvent, event => {
|
|
269
336
|
* console.log(event);
|
|
270
337
|
* });
|
|
338
|
+
* await eventBus.dispatch(new AddEvent({ a: 1, b: 2,}));
|
|
271
339
|
* await unsubscribe();
|
|
272
340
|
* ```
|
|
273
341
|
*/
|
|
@@ -292,6 +360,10 @@ export class EventBus {
|
|
|
292
360
|
* const unsubscribe = await eventBus.subscribeMany([AddEvent, SubEvent], event => {
|
|
293
361
|
* console.log(event);
|
|
294
362
|
* });
|
|
363
|
+
* await eventBus.dispatchMany([
|
|
364
|
+
* new AddEvent({ a: 1, b: 2 }),
|
|
365
|
+
* new SubEvent({ c: 1, d: 2 }),
|
|
366
|
+
* ]);
|
|
295
367
|
* await unsubscribe();
|
|
296
368
|
* ```
|
|
297
369
|
*/
|
|
@@ -321,15 +393,9 @@ export class EventBus {
|
|
|
321
393
|
* class AddEvent extends BaseEvent<{ a: number, b: number }> {}
|
|
322
394
|
* class SubEvent extends BaseEvent<{ c: number, d: number }> {}
|
|
323
395
|
*
|
|
324
|
-
* await eventBus.
|
|
325
|
-
* new AddEvent({
|
|
326
|
-
*
|
|
327
|
-
* b: 2,
|
|
328
|
-
* }),
|
|
329
|
-
* new SubEvent({
|
|
330
|
-
* c: 4,
|
|
331
|
-
* d: 3
|
|
332
|
-
* })
|
|
396
|
+
* await eventBus.dispatchMany([
|
|
397
|
+
* new AddEvent({ a: 1, b: 2 }),
|
|
398
|
+
* new SubEvent({ c: 1, d: 2 }),
|
|
333
399
|
* ]);
|
|
334
400
|
* ```
|
|
335
401
|
*/
|
|
@@ -360,15 +426,8 @@ export class EventBus {
|
|
|
360
426
|
* });
|
|
361
427
|
*
|
|
362
428
|
* class AddEvent extends BaseEvent<{ a: number, b: number }> {}
|
|
363
|
-
* class SubEvent extends BaseEvent<{ c: number, d: number }> {}
|
|
364
429
|
*
|
|
365
|
-
* await eventBus.dispatch(
|
|
366
|
-
* new AddEvent({
|
|
367
|
-
* a: 1,
|
|
368
|
-
* b: 2,
|
|
369
|
-
* })
|
|
370
|
-
* );
|
|
371
|
-
* ```
|
|
430
|
+
* await eventBus.dispatch(new AddEvent({ a: 1, b: 2,}));
|
|
372
431
|
* ```
|
|
373
432
|
*/
|
|
374
433
|
dispatch(event) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../../../../src/event-bus/implementations/derivables/event-bus/event-bus.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAMzD,OAAO,
|
|
1
|
+
{"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../../../../src/event-bus/implementations/derivables/event-bus/event-bus.ts"],"names":[],"mappings":"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"}
|