@daiso-tech/core 0.16.0 → 0.19.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/dist/cjs/async/_module.js +1 -1
- package/dist/cjs/async/_module.js.map +1 -1
- package/dist/cjs/async/backof-policies/_module.js +1 -0
- package/dist/cjs/async/backof-policies/_module.js.map +1 -1
- package/dist/cjs/async/utilities/_module.js +3 -0
- package/dist/cjs/async/utilities/_module.js.map +1 -1
- package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js +16 -22
- package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
- package/dist/cjs/cache/contracts/cache.errors.js +19 -0
- package/dist/cjs/cache/contracts/cache.errors.js.map +1 -1
- package/dist/cjs/cache/contracts/cache.events.js +156 -0
- package/dist/cjs/cache/contracts/cache.events.js.map +1 -1
- package/dist/cjs/cache/implementations/_shared/_module.js +1 -0
- package/dist/cjs/cache/implementations/_shared/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
- package/dist/cjs/cache/implementations/_shared/cache.test-suite.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +7 -5
- package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/_module.js +2 -1
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +56 -0
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +18 -14
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/_module.js +1 -0
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +26 -0
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +11 -3
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/_module.js +2 -1
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +44 -0
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +21 -8
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js +1 -0
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +32 -0
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +27 -20
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js +1 -0
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +56 -0
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +19 -15
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/derivables/_module.js +3 -1
- package/dist/cjs/cache/implementations/derivables/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/derivables/cache-factory-settings.js +83 -0
- package/dist/cjs/cache/implementations/derivables/cache-factory-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/derivables/cache-factory.js +52 -18
- package/dist/cjs/cache/implementations/derivables/cache-factory.js.map +1 -1
- package/dist/cjs/cache/implementations/derivables/cache-settings.js +74 -0
- package/dist/cjs/cache/implementations/derivables/cache-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/derivables/cache.js +167 -93
- package/dist/cjs/cache/implementations/derivables/cache.js.map +1 -1
- package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js +1 -1
- package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js.map +1 -1
- package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js +1 -1
- package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js.map +1 -1
- package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js +1 -1
- package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js.map +1 -1
- package/dist/cjs/collection/implementations/async-iterable-collection/async-iterable-collection.js +20 -11
- package/dist/cjs/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
- package/dist/cjs/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
- package/dist/cjs/collection/implementations/list-collection/list-collection.js.map +1 -1
- package/dist/cjs/event-bus/contracts/_module.js +2 -2
- package/dist/cjs/event-bus/contracts/_module.js.map +1 -1
- package/dist/cjs/event-bus/contracts/_shared.js +7 -0
- package/dist/cjs/event-bus/contracts/_shared.js.map +1 -1
- package/dist/cjs/event-bus/contracts/event-bus.errors.js +19 -0
- package/dist/cjs/event-bus/contracts/event-bus.errors.js.map +1 -1
- package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +52 -36
- package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
- package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js +156 -120
- package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +2 -1
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -1
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +26 -0
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +1 -0
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +17 -9
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
- package/dist/cjs/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +3 -3
- package/dist/cjs/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -1
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js +2 -1
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -1
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +38 -0
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +1 -0
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +9 -5
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
- package/dist/cjs/event-bus/implementations/derivables/_module.js +3 -1
- package/dist/cjs/event-bus/implementations/derivables/_module.js.map +1 -1
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory-settings.js +71 -0
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory-settings.js.map +1 -0
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js +47 -18
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js.map +1 -1
- package/dist/cjs/event-bus/implementations/derivables/event-bus-settings.js +68 -0
- package/dist/cjs/event-bus/implementations/derivables/event-bus-settings.js.map +1 -0
- package/dist/cjs/event-bus/implementations/derivables/event-bus.js +102 -62
- package/dist/cjs/event-bus/implementations/derivables/event-bus.js.map +1 -1
- package/dist/cjs/serde/contracts/_module.js +4 -0
- package/dist/cjs/serde/contracts/_module.js.map +1 -1
- package/dist/cjs/serde/contracts/deserializer.contract.js +3 -0
- package/dist/cjs/serde/contracts/deserializer.contract.js.map +1 -0
- package/dist/cjs/serde/contracts/flexible-serde.contract.js +3 -0
- package/dist/cjs/serde/contracts/flexible-serde.contract.js.map +1 -0
- package/dist/cjs/serde/contracts/serializable.contract.js +3 -0
- package/dist/cjs/serde/contracts/serializable.contract.js.map +1 -0
- package/dist/cjs/serde/contracts/serializer.contract.js +3 -0
- package/dist/cjs/serde/contracts/serializer.contract.js.map +1 -0
- package/dist/cjs/serde/implementations/_module.js +1 -0
- package/dist/cjs/serde/implementations/_module.js.map +1 -1
- package/dist/cjs/serde/implementations/_shared/test-utilities/_module.js +1 -0
- package/dist/cjs/serde/implementations/_shared/test-utilities/_module.js.map +1 -1
- package/dist/cjs/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js +69 -0
- package/dist/cjs/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js.map +1 -0
- package/dist/cjs/serde/implementations/_shared/test-utilities/serde.test-suite.js +35 -60
- package/dist/cjs/serde/implementations/_shared/test-utilities/serde.test-suite.js.map +1 -1
- package/dist/cjs/serde/implementations/no-op-serde/_module.js +18 -0
- package/dist/cjs/serde/implementations/no-op-serde/_module.js.map +1 -0
- package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js +19 -0
- package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js.map +1 -0
- package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js +57 -111
- package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js.map +1 -1
- package/dist/cjs/utilities/contracts/_module.js +2 -0
- package/dist/cjs/utilities/contracts/_module.js.map +1 -1
- package/dist/cjs/utilities/contracts/buildable.contract.js +3 -0
- package/dist/cjs/utilities/contracts/buildable.contract.js.map +1 -0
- package/dist/cjs/utilities/contracts/serialized-error.contract.js +3 -0
- package/dist/cjs/utilities/contracts/serialized-error.contract.js.map +1 -0
- package/dist/cjs/utilities/errors.js +10 -10
- package/dist/cjs/utilities/errors.js.map +1 -1
- package/dist/cjs/utilities/functions.js +4 -0
- package/dist/cjs/utilities/functions.js.map +1 -1
- package/dist/cjs/utilities/time-span/time-span.js.map +1 -1
- package/dist/esm/async/_module.js +1 -1
- package/dist/esm/async/_module.js.map +1 -1
- package/dist/esm/async/backof-policies/_module.js +1 -0
- package/dist/esm/async/backof-policies/_module.js.map +1 -1
- package/dist/esm/async/utilities/_module.js +3 -0
- package/dist/esm/async/utilities/_module.js.map +1 -1
- package/dist/esm/async/utilities/lazy-promise/lazy-promise.js +16 -22
- package/dist/esm/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
- package/dist/esm/cache/contracts/cache.errors.js +19 -0
- package/dist/esm/cache/contracts/cache.errors.js.map +1 -1
- package/dist/esm/cache/contracts/cache.events.js +147 -0
- package/dist/esm/cache/contracts/cache.events.js.map +1 -1
- package/dist/esm/cache/implementations/_shared/_module.js +1 -0
- package/dist/esm/cache/implementations/_shared/_module.js.map +1 -1
- package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
- package/dist/esm/cache/implementations/_shared/cache.test-suite.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +7 -5
- package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js +2 -1
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +52 -0
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +1 -0
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +17 -13
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js +1 -0
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +22 -0
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +1 -0
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +11 -3
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js +2 -1
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +40 -0
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +1 -0
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +21 -8
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js +1 -0
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +28 -0
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +1 -0
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +28 -21
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js +1 -0
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +52 -0
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +1 -0
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +17 -13
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/derivables/_module.js +3 -1
- package/dist/esm/cache/implementations/derivables/_module.js.map +1 -1
- package/dist/esm/cache/implementations/derivables/cache-factory-settings.js +79 -0
- package/dist/esm/cache/implementations/derivables/cache-factory-settings.js.map +1 -0
- package/dist/esm/cache/implementations/derivables/cache-factory.js +53 -19
- package/dist/esm/cache/implementations/derivables/cache-factory.js.map +1 -1
- package/dist/esm/cache/implementations/derivables/cache-settings.js +70 -0
- package/dist/esm/cache/implementations/derivables/cache-settings.js.map +1 -0
- package/dist/esm/cache/implementations/derivables/cache.js +146 -72
- package/dist/esm/cache/implementations/derivables/cache.js.map +1 -1
- package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js +1 -1
- package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js.map +1 -1
- package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js +1 -1
- package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js.map +1 -1
- package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js +1 -1
- package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js.map +1 -1
- package/dist/esm/collection/implementations/async-iterable-collection/async-iterable-collection.js +20 -11
- package/dist/esm/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
- package/dist/esm/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
- package/dist/esm/collection/implementations/list-collection/list-collection.js.map +1 -1
- package/dist/esm/event-bus/contracts/_module.js +2 -2
- package/dist/esm/event-bus/contracts/_module.js.map +1 -1
- package/dist/esm/event-bus/contracts/_shared.js +5 -0
- package/dist/esm/event-bus/contracts/_shared.js.map +1 -1
- package/dist/esm/event-bus/contracts/event-bus.errors.js +19 -0
- package/dist/esm/event-bus/contracts/event-bus.errors.js.map +1 -1
- package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +45 -29
- package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
- package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js +143 -107
- package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +2 -1
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -1
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +22 -0
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +1 -0
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +17 -9
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
- package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +3 -3
- package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -1
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js +2 -1
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -1
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +34 -0
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +1 -0
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +10 -6
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
- package/dist/esm/event-bus/implementations/derivables/_module.js +3 -1
- package/dist/esm/event-bus/implementations/derivables/_module.js.map +1 -1
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory-settings.js +67 -0
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory-settings.js.map +1 -0
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js +48 -19
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js.map +1 -1
- package/dist/esm/event-bus/implementations/derivables/event-bus-settings.js +64 -0
- package/dist/esm/event-bus/implementations/derivables/event-bus-settings.js.map +1 -0
- package/dist/esm/event-bus/implementations/derivables/event-bus.js +104 -64
- package/dist/esm/event-bus/implementations/derivables/event-bus.js.map +1 -1
- package/dist/esm/serde/contracts/_module.js +4 -0
- package/dist/esm/serde/contracts/_module.js.map +1 -1
- package/dist/esm/serde/contracts/deserializer.contract.js +1 -0
- package/dist/esm/serde/contracts/deserializer.contract.js.map +1 -0
- package/dist/esm/serde/contracts/flexible-serde.contract.js +1 -0
- package/dist/esm/serde/contracts/flexible-serde.contract.js.map +1 -0
- package/dist/esm/serde/contracts/serializable.contract.js +1 -0
- package/dist/esm/serde/contracts/serializable.contract.js.map +1 -0
- package/dist/esm/serde/contracts/serializer.contract.js +1 -0
- package/dist/esm/serde/contracts/serializer.contract.js.map +1 -0
- package/dist/esm/serde/implementations/_module.js +1 -0
- package/dist/esm/serde/implementations/_module.js.map +1 -1
- package/dist/esm/serde/implementations/_shared/test-utilities/_module.js +1 -0
- package/dist/esm/serde/implementations/_shared/test-utilities/_module.js.map +1 -1
- package/dist/esm/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js +66 -0
- package/dist/esm/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js.map +1 -0
- package/dist/esm/serde/implementations/_shared/test-utilities/serde.test-suite.js +35 -60
- package/dist/esm/serde/implementations/_shared/test-utilities/serde.test-suite.js.map +1 -1
- package/dist/esm/serde/implementations/no-op-serde/_module.js +2 -0
- package/dist/esm/serde/implementations/no-op-serde/_module.js.map +1 -0
- package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js +15 -0
- package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js.map +1 -0
- package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js +57 -111
- package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js.map +1 -1
- package/dist/esm/utilities/contracts/_module.js +2 -0
- package/dist/esm/utilities/contracts/_module.js.map +1 -1
- package/dist/esm/utilities/contracts/buildable.contract.js +1 -0
- package/dist/esm/utilities/contracts/buildable.contract.js.map +1 -0
- package/dist/esm/utilities/contracts/serialized-error.contract.js +1 -0
- package/dist/esm/utilities/contracts/serialized-error.contract.js.map +1 -0
- package/dist/esm/utilities/errors.js +7 -7
- package/dist/esm/utilities/errors.js.map +1 -1
- package/dist/esm/utilities/functions.js +3 -0
- package/dist/esm/utilities/functions.js.map +1 -1
- package/dist/esm/utilities/time-span/time-span.js.map +1 -1
- package/dist/types/async/_module.d.ts +1 -1
- package/dist/types/async/backof-policies/_module.d.ts +1 -1
- package/dist/types/async/utilities/_module.d.ts +3 -0
- package/dist/types/async/utilities/lazy-promise/lazy-promise.d.ts +36 -46
- package/dist/types/cache/contracts/cache-factory.contract.d.ts +10 -23
- package/dist/types/cache/contracts/cache.contract.d.ts +365 -8
- package/dist/types/cache/contracts/cache.errors.d.ts +11 -4
- package/dist/types/cache/contracts/cache.events.d.ts +150 -38
- package/dist/types/cache/implementations/_shared/_module.d.ts +1 -0
- package/dist/types/cache/implementations/_shared/cache-adapter.test-suite.d.ts +10 -8
- package/dist/types/cache/implementations/_shared/cache.test-suite.d.ts +15 -9
- package/dist/types/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.d.ts +4 -3
- package/dist/types/cache/implementations/adapters/libsql-cache-adapter/_module.d.ts +2 -1
- package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.d.ts +48 -0
- package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.d.ts +49 -37
- package/dist/types/cache/implementations/adapters/memory-cache-adapter/_module.d.ts +1 -0
- package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.d.ts +27 -0
- package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +41 -17
- package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/_module.d.ts +2 -1
- package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.d.ts +51 -0
- package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +59 -45
- package/dist/types/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +1 -1
- package/dist/types/cache/implementations/adapters/redis-cache-adapter/_module.d.ts +1 -0
- package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.d.ts +32 -0
- package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +41 -26
- package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/_module.d.ts +1 -0
- package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.d.ts +48 -0
- package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +49 -37
- package/dist/types/cache/implementations/derivables/_module.d.ts +3 -1
- package/dist/types/cache/implementations/derivables/cache-factory-settings.d.ts +108 -0
- package/dist/types/cache/implementations/derivables/cache-factory.d.ts +67 -39
- package/dist/types/cache/implementations/derivables/cache-settings.d.ts +100 -0
- package/dist/types/cache/implementations/derivables/cache.d.ts +95 -36
- package/dist/types/collection/contracts/async-collection.contract.d.ts +1247 -666
- package/dist/types/collection/contracts/collection.contract.d.ts +1195 -638
- package/dist/types/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.d.ts +1 -1
- package/dist/types/collection/implementations/async-iterable-collection/async-iterable-collection.d.ts +190 -4
- package/dist/types/collection/implementations/iterable-collection/iterable-collection.d.ts +138 -1
- package/dist/types/collection/implementations/list-collection/list-collection.d.ts +138 -1
- package/dist/types/event-bus/contracts/_module.d.ts +2 -2
- package/dist/types/event-bus/contracts/_shared.d.ts +11 -0
- package/dist/types/event-bus/contracts/event-bus-adapter.contract.d.ts +4 -6
- package/dist/types/event-bus/contracts/event-bus-factory.contract.d.ts +37 -31
- package/dist/types/event-bus/contracts/event-bus.contract.d.ts +24 -32
- package/dist/types/event-bus/contracts/event-bus.errors.d.ts +8 -1
- package/dist/types/event-bus/implementations/_shared/event-bus-adapter.test-suite.d.ts +6 -3
- package/dist/types/event-bus/implementations/_shared/event-bus.test-suite.d.ts +10 -7
- package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/_module.d.ts +2 -1
- package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.d.ts +28 -0
- package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.d.ts +48 -22
- package/dist/types/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.d.ts +4 -4
- package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.d.ts +2 -1
- package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.d.ts +36 -0
- package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.d.ts +43 -31
- package/dist/types/event-bus/implementations/derivables/_module.d.ts +3 -1
- package/dist/types/event-bus/implementations/derivables/event-bus-factory-settings.d.ts +92 -0
- package/dist/types/event-bus/implementations/derivables/event-bus-factory.d.ts +43 -22
- package/dist/types/event-bus/implementations/derivables/event-bus-settings.d.ts +80 -0
- package/dist/types/event-bus/implementations/derivables/event-bus.d.ts +46 -22
- package/dist/types/serde/contracts/_module.d.ts +4 -0
- package/dist/types/serde/contracts/deserializer.contract.d.ts +13 -0
- package/dist/types/serde/contracts/flexible-serde.contract.d.ts +120 -0
- package/dist/types/serde/contracts/serde.contract.d.ts +5 -36
- package/dist/types/serde/contracts/serializable.contract.d.ts +10 -0
- package/dist/types/serde/contracts/serializer.contract.d.ts +10 -0
- package/dist/types/serde/implementations/_module.d.ts +1 -0
- package/dist/types/serde/implementations/_shared/test-utilities/_module.d.ts +1 -0
- package/dist/types/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.d.ts +17 -0
- package/dist/types/serde/implementations/_shared/test-utilities/serde.test-suite.d.ts +2 -3
- package/dist/types/serde/implementations/no-op-serde/_module.d.ts +1 -0
- package/dist/types/serde/implementations/no-op-serde/no-op-serde.d.ts +14 -0
- package/dist/types/serde/implementations/super-json-serde/super-json-serde.d.ts +23 -2
- package/dist/types/utilities/contracts/_module.d.ts +2 -0
- package/dist/types/utilities/contracts/buildable.contract.d.ts +9 -0
- package/dist/types/utilities/contracts/serialized-error.contract.d.ts +11 -0
- package/dist/types/utilities/errors.d.ts +3 -3
- package/dist/types/utilities/functions.d.ts +4 -0
- package/dist/types/utilities/time-span/time-span.d.ts +2 -2
- package/dist/types/utilities/types.d.ts +1 -2
- package/package.json +1 -1
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module EventBus
|
|
3
|
+
*/
|
|
4
|
+
import type { BackoffPolicy, RetryPolicy } from "../../../async/_module";
|
|
5
|
+
import type { IGroupableEventBus, IEventBusAdapter } from "../../../event-bus/contracts/_module";
|
|
6
|
+
import type { IFlexibleSerde } from "../../../serde/contracts/_module";
|
|
7
|
+
import type { OneOrMore, TimeSpan } from "../../../utilities/_module";
|
|
8
|
+
/**
|
|
9
|
+
* @group Derivables
|
|
10
|
+
*/
|
|
11
|
+
export type EventBusAdapters<TAdapters extends string = string> = Partial<Record<TAdapters, IEventBusAdapter>>;
|
|
12
|
+
/**
|
|
13
|
+
* The <i>EventBusFactorySettings</i> is an immutable builder class, meaning that each method invocation creates a new instance.
|
|
14
|
+
* @group Derivables
|
|
15
|
+
*/
|
|
16
|
+
export type EventBusFactorySettings<TAdapters extends string = string> = {
|
|
17
|
+
/**
|
|
18
|
+
* You can pass one or more <i>{@link IFlexibleSerde}</i> that will be used to register all <i>{@link IGroupableEventBus}</i> related errors.
|
|
19
|
+
* @default {true}
|
|
20
|
+
*/
|
|
21
|
+
serde: OneOrMore<IFlexibleSerde>;
|
|
22
|
+
/**
|
|
23
|
+
* If set to true, all <i>{@link IGroupableEventBus}</i> related errors will be registered with the specified <i>IFlexibleSerde</i> during constructor initialization.
|
|
24
|
+
* This ensures that all <i>{@link IGroupableEventBus}</i> related errors will be serialized correctly.
|
|
25
|
+
* @default {true}
|
|
26
|
+
*/
|
|
27
|
+
shouldRegisterErrors?: boolean;
|
|
28
|
+
adapters: EventBusAdapters<TAdapters>;
|
|
29
|
+
defaultAdapter?: NoInfer<TAdapters>;
|
|
30
|
+
/**
|
|
31
|
+
* In order to listen to events of <i>{@link Cache}</i> class you must pass in <i>{@link IGroupableEventBus}</i>.
|
|
32
|
+
*/
|
|
33
|
+
eventBus?: IGroupableEventBus<any>;
|
|
34
|
+
/**
|
|
35
|
+
* The default retry attempt to use in the returned <i>LazyPromise</i>.
|
|
36
|
+
* @default {null}
|
|
37
|
+
*/
|
|
38
|
+
retryAttempts?: number | null;
|
|
39
|
+
/**
|
|
40
|
+
* The default backof policy to use in the returned <i>LazyPromise</i>.
|
|
41
|
+
* @default {null}
|
|
42
|
+
*/
|
|
43
|
+
backoffPolicy?: BackoffPolicy | null;
|
|
44
|
+
/**
|
|
45
|
+
* The default retry policy to use in the returned <i>LazyPromise</i>.
|
|
46
|
+
* @default {null}
|
|
47
|
+
*/
|
|
48
|
+
retryPolicy?: RetryPolicy | null;
|
|
49
|
+
/**
|
|
50
|
+
* The default timeout to use in the returned <i>LazyPromise</i>.
|
|
51
|
+
* @default {null}
|
|
52
|
+
*/
|
|
53
|
+
timeout?: TimeSpan | null;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* The <i>EventBusFactorySettingsBuilder</i> is an immutable builder class, meaning that each method invocation creates a new instance.
|
|
57
|
+
* @group Derivables
|
|
58
|
+
*/
|
|
59
|
+
export declare class EventBusFactorySettingsBuilder<TSettings extends EventBusFactorySettings> {
|
|
60
|
+
private readonly settings;
|
|
61
|
+
constructor(settings?: TSettings);
|
|
62
|
+
setShouldRegisterErrors(shouldRegisterErrors: boolean): EventBusFactorySettingsBuilder<TSettings & {
|
|
63
|
+
shouldRegisterErrors: boolean;
|
|
64
|
+
}>;
|
|
65
|
+
setSerde(serde: OneOrMore<IFlexibleSerde>): EventBusFactorySettingsBuilder<TSettings & {
|
|
66
|
+
serde: OneOrMore<IFlexibleSerde>;
|
|
67
|
+
}>;
|
|
68
|
+
setEventBus(eventBus: IGroupableEventBus<any>): EventBusFactorySettingsBuilder<TSettings & {
|
|
69
|
+
eventBus: IGroupableEventBus<any>;
|
|
70
|
+
}>;
|
|
71
|
+
setRetryAttempts(attempts: number | null): EventBusFactorySettingsBuilder<TSettings & {
|
|
72
|
+
retryAttempts: number | null;
|
|
73
|
+
}>;
|
|
74
|
+
setBackoffPolicy(policy: BackoffPolicy | null): EventBusFactorySettingsBuilder<TSettings & {
|
|
75
|
+
backoffPolicy: BackoffPolicy | null;
|
|
76
|
+
}>;
|
|
77
|
+
setRetryPolicy(policy: RetryPolicy | null): EventBusFactorySettingsBuilder<TSettings & {
|
|
78
|
+
retryPolicy: RetryPolicy | null;
|
|
79
|
+
}>;
|
|
80
|
+
setTimeout(time: TimeSpan | null): EventBusFactorySettingsBuilder<TSettings & {
|
|
81
|
+
timeout: TimeSpan | null;
|
|
82
|
+
}>;
|
|
83
|
+
setAdapter<TName extends string>(name: TName, adapter: IEventBusAdapter): EventBusFactorySettingsBuilder<TSettings & {
|
|
84
|
+
adapters: {
|
|
85
|
+
readonly [x: string]: IEventBusAdapter | undefined;
|
|
86
|
+
};
|
|
87
|
+
}>;
|
|
88
|
+
setDefaultAdapter(adapter: string): EventBusFactorySettingsBuilder<TSettings & {
|
|
89
|
+
defaultAdapter: string;
|
|
90
|
+
}>;
|
|
91
|
+
build(this: EventBusFactorySettingsBuilder<EventBusFactorySettings>): EventBusFactorySettings;
|
|
92
|
+
}
|
|
@@ -1,19 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module EventBus
|
|
3
3
|
*/
|
|
4
|
-
import type { IGroupableEventBus,
|
|
5
|
-
|
|
6
|
-
* @group Derivables
|
|
7
|
-
*/
|
|
8
|
-
export type EventBusDrivers<TAdapters extends string = string> = Partial<Record<TAdapters, IEventBusAdapter>>;
|
|
9
|
-
/**
|
|
10
|
-
* @group Derivables
|
|
11
|
-
*/
|
|
12
|
-
export type EventBusFactorySettings<TAdapters extends string = string> = {
|
|
13
|
-
drivers: EventBusDrivers<TAdapters>;
|
|
14
|
-
defaultDriver?: NoInfer<TAdapters>;
|
|
15
|
-
rootGroup?: string;
|
|
16
|
-
};
|
|
4
|
+
import type { IGroupableEventBus, IEventBusFactory, BaseEvent } from "../../../event-bus/contracts/_module";
|
|
5
|
+
import { type EventBusFactorySettings, EventBusFactorySettingsBuilder } from "../../../event-bus/implementations/derivables/event-bus-factory-settings";
|
|
17
6
|
/**
|
|
18
7
|
* @group Derivables
|
|
19
8
|
* @example
|
|
@@ -22,22 +11,54 @@ export type EventBusFactorySettings<TAdapters extends string = string> = {
|
|
|
22
11
|
* import Redis from "ioredis"
|
|
23
12
|
*
|
|
24
13
|
* const eventBusFactory = new EventBusFactory({
|
|
25
|
-
*
|
|
26
|
-
* memory: new MemoryEventBusAdapter(),
|
|
14
|
+
* adapters: {
|
|
15
|
+
* memory: new MemoryEventBusAdapter({ rootGroup: "@global" }),
|
|
27
16
|
* redis: new RedisPubSubEventBusAdapter({
|
|
28
17
|
* dispatcherClient: new Redis(),
|
|
29
18
|
* listenerClient: new Redis(),
|
|
19
|
+
* serde: new SuperJsonSerde(),
|
|
20
|
+
* rootGroup: "@global"
|
|
30
21
|
* }),
|
|
31
22
|
* },
|
|
32
|
-
*
|
|
23
|
+
* defaultAdapter: "memory",
|
|
33
24
|
* });
|
|
34
25
|
* ```
|
|
35
26
|
*/
|
|
36
|
-
export declare class EventBusFactory<TAdapters extends string = string
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
27
|
+
export declare class EventBusFactory<TAdapters extends string = string> implements IEventBusFactory<TAdapters> {
|
|
28
|
+
/**
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* import { EventBusFactory, SuperJsonSerde. MemoryEventBusAdapter, RedisPubSubEventBusAdapter, EventBus, MemoryEventBusAdapter } from "@daiso-tech/core";
|
|
32
|
+
* import Redis from "ioredis";
|
|
33
|
+
*
|
|
34
|
+
* const cacheFactory = new EventBusFactory(
|
|
35
|
+
* EventBusFactory
|
|
36
|
+
* .settings()
|
|
37
|
+
* .setAdapter("memory", new MemoryEventBusAdapter({
|
|
38
|
+
* rootGroup: "@global"
|
|
39
|
+
* }))
|
|
40
|
+
* .setAdapter("redis", new RedisPubSubEventBusAdapter({
|
|
41
|
+
* dispatcherClient: new Redis("YOUR_REDIS_CONNECTION"),
|
|
42
|
+
* listenerClient: new Redis("YOUR_REDIS_CONNECTION")
|
|
43
|
+
* serde: new SuperJsonSerde(),
|
|
44
|
+
* rootGroup: "@global"
|
|
45
|
+
* }))
|
|
46
|
+
* .setDefaultAdapter("memory")
|
|
47
|
+
* .build()
|
|
48
|
+
* );
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
static settings<TAdapters extends string, TSettings extends EventBusFactorySettings<TAdapters>>(): EventBusFactorySettingsBuilder<TSettings>;
|
|
52
|
+
private readonly eventBuses;
|
|
53
|
+
private readonly serde;
|
|
54
|
+
private readonly adapters;
|
|
55
|
+
private readonly defaultAdapter?;
|
|
56
|
+
private readonly retryAttempts?;
|
|
57
|
+
private readonly backoffPolicy?;
|
|
58
|
+
private readonly retryPolicy?;
|
|
59
|
+
private readonly timeout?;
|
|
60
|
+
private readonly shouldRegisterErrors?;
|
|
40
61
|
constructor(settings: EventBusFactorySettings<TAdapters>);
|
|
41
|
-
|
|
42
|
-
|
|
62
|
+
private initCaches;
|
|
63
|
+
use<TEvents extends BaseEvent = BaseEvent>(adapterName?: TAdapters | undefined): IGroupableEventBus<TEvents>;
|
|
43
64
|
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module EventBus
|
|
3
|
+
*/
|
|
4
|
+
import type { BackoffPolicy, RetryPolicy } from "../../../async/_module";
|
|
5
|
+
import { type IGroupableEventBus, type IEventBusAdapter } from "../../../event-bus/contracts/_module";
|
|
6
|
+
import type { IFlexibleSerde } from "../../../serde/contracts/_module";
|
|
7
|
+
import type { IBuildable, OneOrMore, TimeSpan } from "../../../utilities/_module";
|
|
8
|
+
/**
|
|
9
|
+
* @group Derivables
|
|
10
|
+
*/
|
|
11
|
+
export type EventBusSettings = {
|
|
12
|
+
/**
|
|
13
|
+
* You can pass one or more <i>{@link IFlexibleSerde}</i> that will be used to register all <i>{@link IGroupableEventBus}</i> related errors.
|
|
14
|
+
* @default {true}
|
|
15
|
+
*/
|
|
16
|
+
serde: OneOrMore<IFlexibleSerde>;
|
|
17
|
+
/**
|
|
18
|
+
* If set to true, all <i>{@link IGroupableEventBus}</i> related errors will be registered with the specified <i>IFlexibleSerde</i> during constructor initialization.
|
|
19
|
+
* This ensures that all <i>{@link IGroupableEventBus}</i> related errors will be serialized correctly.
|
|
20
|
+
* @default {true}
|
|
21
|
+
*/
|
|
22
|
+
shouldRegisterErrors?: boolean;
|
|
23
|
+
adapter: IEventBusAdapter;
|
|
24
|
+
/**
|
|
25
|
+
* The default retry attempt to use in the returned <i>LazyPromise</i>.
|
|
26
|
+
* @default {null}
|
|
27
|
+
*/
|
|
28
|
+
retryAttempts?: number | null;
|
|
29
|
+
/**
|
|
30
|
+
* The default backof policy to use in the returned <i>LazyPromise</i>.
|
|
31
|
+
* @default {null}
|
|
32
|
+
*/
|
|
33
|
+
backoffPolicy?: BackoffPolicy | null;
|
|
34
|
+
/**
|
|
35
|
+
* The default retry policy to use in the returned <i>LazyPromise</i>.
|
|
36
|
+
* @default {null}
|
|
37
|
+
*/
|
|
38
|
+
retryPolicy?: RetryPolicy | null;
|
|
39
|
+
/**
|
|
40
|
+
* The default timeout to use in the returned <i>LazyPromise</i>.
|
|
41
|
+
* @default {null}
|
|
42
|
+
*/
|
|
43
|
+
timeout?: TimeSpan | null;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* The <i>EventBusSettingsBuilder</i> is an immutable builder class, meaning that each method invocation creates a new instance.
|
|
47
|
+
* @group Derivables
|
|
48
|
+
*/
|
|
49
|
+
export declare class EventBusSettingsBuilder<TSettings extends Partial<EventBusSettings>> implements IBuildable<EventBusSettings> {
|
|
50
|
+
private readonly settings;
|
|
51
|
+
constructor(settings?: TSettings);
|
|
52
|
+
setShouldRegisterErrors(shouldRegisterErrors: boolean): EventBusSettingsBuilder<TSettings & {
|
|
53
|
+
shouldRegisterErrors: boolean;
|
|
54
|
+
}>;
|
|
55
|
+
setSerde(serde: OneOrMore<IFlexibleSerde>): EventBusSettingsBuilder<TSettings & {
|
|
56
|
+
serde: OneOrMore<IFlexibleSerde>;
|
|
57
|
+
}>;
|
|
58
|
+
setAdapter(adapter: IEventBusAdapter): EventBusSettingsBuilder<TSettings & {
|
|
59
|
+
adapter: IEventBusAdapter;
|
|
60
|
+
}>;
|
|
61
|
+
setEventBus(eventBus: IGroupableEventBus<any>): EventBusSettingsBuilder<TSettings & {
|
|
62
|
+
eventBus: IGroupableEventBus<any>;
|
|
63
|
+
}>;
|
|
64
|
+
setDefultTtl(time: TimeSpan): EventBusSettingsBuilder<TSettings & {
|
|
65
|
+
defaultTtl: TimeSpan;
|
|
66
|
+
}>;
|
|
67
|
+
setRetryAttempts(attempts: number | null): EventBusSettingsBuilder<TSettings & {
|
|
68
|
+
retryAttempts: number | null;
|
|
69
|
+
}>;
|
|
70
|
+
setBackoffPolicy(policy: BackoffPolicy | null): EventBusSettingsBuilder<TSettings & {
|
|
71
|
+
backoffPolicy: BackoffPolicy | null;
|
|
72
|
+
}>;
|
|
73
|
+
setRetryPolicy(policy: RetryPolicy | null): EventBusSettingsBuilder<TSettings & {
|
|
74
|
+
retryPolicy: RetryPolicy | null;
|
|
75
|
+
}>;
|
|
76
|
+
setTimeout(time: TimeSpan | null): EventBusSettingsBuilder<TSettings & {
|
|
77
|
+
timeout: TimeSpan | null;
|
|
78
|
+
}>;
|
|
79
|
+
build(this: EventBusSettingsBuilder<EventBusSettings>): EventBusSettings;
|
|
80
|
+
}
|
|
@@ -1,35 +1,59 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module EventBus
|
|
3
3
|
*/
|
|
4
|
-
import type { LazyPromiseSettings } from "../../../async/_module";
|
|
5
4
|
import { LazyPromise } from "../../../async/_module";
|
|
6
|
-
import type {
|
|
7
|
-
import { type IEventBus, type IGroupableEventBus, type
|
|
5
|
+
import type { EventClass, EventInstance, Unsubscribe } from "../../../event-bus/contracts/_module";
|
|
6
|
+
import { type IEventBus, type IGroupableEventBus, type Listener, type BaseEvent, RemoveListenerEventBusError, AddListenerEventBusError, UnexpectedEventBusError, EventBusError } from "../../../event-bus/contracts/_module";
|
|
8
7
|
import type { OneOrMore } from "../../../utilities/_module";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
*/
|
|
12
|
-
export type EventBusSettings = {
|
|
13
|
-
lazyPromiseSettings?: LazyPromiseSettings;
|
|
14
|
-
};
|
|
8
|
+
import type { EventBusSettings } from "../../../event-bus/implementations/derivables/event-bus-settings";
|
|
9
|
+
import { EventBusSettingsBuilder } from "../../../event-bus/implementations/derivables/event-bus-settings";
|
|
15
10
|
/**
|
|
16
11
|
* <i>EventBus</i> class can be derived from any <i>{@link IEventBusAdapter}</i>.
|
|
17
12
|
* @group Derivables
|
|
18
13
|
*/
|
|
19
|
-
export declare class EventBus<TEvents extends
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
14
|
+
export declare class EventBus<TEvents extends BaseEvent = BaseEvent> implements IGroupableEventBus<TEvents> {
|
|
15
|
+
static readonly errors: {
|
|
16
|
+
readonly Error: typeof EventBusError;
|
|
17
|
+
readonly Unexpected: typeof UnexpectedEventBusError;
|
|
18
|
+
readonly RemoveListener: typeof RemoveListenerEventBusError;
|
|
19
|
+
readonly AddListener: typeof AddListenerEventBusError;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* import { EventBus, MemoryEventBusAdapter } from "@daiso-tech/core";
|
|
25
|
+
*
|
|
26
|
+
* const cache = new EventBus(
|
|
27
|
+
* EventBus
|
|
28
|
+
* .settings()
|
|
29
|
+
* .setAdapter(new MemoryEventBusAdapter({ rootGroup: "@global" }))
|
|
30
|
+
* .build()
|
|
31
|
+
* );
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
static settings<TSettings extends Partial<EventBusSettings>>(): EventBusSettingsBuilder<TSettings>;
|
|
35
|
+
private readonly serde;
|
|
36
|
+
private readonly adapter;
|
|
37
|
+
private readonly retryAttempts;
|
|
38
|
+
private readonly backoffPolicy;
|
|
39
|
+
private readonly retryPolicy;
|
|
40
|
+
private readonly timeout;
|
|
41
|
+
private readonly shouldRegisterErrors;
|
|
42
|
+
constructor(settings: EventBusSettings);
|
|
43
|
+
/**
|
|
44
|
+
* Registers all event bus related error within the given <i>IFlexibleSerde</i> contract.
|
|
45
|
+
*/
|
|
46
|
+
private registerErrors;
|
|
23
47
|
private createLayPromise;
|
|
24
48
|
withGroup(group: OneOrMore<string>): IEventBus<TEvents>;
|
|
25
49
|
getGroup(): string;
|
|
26
|
-
addListener<
|
|
27
|
-
removeListener<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
50
|
+
addListener<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
51
|
+
removeListener<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
52
|
+
addListenerMany<TEventClass extends EventClass<TEvents>>(events: TEventClass[], listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
53
|
+
removeListenerMany<TEventClass extends EventClass<TEvents>>(events: TEventClass[], listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
54
|
+
listenOnce<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
55
|
+
subscribe<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<Unsubscribe>;
|
|
56
|
+
subscribeMany<TEventClass extends EventClass<TEvents>>(events: TEventClass[], listener: Listener<EventInstance<TEventClass>>): LazyPromise<Unsubscribe>;
|
|
57
|
+
dispatchMany(events: TEvents[]): LazyPromise<void>;
|
|
58
|
+
dispatch(event: TEvents): LazyPromise<void>;
|
|
35
59
|
}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
+
export * from "../../serde/contracts/deserializer.contract";
|
|
2
|
+
export * from "../../serde/contracts/flexible-serde.contract";
|
|
1
3
|
export * from "../../serde/contracts/serde.contract";
|
|
2
4
|
export * from "../../serde/contracts/serde.errors";
|
|
5
|
+
export * from "../../serde/contracts/serializable.contract";
|
|
6
|
+
export * from "../../serde/contracts/serializer.contract";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Serde
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* The <i>IDeserializer</i> contract defines a standard way to deserialize plain data, excluding support for custom classes.
|
|
6
|
+
* @group Contracts
|
|
7
|
+
*/
|
|
8
|
+
export type IDeserializer<TSerializedValue = unknown> = {
|
|
9
|
+
/**
|
|
10
|
+
* @throws {DeserializationError} {@link DeserializationError}
|
|
11
|
+
*/
|
|
12
|
+
deserialize<TValue>(serializedValue: TSerializedValue): TValue;
|
|
13
|
+
};
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Serde
|
|
3
|
+
*/
|
|
4
|
+
import type { ISerializable } from "../../serde/contracts/serializable.contract";
|
|
5
|
+
import type { ISerde } from "../../serde/contracts/serde.contract";
|
|
6
|
+
/**
|
|
7
|
+
* The <i>SerializableClass</i> contract defines standard way to make a class instance serializable and deserializable.
|
|
8
|
+
* @group Contracts
|
|
9
|
+
*/
|
|
10
|
+
export type SerializableClass<TSerializedValue> = {
|
|
11
|
+
new (...arguments_: any[]): ISerializable<TSerializedValue>;
|
|
12
|
+
deserialize(serializedValue: TSerializedValue): ISerializable<TSerializedValue>;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* The <i>SerializableClass</i> contract defines standard way to make a error class instance serializable and deserializable.
|
|
16
|
+
* @group Contracts
|
|
17
|
+
*/
|
|
18
|
+
export type ErrorClass = new (...args: any[]) => Error;
|
|
19
|
+
/**
|
|
20
|
+
* @group Contracts
|
|
21
|
+
*/
|
|
22
|
+
export type ISerdeTransformer<TDeserializedValue, TSerializedValue> = {
|
|
23
|
+
name: string;
|
|
24
|
+
isApplicable(value: unknown): value is TDeserializedValue;
|
|
25
|
+
deserialize(serializedValue: TSerializedValue): TDeserializedValue;
|
|
26
|
+
serialize(deserializedValue: TDeserializedValue): TSerializedValue;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* The <i>IFlexibleSerde</i> contract defines a standard way to serialize and deserialize both plain data and custom classes.
|
|
30
|
+
* @group Contracts
|
|
31
|
+
*/
|
|
32
|
+
export type IFlexibleSerde<TSerializedValue = unknown> = ISerde<TSerializedValue> & {
|
|
33
|
+
/**
|
|
34
|
+
* The <i>registerClass</i> method is used for registering custom class for serialization and deserialization.
|
|
35
|
+
* The <i>class_</i> parameter must be of type <i>{@link SerializableClass}</i>.
|
|
36
|
+
* @example
|
|
37
|
+
* ```ts
|
|
38
|
+
* import type { IFlexibleSerde } from "@daiso-tech/core";
|
|
39
|
+
*
|
|
40
|
+
* type SerializedUser = {
|
|
41
|
+
* name: string;
|
|
42
|
+
* age: number;
|
|
43
|
+
* };
|
|
44
|
+
*
|
|
45
|
+
* class User implements ISerializable<SerializedUser> {
|
|
46
|
+
* static deserialize(serializedUser: SerializedUser): User {
|
|
47
|
+
* return new User(serializedUser.name, serializedUser.age);
|
|
48
|
+
* }
|
|
49
|
+
*
|
|
50
|
+
* constructor(public readonly name: string, public readonly age: number) {}
|
|
51
|
+
*
|
|
52
|
+
* getInfo(): string {
|
|
53
|
+
* return `name: ${this.name}, age: ${this.age}`;
|
|
54
|
+
* }
|
|
55
|
+
* }
|
|
56
|
+
*
|
|
57
|
+
* function main(serde: IFlexibleSerde) {
|
|
58
|
+
* // You must register the class before trying to serialize or deserialize it.
|
|
59
|
+
* serde.registerClass(User);
|
|
60
|
+
*
|
|
61
|
+
* const user = serde.deserialize(serde.serialize(new User("Jacob", 50)));
|
|
62
|
+
*
|
|
63
|
+
* console.log(user.getInfo());
|
|
64
|
+
* // "name: Jacob, age: 50"
|
|
65
|
+
* }
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
registerClass<TSerializedClassInstance>(class_: SerializableClass<TSerializedClassInstance>): IFlexibleSerde<TSerializedValue>;
|
|
69
|
+
/**
|
|
70
|
+
* The <i>registerCustom</i> method is used for registering custom values for serialization and deserialization.
|
|
71
|
+
* @example
|
|
72
|
+
* ```ts
|
|
73
|
+
* import type { IFlexibleSerde, ISerdeTransformer } from "@daiso-tech/core";
|
|
74
|
+
*
|
|
75
|
+
* type SerializedUser = {
|
|
76
|
+
* name: string;
|
|
77
|
+
* age: number;
|
|
78
|
+
* };
|
|
79
|
+
*
|
|
80
|
+
* class User implements ISerializable<SerializedUser> {
|
|
81
|
+
* static deserialize(serializedUser: SerializedUser): User {
|
|
82
|
+
* return new User(serializedUser.name, serializedUser.age);
|
|
83
|
+
* }
|
|
84
|
+
*
|
|
85
|
+
* constructor(public readonly name: string, public readonly age: number) {}
|
|
86
|
+
*
|
|
87
|
+
* getInfo(): string {
|
|
88
|
+
* return `name: ${this.name}, age: ${this.age}`;
|
|
89
|
+
* }
|
|
90
|
+
* }
|
|
91
|
+
*
|
|
92
|
+
* const transformer: ISerdeTransformer<User, SerializedUser> = {
|
|
93
|
+
* name: User.name,
|
|
94
|
+
* isApplicable(value): value is User {
|
|
95
|
+
* return (
|
|
96
|
+
* value instanceof User &&
|
|
97
|
+
* value.constructor.name === User.name
|
|
98
|
+
* );
|
|
99
|
+
* },
|
|
100
|
+
* deserialize(serializedValue) {
|
|
101
|
+
* return User.deserialize(serializedValue);
|
|
102
|
+
* },
|
|
103
|
+
* serialize(deserializedValue) {
|
|
104
|
+
* return deserializedValue.serialize();
|
|
105
|
+
* }
|
|
106
|
+
* }
|
|
107
|
+
*
|
|
108
|
+
* function main(serde: IFlexibleSerde) {
|
|
109
|
+
* // You must register the transformer is it will get applied.
|
|
110
|
+
* serde.registerCustom(transformer);
|
|
111
|
+
*
|
|
112
|
+
* const user = serde.deserialize(serde.serialize(new User("Jacob", 50)));
|
|
113
|
+
*
|
|
114
|
+
* console.log(user.getInfo());
|
|
115
|
+
* // "name: Jacob, age: 50"
|
|
116
|
+
* }
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
registerCustom<TCustomSerialized, TCustomDeserialized>(transformer: ISerdeTransformer<TCustomSerialized, TCustomDeserialized>): IFlexibleSerde<TSerializedValue>;
|
|
120
|
+
};
|
|
@@ -1,41 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @
|
|
3
|
-
*/
|
|
4
|
-
export type ISerializer<TSerializedValue = unknown> = {
|
|
5
|
-
/**
|
|
6
|
-
* @throws {SerializationError} {@link SerializationError}
|
|
7
|
-
*/
|
|
8
|
-
serialize<TValue>(value: TValue): TSerializedValue;
|
|
9
|
-
};
|
|
10
|
-
/**
|
|
11
|
-
* @group Contracts
|
|
12
|
-
*/
|
|
13
|
-
export type IDeserde<TSerializedValue = unknown> = {
|
|
14
|
-
/**
|
|
15
|
-
* @throws {DeserializationError} {@link DeserializationError}
|
|
16
|
-
*/
|
|
17
|
-
deserialize<TValue>(serializedValue: TSerializedValue): TValue;
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* @group Contracts
|
|
21
|
-
*/
|
|
22
|
-
export type ISerde<TSerializedValue = unknown> = ISerializer<TSerializedValue> & IDeserde<TSerializedValue>;
|
|
23
|
-
/**
|
|
24
|
-
* @group Contracts
|
|
25
|
-
*/
|
|
26
|
-
export type ISerializable<TSerializedValue> = {
|
|
27
|
-
serialize(): TSerializedValue;
|
|
28
|
-
};
|
|
29
|
-
/**
|
|
30
|
-
* @group Contracts
|
|
2
|
+
* @module Serde
|
|
31
3
|
*/
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
deserialize(serializedValue: TSerializedValue): ISerializable<TSerializedValue>;
|
|
35
|
-
};
|
|
4
|
+
import type { ISerializer } from "../../serde/contracts/serializer.contract";
|
|
5
|
+
import type { IDeserializer } from "../../serde/contracts/deserializer.contract";
|
|
36
6
|
/**
|
|
7
|
+
* The <i>ISerde</i> contract defines a standard way to serialize and deserialize plain data, excluding support for custom classes.
|
|
37
8
|
* @group Contracts
|
|
38
9
|
*/
|
|
39
|
-
export type
|
|
40
|
-
registerClass<TSerializedValue>(class_: SerializableClass<TSerializedValue>): void;
|
|
41
|
-
};
|
|
10
|
+
export type ISerde<TSerializedValue = unknown> = ISerializer<TSerializedValue> & IDeserializer<TSerializedValue>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The <i>ISerializer</i> contract defines a standard way to serialize plain data, excluding support for custom classes.
|
|
3
|
+
* @group Contracts
|
|
4
|
+
*/
|
|
5
|
+
export type ISerializer<TSerializedValue = unknown> = {
|
|
6
|
+
/**
|
|
7
|
+
* @throws {SerializationError} {@link SerializationError}
|
|
8
|
+
*/
|
|
9
|
+
serialize<TValue>(value: TValue): TSerializedValue;
|
|
10
|
+
};
|
|
@@ -3,3 +3,4 @@ export * from "../../serde/implementations/mongodb-serde/_module";
|
|
|
3
3
|
export * from "../../serde/implementations/redis-serde/_module";
|
|
4
4
|
export * from "../../serde/implementations/sql-serde/_module";
|
|
5
5
|
export * from "../../serde/implementations/super-json-serde/_module";
|
|
6
|
+
export * from "../../serde/implementations/no-op-serde/_module";
|
package/dist/types/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Serde
|
|
3
|
+
*/
|
|
4
|
+
import { type TestAPI, type ExpectStatic } from "vitest";
|
|
5
|
+
import type { IFlexibleSerde } from "../../../../serde/contracts/_module";
|
|
6
|
+
/**
|
|
7
|
+
* @group Utilities
|
|
8
|
+
*/
|
|
9
|
+
export type FlexibleSerdeSuiteSettings = {
|
|
10
|
+
expect: ExpectStatic;
|
|
11
|
+
test: TestAPI;
|
|
12
|
+
createAdapter: () => IFlexibleSerde;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* @group Utilities
|
|
16
|
+
*/
|
|
17
|
+
export declare function flexibleSerdeTestSuite(settings: FlexibleSerdeSuiteSettings): void;
|
|
@@ -2,15 +2,14 @@
|
|
|
2
2
|
* @module Serde
|
|
3
3
|
*/
|
|
4
4
|
import { type TestAPI, type ExpectStatic } from "vitest";
|
|
5
|
-
import {
|
|
6
|
-
import { type Promisable } from "../../../../utilities/_module";
|
|
5
|
+
import type { ISerde } from "../../../../serde/contracts/_module";
|
|
7
6
|
/**
|
|
8
7
|
* @group Utilities
|
|
9
8
|
*/
|
|
10
9
|
export type SerdeSuiteSettings = {
|
|
11
10
|
expect: ExpectStatic;
|
|
12
11
|
test: TestAPI;
|
|
13
|
-
createAdapter: () =>
|
|
12
|
+
createAdapter: () => ISerde;
|
|
14
13
|
};
|
|
15
14
|
/**
|
|
16
15
|
* @group Utilities
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../../../serde/implementations/no-op-serde/no-op-serde";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module EventBus
|
|
3
|
+
*/
|
|
4
|
+
import type { IFlexibleSerde, ISerdeTransformer, SerializableClass } from "../../../serde/contracts/_module";
|
|
5
|
+
/**
|
|
6
|
+
* This <i>NoOpSerde</i> will do nothing and is used for easily mocking {@link IFlexibleSerde} or {@link ISerde} for testing.
|
|
7
|
+
* @group Adapters
|
|
8
|
+
*/
|
|
9
|
+
export declare class NoOpSerde<TSerializedValue> implements IFlexibleSerde<TSerializedValue> {
|
|
10
|
+
serialize<TValue>(value: TValue): TSerializedValue;
|
|
11
|
+
deserialize<TValue>(serializedValue: TSerializedValue): TValue;
|
|
12
|
+
registerClass<TSerializedClassInstance>(_class: SerializableClass<TSerializedClassInstance>): IFlexibleSerde<TSerializedValue>;
|
|
13
|
+
registerCustom<TCustomSerialized, TCustomDeserialized>(_transformer: ISerdeTransformer<TCustomSerialized, TCustomDeserialized>): IFlexibleSerde<TSerializedValue>;
|
|
14
|
+
}
|