@daiso-tech/core 0.21.0 → 0.21.1

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.
Files changed (84) hide show
  1. package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js +13 -7
  2. package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  3. package/dist/cjs/cache/contracts/cache.events.js +8 -138
  4. package/dist/cjs/cache/contracts/cache.events.js.map +1 -1
  5. package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js +0 -19
  6. package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
  7. package/dist/cjs/cache/implementations/_shared/cache.test-suite.js +671 -0
  8. package/dist/cjs/cache/implementations/_shared/cache.test-suite.js.map +1 -1
  9. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +0 -20
  10. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
  11. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +0 -3
  12. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
  13. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +0 -4
  14. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  15. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +0 -23
  16. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  17. package/dist/cjs/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +0 -3
  18. package/dist/cjs/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -1
  19. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +0 -5
  20. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  21. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +0 -3
  22. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  23. package/dist/cjs/cache/implementations/derivables/cache/cache.js +3 -2
  24. package/dist/cjs/cache/implementations/derivables/cache/cache.js.map +1 -1
  25. package/dist/cjs/event-bus/contracts/_shared.js +3 -2
  26. package/dist/cjs/event-bus/contracts/_shared.js.map +1 -1
  27. package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +1 -12
  28. package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
  29. package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js +2 -24
  30. package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
  31. package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js +3 -0
  32. package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js.map +1 -1
  33. package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js +15 -0
  34. package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js.map +1 -1
  35. package/dist/esm/async/utilities/lazy-promise/lazy-promise.js +13 -7
  36. package/dist/esm/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  37. package/dist/esm/cache/contracts/cache.events.js +8 -138
  38. package/dist/esm/cache/contracts/cache.events.js.map +1 -1
  39. package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js +0 -19
  40. package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
  41. package/dist/esm/cache/implementations/_shared/cache.test-suite.js +672 -1
  42. package/dist/esm/cache/implementations/_shared/cache.test-suite.js.map +1 -1
  43. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +0 -20
  44. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
  45. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +0 -3
  46. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
  47. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +0 -4
  48. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  49. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +0 -23
  50. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  51. package/dist/esm/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +0 -3
  52. package/dist/esm/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -1
  53. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +0 -5
  54. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  55. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +0 -3
  56. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  57. package/dist/esm/cache/implementations/derivables/cache/cache.js +3 -2
  58. package/dist/esm/cache/implementations/derivables/cache/cache.js.map +1 -1
  59. package/dist/esm/event-bus/contracts/_shared.js +3 -2
  60. package/dist/esm/event-bus/contracts/_shared.js.map +1 -1
  61. package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +1 -12
  62. package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
  63. package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js +2 -24
  64. package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
  65. package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js +3 -0
  66. package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js.map +1 -1
  67. package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js +15 -0
  68. package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js.map +1 -1
  69. package/dist/types/cache/contracts/cache-adapter.contract.d.ts +0 -4
  70. package/dist/types/cache/contracts/cache.events.d.ts +16 -93
  71. package/dist/types/cache/implementations/_shared/cache.test-suite.d.ts +2 -2
  72. package/dist/types/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.d.ts +0 -1
  73. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.d.ts +0 -1
  74. package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +0 -1
  75. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +0 -1
  76. package/dist/types/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +0 -1
  77. package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +0 -1
  78. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +0 -1
  79. package/dist/types/event-bus/contracts/_shared.d.ts +3 -4
  80. package/dist/types/event-bus/contracts/event-bus-factory.contract.d.ts +4 -23
  81. package/dist/types/serde/contracts/flexible-serde.contract.d.ts +3 -2
  82. package/dist/types/serde/implementations/no-op-serde/no-op-serde.d.ts +2 -1
  83. package/dist/types/serde/implementations/super-json-serde/super-json-serde.d.ts +2 -1
  84. package/package.json +1 -1
@@ -17,29 +17,10 @@ export type IEventBusFactory<TAdapters extends string = string> = {
17
17
  * ```ts
18
18
  * import { type IEventBusFactory } from "@daiso-tech/core";
19
19
  *
20
- * type SerializedAddEvent = {
20
+ * class AddEvent extends BaseEvent<{
21
21
  * a: number;
22
22
  * b: number;
23
- * };
24
- *
25
- * class AddEvent extends BaseEvent<SerializedAddEvent> {
26
- * // This needed for adapters that need to deserialize like the redis dapter.
27
- * static override deserialize({ a, b }: SerializedAddEvent): AddEvent {
28
- * return new AddEvent(a, b);
29
- * }
30
- *
31
- * constructor(public readonly a: number, public readonly b: number) {
32
- * super();
33
- * }
34
- *
35
- * // This needed for adapters that need to serialize like the redis adapter.
36
- * override serialize(): SerializedAddEvent {
37
- * return {
38
- * a: this.a,
39
- * b: this.b
40
- * };
41
- * }
42
- * }
23
+ * }> {}
43
24
  *
44
25
  * // Asume the inputed eventFactory has registered both a memory and Redis IEventBusAdapter.
45
26
  * // The memory IEventBusAdapter adapter is the default.
@@ -47,11 +28,11 @@ export type IEventBusFactory<TAdapters extends string = string> = {
47
28
  * // Will dispatch envent using the default adapter
48
29
  * await eventBusFactory
49
30
  * .use()
50
- * .dispatch(new AddEvent(1, 2));
31
+ * .dispatch(new AddEvent({ a: 1, b: 2 }));
51
32
  * // Will dispatch envent using the redis addapter
52
33
  * await eventBusFactory
53
34
  * .use("redis")
54
- * .dispatch(new AddEvent(1, 2));
35
+ * .dispatch(new AddEvent({ a: 1, b: 2 }));
55
36
  * }
56
37
  * ```
57
38
  */
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import type { ISerializable } from "../../serde/contracts/serializable.contract";
5
5
  import type { ISerde } from "../../serde/contracts/serde.contract";
6
+ import type { BaseEvent } from "../../_module";
6
7
  /**
7
8
  * The <i>SerializableClass</i> contract defines standard way to make a class instance serializable and deserializable.
8
9
  * @group Contracts
@@ -12,10 +13,9 @@ export type SerializableClass<TSerializedValue> = {
12
13
  deserialize(serializedValue: TSerializedValue): ISerializable<TSerializedValue>;
13
14
  };
14
15
  /**
15
- * The <i>SerializableClass</i> contract defines standard way to make a error class instance serializable and deserializable.
16
16
  * @group Contracts
17
17
  */
18
- export type ErrorClass = new (...args: any[]) => Error;
18
+ export type SerializableEventClass<TFields extends Record<string, unknown>> = new (fields: any) => BaseEvent<TFields>;
19
19
  /**
20
20
  * @group Contracts
21
21
  */
@@ -30,6 +30,7 @@ export type ISerdeTransformer<TDeserializedValue, TSerializedValue> = {
30
30
  * @group Contracts
31
31
  */
32
32
  export type IFlexibleSerde<TSerializedValue = unknown> = ISerde<TSerializedValue> & {
33
+ registerEvent<TFields extends Record<string, unknown>>(eventClass: SerializableEventClass<TFields>): IFlexibleSerde<TSerializedValue>;
33
34
  /**
34
35
  * The <i>registerClass</i> method is used for registering custom class for serialization and deserialization.
35
36
  * The <i>class_</i> parameter must be of type <i>{@link SerializableClass}</i>.
@@ -1,12 +1,13 @@
1
1
  /**
2
2
  * @module EventBus
3
3
  */
4
- import type { IFlexibleSerde, ISerdeTransformer, SerializableClass } from "../../../serde/contracts/_module";
4
+ import type { SerializableEventClass, IFlexibleSerde, ISerdeTransformer, SerializableClass } from "../../../serde/contracts/_module";
5
5
  /**
6
6
  * This <i>NoOpSerde</i> will do nothing and is used for easily mocking {@link IFlexibleSerde} or {@link ISerde} for testing.
7
7
  * @group Adapters
8
8
  */
9
9
  export declare class NoOpSerde<TSerializedValue> implements IFlexibleSerde<TSerializedValue> {
10
+ registerEvent<TFields extends Record<string, unknown>>(_eventClass: SerializableEventClass<TFields>): IFlexibleSerde<TSerializedValue>;
10
11
  serialize<TValue>(value: TValue): TSerializedValue;
11
12
  deserialize<TValue>(serializedValue: TSerializedValue): TValue;
12
13
  registerClass<TSerializedClassInstance>(_class: SerializableClass<TSerializedClassInstance>): IFlexibleSerde<TSerializedValue>;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @module Serde
3
3
  */
4
- import type { ISerdeTransformer, SerializableClass } from "../../../serde/contracts/_module";
4
+ import type { SerializableEventClass, ISerdeTransformer, SerializableClass } from "../../../serde/contracts/_module";
5
5
  import { type IFlexibleSerde } from "../../../serde/contracts/_module";
6
6
  /**
7
7
  * The <i>SuperJsonSerde</i> class has direct support for the following values
@@ -41,6 +41,7 @@ export declare class SuperJsonSerde implements IFlexibleSerde<string> {
41
41
  private registerFloat64Array;
42
42
  private registerAll;
43
43
  registerClass<TSerializedClassInstance>(class_: SerializableClass<TSerializedClassInstance>): IFlexibleSerde<string>;
44
+ registerEvent<TFields extends Record<string, unknown>>(eventClass: SerializableEventClass<TFields>): IFlexibleSerde<string>;
44
45
  serialize<TValue>(value: TValue): string;
45
46
  deserialize<TValue>(value: string): TValue;
46
47
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@daiso-tech/core",
3
3
  "private": false,
4
- "version": "0.21.0",
4
+ "version": "0.21.1",
5
5
  "author": "Yousif Abdulkarim",
6
6
  "license": "Apache-2.0",
7
7
  "main": "./dist/cjs/_module.js",