@daiso-tech/core 0.16.0 → 0.17.4
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.events.js +168 -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 +65 -0
- package/dist/cjs/cache/implementations/derivables/cache-factory-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/derivables/cache-factory.js +29 -15
- package/dist/cjs/cache/implementations/derivables/cache-factory.js.map +1 -1
- package/dist/cjs/cache/implementations/derivables/cache-settings.js +56 -0
- package/dist/cjs/cache/implementations/derivables/cache-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/derivables/cache.js +104 -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/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 +59 -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 +28 -16
- 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 +56 -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 +74 -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 +53 -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 +16 -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 +5 -2
- package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js.map +1 -1
- package/dist/cjs/utilities/contracts/_module.js +1 -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/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.events.js +158 -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 +61 -0
- package/dist/esm/cache/implementations/derivables/cache-factory-settings.js.map +1 -0
- package/dist/esm/cache/implementations/derivables/cache-factory.js +30 -16
- package/dist/esm/cache/implementations/derivables/cache-factory.js.map +1 -1
- package/dist/esm/cache/implementations/derivables/cache-settings.js +52 -0
- package/dist/esm/cache/implementations/derivables/cache-settings.js.map +1 -0
- package/dist/esm/cache/implementations/derivables/cache.js +82 -71
- 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/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 +55 -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 +29 -17
- 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 +52 -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 +76 -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 +50 -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 +12 -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 +5 -2
- package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js.map +1 -1
- package/dist/esm/utilities/contracts/_module.js +1 -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/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.events.d.ts +156 -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 +77 -0
- package/dist/types/cache/implementations/derivables/cache-factory.d.ts +59 -39
- package/dist/types/cache/implementations/derivables/cache-settings.d.ts +68 -0
- package/dist/types/cache/implementations/derivables/cache.d.ts +65 -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/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 +70 -0
- package/dist/types/event-bus/implementations/derivables/event-bus-factory.d.ts +39 -22
- package/dist/types/event-bus/implementations/derivables/event-bus-settings.d.ts +58 -0
- package/dist/types/event-bus/implementations/derivables/event-bus.d.ts +34 -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 +56 -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 +13 -0
- package/dist/types/serde/implementations/super-json-serde/super-json-serde.d.ts +1 -1
- package/dist/types/utilities/contracts/_module.d.ts +1 -0
- package/dist/types/utilities/contracts/buildable.contract.d.ts +9 -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 +0 -1
- package/package.json +1 -1
|
@@ -1,102 +1,94 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module EventBus
|
|
3
3
|
*/
|
|
4
|
-
import type { OneOrMore
|
|
4
|
+
import type { OneOrMore } from "../../utilities/_module";
|
|
5
5
|
import type { LazyPromise } from "../../async/_module";
|
|
6
|
-
import type { Listener } from "../../event-bus/contracts/_shared";
|
|
7
|
-
export type BaseEvents = Record<string, Record<string, unknown>>;
|
|
8
|
-
export type AllEvents<TEvents extends BaseEvents> = Values<{
|
|
9
|
-
[TEventName in keyof TEvents]: TEvents[TEventName] & {
|
|
10
|
-
type: TEventName;
|
|
11
|
-
};
|
|
12
|
-
}>;
|
|
6
|
+
import type { BaseEvent, Listener } from "../../event-bus/contracts/_shared";
|
|
13
7
|
/**
|
|
14
8
|
* @group Contracts
|
|
15
9
|
*/
|
|
16
|
-
export type
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
};
|
|
20
|
-
}[TEventName];
|
|
10
|
+
export type EventClass<TEvents extends BaseEvent> = {
|
|
11
|
+
new (...arguments_: any[]): TEvents;
|
|
12
|
+
};
|
|
21
13
|
/**
|
|
22
14
|
* @group Contracts
|
|
23
15
|
*/
|
|
24
|
-
export type
|
|
16
|
+
export type EventInstance<TEventClass extends EventClass<BaseEvent>> = TEventClass extends {
|
|
17
|
+
new (...arguments_: any[]): infer TInstance;
|
|
18
|
+
} ? TInstance : never;
|
|
25
19
|
/**
|
|
26
20
|
* @group Contracts
|
|
27
21
|
*/
|
|
28
|
-
export type
|
|
29
|
-
signal?: AbortSignal;
|
|
30
|
-
};
|
|
22
|
+
export type Unsubscribe = () => LazyPromise<void>;
|
|
31
23
|
/**
|
|
32
|
-
* The <i>
|
|
24
|
+
* The <i>IEventListener</i> contract defines a way listening to events independent of underlying technology
|
|
33
25
|
* @group Contracts
|
|
34
26
|
*/
|
|
35
|
-
export type
|
|
27
|
+
export type IEventListener<TEvents extends BaseEvent = BaseEvent> = {
|
|
36
28
|
/**
|
|
37
29
|
* The <i>addListener</i> method is used for adding <i>{@link Listener | listener}</i> for certain <i>event</i>.
|
|
38
30
|
* A listener can only be added once for a specific event. Adding the same listener multiple times will have no effect and nothing will occur.
|
|
39
31
|
* @throws {AddListenerEventBusError} {@link AddListenerEventBusError}
|
|
40
32
|
*/
|
|
41
|
-
addListener<
|
|
33
|
+
addListener<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
42
34
|
/**
|
|
43
35
|
* The <i>addListenerMany</i> method is used for adding multiple <i>{@link Listener | listeners}</i> for certain <i>events</i>.
|
|
44
36
|
* A listener can only be added once for a specific event. Adding the same listener multiple times will have no effect and nothing will occur.
|
|
45
37
|
* @throws {AddListenerEventBusError} {@link AddListenerEventBusError}
|
|
46
38
|
*/
|
|
47
|
-
addListenerMany<
|
|
39
|
+
addListenerMany<TEventClass extends EventClass<TEvents>>(events: TEventClass[], listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
48
40
|
/**
|
|
49
41
|
* The <i>removeListener</i> method is used for removing <i>{@link Listener | listener}</i> for certain <i>event</i>.
|
|
50
42
|
* Removing unadded listener will have no effect and nothing will occur.
|
|
51
43
|
* @throws {RemoveListenerEventBusError} {@link RemoveListenerEventBusError}
|
|
52
44
|
*/
|
|
53
|
-
removeListener<
|
|
45
|
+
removeListener<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
54
46
|
/**
|
|
55
47
|
* The <i>removeListener</i> method is used for removing multiple <i>{@link Listener | listeners}</i> for certain <i>event</i>.
|
|
56
48
|
* Removing unadded listener will have no effect and nothing will occur.
|
|
57
49
|
* @throws {RemoveListenerEventBusError} {@link RemoveListenerEventBusError}
|
|
58
50
|
*/
|
|
59
|
-
removeListenerMany<
|
|
51
|
+
removeListenerMany<TEventClass extends EventClass<TEvents>>(events: TEventClass[], listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
60
52
|
/**
|
|
61
53
|
* The <i>listenOnce</i> method is used for adding <i>{@link Listener | listener}</i> for certain <i>event</i> that is trigged only once.
|
|
62
54
|
* @throws {AddListenerEventBusError} {@link AddListenerEventBusError}
|
|
63
55
|
*/
|
|
64
|
-
listenOnce<
|
|
56
|
+
listenOnce<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
65
57
|
/**
|
|
66
58
|
* The <i>subscribe</i> method is used for adding <i>{@link Listener | listener}</i> for certain <i>event</i>.
|
|
67
59
|
* A listener can only be added once for a specific event. Adding the same listener multiple times will have no effect and nothing will occur.
|
|
68
60
|
*/
|
|
69
|
-
subscribe<
|
|
61
|
+
subscribe<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<Unsubscribe>;
|
|
70
62
|
/**
|
|
71
63
|
* The <i>subscribeMany</i> method is used for adding <i>{@link Listener | listener}</i> for multiple <i>events</i>.
|
|
72
64
|
* A listener can only be added once for a specific event. Adding the same listener multiple times will have no effect and nothing will occur.
|
|
73
65
|
*/
|
|
74
|
-
subscribeMany<
|
|
66
|
+
subscribeMany<TEventClass extends EventClass<TEvents>>(events: TEventClass[], listener: Listener<EventInstance<TEventClass>>): LazyPromise<Unsubscribe>;
|
|
75
67
|
};
|
|
76
68
|
/**
|
|
77
|
-
* The <i>
|
|
69
|
+
* The <i>IEventDispatcher</i> contract defines a way for dispatching to events independent of underlying technology.
|
|
78
70
|
* @group Contracts
|
|
79
71
|
*/
|
|
80
|
-
export type
|
|
72
|
+
export type IEventDispatcher<TEvents extends BaseEvent = BaseEvent> = {
|
|
81
73
|
/**
|
|
82
74
|
* The <i>dispatch</i> method is used for dispatching a <i>event</i>.
|
|
83
75
|
|
|
84
76
|
* @throws {DispatchEventBusError} {@link DispatchEventBusError}
|
|
85
77
|
*/
|
|
86
|
-
dispatch(event:
|
|
78
|
+
dispatch(event: TEvents): LazyPromise<void>;
|
|
87
79
|
/**
|
|
88
80
|
* The <i>dispatchMany</i> method is used for dispatching multiple <i>event</i>.
|
|
89
81
|
|
|
90
82
|
* @throws {DispatchEventBusError} {@link DispatchEventBusError}
|
|
91
83
|
*/
|
|
92
|
-
dispatchMany(events:
|
|
84
|
+
dispatchMany(events: TEvents[]): LazyPromise<void>;
|
|
93
85
|
};
|
|
94
86
|
/**
|
|
95
87
|
* The <i>IEventBus</i> contract defines a way for dispatching and listening to events independent of underlying technology.
|
|
96
88
|
* It commes with more convient methods compared to <i>IEventBusAdapter</i>.
|
|
97
89
|
* @group Contracts
|
|
98
90
|
*/
|
|
99
|
-
export type IEventBus<TEvents extends
|
|
91
|
+
export type IEventBus<TEvents extends BaseEvent = BaseEvent> = IEventListener<TEvents> & IEventDispatcher<TEvents> & {
|
|
100
92
|
/**
|
|
101
93
|
* The <i>getGroup</i> method returns the complete group.
|
|
102
94
|
* @example
|
|
@@ -121,7 +113,7 @@ export type IEventBus<TEvents extends BaseEvents = BaseEvents> = IListenable<TEv
|
|
|
121
113
|
* It commes with one extra method which is useful for multitennat applications compared to <i>IEventBus</i>.
|
|
122
114
|
* @group Contracts
|
|
123
115
|
*/
|
|
124
|
-
export type IGroupableEventBus<TEvents extends
|
|
116
|
+
export type IGroupableEventBus<TEvents extends BaseEvent = BaseEvent> = IEventBus<TEvents> & {
|
|
125
117
|
/**
|
|
126
118
|
* The <i>withGroup</i> method returns new instance of <i>{@link IEventBus}</i> where all the events names will be prefixed with a given <i>group</i>.
|
|
127
119
|
* This useful for multitennat applications.
|
|
@@ -4,11 +4,13 @@
|
|
|
4
4
|
import { type TestAPI, type SuiteAPI, type ExpectStatic, type beforeEach } from "vitest";
|
|
5
5
|
import type { IEventBusAdapter } from "../../../event-bus/contracts/_module";
|
|
6
6
|
import { type Promisable } from "../../../utilities/_module";
|
|
7
|
+
import type { IFlexibleSerde } from "../../../serde/contracts/_module";
|
|
7
8
|
/**
|
|
8
9
|
* @group Utilities
|
|
9
10
|
*/
|
|
10
11
|
export type EventBusAdapterTestSuiteSettings = {
|
|
11
12
|
expect: ExpectStatic;
|
|
13
|
+
serde?: IFlexibleSerde;
|
|
12
14
|
test: TestAPI;
|
|
13
15
|
describe: SuiteAPI;
|
|
14
16
|
beforeEach: typeof beforeEach;
|
|
@@ -26,7 +28,7 @@ export type EventBusAdapterTestSuiteSettings = {
|
|
|
26
28
|
* import Redis from "ioredis";
|
|
27
29
|
* import { SuperJsonSerde, TimeSpan, RedisPubSubEventBusAdapter, eventBusAdapterTestSuite } from "@daiso-tech/core";
|
|
28
30
|
*
|
|
29
|
-
* const
|
|
31
|
+
* const TIMEOUT = TimeSpan.fromMinutes(2);
|
|
30
32
|
* describe("class: RedisPubSubEventBusAdapter", () => {
|
|
31
33
|
* let dispatcherClient: Redis;
|
|
32
34
|
* let listenerClient: Redis;
|
|
@@ -36,12 +38,12 @@ export type EventBusAdapterTestSuiteSettings = {
|
|
|
36
38
|
* startedContainer = await new RedisContainer().start();
|
|
37
39
|
* dispatcherClient = new Redis(startedContainer.getConnectionUrl());
|
|
38
40
|
* listenerClient = new Redis(startedContainer.getConnectionUrl());
|
|
39
|
-
* },
|
|
41
|
+
* }, TIMEOUT.toMilliseconds());
|
|
40
42
|
* afterEach(async () => {
|
|
41
43
|
* await dispatcherClient.quit();
|
|
42
44
|
* await listenerClient.quit();
|
|
43
45
|
* await startedContainer.stop();
|
|
44
|
-
* },
|
|
46
|
+
* }, TIMEOUT.toMilliseconds());
|
|
45
47
|
* eventBusAdapterTestSuite({
|
|
46
48
|
* createAdapterA: () =>
|
|
47
49
|
* new RedisPubSubEventBusAdapter({
|
|
@@ -57,6 +59,7 @@ export type EventBusAdapterTestSuiteSettings = {
|
|
|
57
59
|
* serde,
|
|
58
60
|
* rootGroup: "@global"
|
|
59
61
|
* }),
|
|
62
|
+
* serde,
|
|
60
63
|
* test,
|
|
61
64
|
* beforeEach,
|
|
62
65
|
* expect,
|
|
@@ -4,11 +4,13 @@
|
|
|
4
4
|
import { type TestAPI, type SuiteAPI, type ExpectStatic, type beforeEach } from "vitest";
|
|
5
5
|
import { type IEventBus } from "../../../event-bus/contracts/_module";
|
|
6
6
|
import { type Promisable } from "../../../utilities/_module";
|
|
7
|
+
import type { IFlexibleSerde } from "../../../serde/contracts/_module";
|
|
7
8
|
/**
|
|
8
9
|
* @group Utilities
|
|
9
10
|
*/
|
|
10
11
|
export type EventBusTestSuiteSettings = {
|
|
11
12
|
expect: ExpectStatic;
|
|
13
|
+
serde?: IFlexibleSerde;
|
|
12
14
|
test: TestAPI;
|
|
13
15
|
describe: SuiteAPI;
|
|
14
16
|
beforeEach: typeof beforeEach;
|
|
@@ -24,9 +26,9 @@ export type EventBusTestSuiteSettings = {
|
|
|
24
26
|
* import type { StartedRedisContainer } from "@testcontainers/redis";
|
|
25
27
|
* import { RedisContainer } from "@testcontainers/redis";
|
|
26
28
|
* import Redis from "ioredis";
|
|
27
|
-
* import { SuperJsonSerde, TimeSpan, RedisPubSubEventBusAdapter, eventBusTestSuite } from "@daiso-tech/core";
|
|
29
|
+
* import { SuperJsonSerde, TimeSpan, RedisPubSubEventBusAdapter, eventBusTestSuite, serde } from "@daiso-tech/core";
|
|
28
30
|
*
|
|
29
|
-
* const
|
|
31
|
+
* const TIMEOUT = TimeSpan.fromMinutes(2);
|
|
30
32
|
* describe("class: EventBus", () => {
|
|
31
33
|
* let dispatcherClient: Redis;
|
|
32
34
|
* let listenerClient: Redis;
|
|
@@ -36,12 +38,12 @@ export type EventBusTestSuiteSettings = {
|
|
|
36
38
|
* startedContainer = await new RedisContainer().start();
|
|
37
39
|
* dispatcherClient = new Redis(startedContainer.getConnectionUrl());
|
|
38
40
|
* listenerClient = new Redis(startedContainer.getConnectionUrl());
|
|
39
|
-
* },
|
|
41
|
+
* }, TIMEOUT.toMilliseconds());
|
|
40
42
|
* afterEach(async () => {
|
|
41
43
|
* await dispatcherClient.quit();
|
|
42
44
|
* await listenerClient.quit();
|
|
43
45
|
* await startedContainer.stop();
|
|
44
|
-
* },
|
|
46
|
+
* }, TIMEOUT.toMilliseconds());
|
|
45
47
|
* eventBusTestSuite({
|
|
46
48
|
* createEventBusA: () =>
|
|
47
49
|
* new EventBus(
|
|
@@ -49,8 +51,8 @@ export type EventBusTestSuiteSettings = {
|
|
|
49
51
|
* dispatcherClient,
|
|
50
52
|
* listenerClient,
|
|
51
53
|
* serde,
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
+
* rootGroup: "@global"
|
|
55
|
+
* })
|
|
54
56
|
* ),
|
|
55
57
|
* createEventBusB: () =>
|
|
56
58
|
* new EventBus(
|
|
@@ -58,9 +60,10 @@ export type EventBusTestSuiteSettings = {
|
|
|
58
60
|
* dispatcherClient,
|
|
59
61
|
* listenerClient,
|
|
60
62
|
* serde,
|
|
63
|
+
* rootGroup: "@global"
|
|
61
64
|
* }),
|
|
62
|
-
* { rootGroup: "@b" }
|
|
63
65
|
* ),
|
|
66
|
+
* serde,
|
|
64
67
|
* test,
|
|
65
68
|
* beforeEach,
|
|
66
69
|
* expect,
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export * from "../../../../event-bus/implementations/adapters/memory-event-bus-adapter/
|
|
1
|
+
export * from "../../../../event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings";
|
|
2
|
+
export * from "../../../../event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter";
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module EventBus
|
|
3
|
+
*/
|
|
4
|
+
import type { IBuildable } from "../../../../utilities/_module";
|
|
5
|
+
import type { OneOrMore } from "../../../../utilities/_module";
|
|
6
|
+
import type { EventEmitter } from "node:events";
|
|
7
|
+
/**
|
|
8
|
+
* @group Adapters
|
|
9
|
+
*/
|
|
10
|
+
export type MemoryEventBusAdapterSettings = {
|
|
11
|
+
rootGroup: OneOrMore<string>;
|
|
12
|
+
eventEmitter?: EventEmitter;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* The <i>MemoryEventBusAdapterSettingsBuilder</i> is an immutable builder class, meaning that each method invocation creates a new instance.
|
|
16
|
+
* @group Adapters
|
|
17
|
+
*/
|
|
18
|
+
export declare class MemoryEventBusAdapterSettingsBuilder<TSettings extends Partial<MemoryEventBusAdapterSettings>> implements IBuildable<MemoryEventBusAdapterSettings> {
|
|
19
|
+
private readonly settings;
|
|
20
|
+
constructor(settings?: TSettings);
|
|
21
|
+
setEventEmitter(eventEmitter: EventEmitter): MemoryEventBusAdapterSettingsBuilder<TSettings & {
|
|
22
|
+
eventEmitter: EventEmitter<[never]>;
|
|
23
|
+
}>;
|
|
24
|
+
setRootGroup(group: OneOrMore<string>): MemoryEventBusAdapterSettingsBuilder<TSettings & {
|
|
25
|
+
rootGroup: OneOrMore<string>;
|
|
26
|
+
}>;
|
|
27
|
+
build(this: MemoryEventBusAdapterSettingsBuilder<MemoryEventBusAdapterSettings>): MemoryEventBusAdapterSettings;
|
|
28
|
+
}
|
|
@@ -2,35 +2,61 @@
|
|
|
2
2
|
* @module EventBus
|
|
3
3
|
*/
|
|
4
4
|
import { type OneOrMore } from "../../../../utilities/_module";
|
|
5
|
-
import type {
|
|
6
|
-
import {
|
|
5
|
+
import type { BaseEvent, IEventBusAdapter, Listener } from "../../../../event-bus/contracts/_module";
|
|
6
|
+
import type { MemoryEventBusAdapterSettings } from "../../../../event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings";
|
|
7
|
+
import { MemoryEventBusAdapterSettingsBuilder } from "../../../../event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings";
|
|
7
8
|
/**
|
|
8
9
|
* To utilize the <i>MemoryEventBusAdapter</i>, you must create instance of it.
|
|
9
10
|
* @group Adapters
|
|
10
|
-
* @example
|
|
11
|
-
* ```ts
|
|
12
|
-
* import { MemoryEventBusAdapter } from "@daiso-tech/core";
|
|
13
|
-
*
|
|
14
|
-
* const eventBusAdapter = new MemoryEventBusAdapter(client);
|
|
15
|
-
* ```
|
|
16
|
-
* You can also provide an <i>EVentEmitter</i>.
|
|
17
|
-
* @example
|
|
18
|
-
* ```ts
|
|
19
|
-
* import { MemoryCacheAdapter } from "@daiso-tech/core";
|
|
20
|
-
* import { EventEmitter } from "node:events";
|
|
21
|
-
*
|
|
22
|
-
* const eventEmitter = new EventEmitter();
|
|
23
|
-
* const eventBusAdapter = new MemoryCacheAdapter("@global", eventEmitter);
|
|
24
|
-
* ```
|
|
25
11
|
*/
|
|
26
12
|
export declare class MemoryEventBusAdapter implements IEventBusAdapter {
|
|
27
|
-
|
|
13
|
+
/**
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { MemoryEventBusAdapter, SuperJsonSerde } from "@daiso-tech/core";
|
|
17
|
+
* import { EventEmitter } from "node:events";
|
|
18
|
+
*
|
|
19
|
+
* const cacheAdapter = new MemoryEventBusAdapter(
|
|
20
|
+
* MemoryEventBusAdapter
|
|
21
|
+
* .settings()
|
|
22
|
+
* .setEventEmitter(new EventEmitter())
|
|
23
|
+
* .setRootGroup("@global")
|
|
24
|
+
* .build()
|
|
25
|
+
* );
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
static settings<TSettings extends Partial<MemoryEventBusAdapterSettings>>(): MemoryEventBusAdapterSettingsBuilder<TSettings>;
|
|
28
29
|
private readonly group;
|
|
29
|
-
|
|
30
|
+
private readonly eventEmitter;
|
|
31
|
+
/**
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* import { MemoryEventBusAdapter } from "@daiso-tech/core";
|
|
35
|
+
* import { EventEmitter } from "node:events";
|
|
36
|
+
*
|
|
37
|
+
* const eventEmitter = new EventEmitter();
|
|
38
|
+
* const eventBusAdapter = new MemoryEventBusAdapter({
|
|
39
|
+
* eventEmitter
|
|
40
|
+
* });
|
|
41
|
+
* ```
|
|
42
|
+
* You can also provide an <i>EVentEmitter</i>.
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* import { MemoryCacheAdapter } from "@daiso-tech/core";
|
|
46
|
+
* import { EventEmitter } from "node:events";
|
|
47
|
+
*
|
|
48
|
+
* const eventEmitter = new EventEmitter();
|
|
49
|
+
* const eventBusAdapter = new MemoryEventBusAdapter({
|
|
50
|
+
* rootGroup: "@global",
|
|
51
|
+
* eventEmitter
|
|
52
|
+
* });
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
constructor(settings: MemoryEventBusAdapterSettings);
|
|
30
56
|
getGroup(): string;
|
|
31
57
|
withGroup(group: OneOrMore<string>): IEventBusAdapter;
|
|
32
58
|
private withPrefix;
|
|
33
|
-
addListener(eventName: string, listener: Listener<
|
|
34
|
-
removeListener(eventName: string, listener: Listener<
|
|
35
|
-
dispatch(
|
|
59
|
+
addListener(eventName: string, listener: Listener<BaseEvent>): Promise<void>;
|
|
60
|
+
removeListener(eventName: string, listener: Listener<BaseEvent>): Promise<void>;
|
|
61
|
+
dispatch(eventName: string, eventData: BaseEvent): Promise<void>;
|
|
36
62
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @module EventBus
|
|
3
3
|
*/
|
|
4
4
|
import type { OneOrMore } from "../../../../utilities/_module";
|
|
5
|
-
import type {
|
|
5
|
+
import type { BaseEvent, Listener } from "../../../../event-bus/contracts/_module";
|
|
6
6
|
import type { IEventBusAdapter } from "../../../../event-bus/contracts/_module";
|
|
7
7
|
/**
|
|
8
8
|
* This <i>NoOpEventBusAdapter</i> will do nothing and is used for easily mocking {@link IEventBus} for testing.
|
|
@@ -11,7 +11,7 @@ import type { IEventBusAdapter } from "../../../../event-bus/contracts/_module";
|
|
|
11
11
|
export declare class NoOpEventBusAdapter implements IEventBusAdapter {
|
|
12
12
|
getGroup(): string;
|
|
13
13
|
withGroup(_group: OneOrMore<string>): IEventBusAdapter;
|
|
14
|
-
addListener(
|
|
15
|
-
removeListener(
|
|
16
|
-
dispatch(
|
|
14
|
+
addListener(_eventName: string, _listener: Listener<BaseEvent>): PromiseLike<void>;
|
|
15
|
+
removeListener(_eventName: string, _listener: Listener<BaseEvent>): PromiseLike<void>;
|
|
16
|
+
dispatch(_eventName: string, _eventData: BaseEvent): PromiseLike<void>;
|
|
17
17
|
}
|
package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export * from "../../../../event-bus/implementations/adapters/
|
|
1
|
+
export * from "../../../../event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings";
|
|
2
|
+
export * from "../../../../event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter";
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module EventBus
|
|
3
|
+
*/
|
|
4
|
+
import { type ISerde } from "../../../../serde/contracts/_module";
|
|
5
|
+
import type Redis from "ioredis";
|
|
6
|
+
import type { IBuildable, OneOrMore } from "../../../../utilities/_module";
|
|
7
|
+
/**
|
|
8
|
+
* @group Adapters
|
|
9
|
+
*/
|
|
10
|
+
export type RedisPubSubEventBusAdapterSettings = {
|
|
11
|
+
dispatcherClient: Redis;
|
|
12
|
+
listenerClient: Redis;
|
|
13
|
+
serde: ISerde<string>;
|
|
14
|
+
rootGroup: OneOrMore<string>;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* The <i>RedisPubSubEventBusAdapterSettingsBuilder</i> is an immutable builder class, meaning that each method invocation creates a new instance.
|
|
18
|
+
* @group Adapters
|
|
19
|
+
*/
|
|
20
|
+
export declare class RedisPubSubEventBusAdapterSettingsBuilder<TSettings extends Partial<RedisPubSubEventBusAdapterSettings>> implements IBuildable<RedisPubSubEventBusAdapterSettings> {
|
|
21
|
+
private readonly settings;
|
|
22
|
+
constructor(settings?: TSettings);
|
|
23
|
+
setDispatcherClient(client: Redis): RedisPubSubEventBusAdapterSettingsBuilder<TSettings & {
|
|
24
|
+
dispatcherClient: Redis;
|
|
25
|
+
}>;
|
|
26
|
+
setListenerClient(client: Redis): RedisPubSubEventBusAdapterSettingsBuilder<TSettings & {
|
|
27
|
+
listenerClient: Redis;
|
|
28
|
+
}>;
|
|
29
|
+
setSerde(serde: ISerde<string>): RedisPubSubEventBusAdapterSettingsBuilder<TSettings & {
|
|
30
|
+
serde: ISerde<string>;
|
|
31
|
+
}>;
|
|
32
|
+
setRootGroup(group: OneOrMore<string>): RedisPubSubEventBusAdapterSettingsBuilder<TSettings & {
|
|
33
|
+
rootGroup: OneOrMore<string>;
|
|
34
|
+
}>;
|
|
35
|
+
build(this: RedisPubSubEventBusAdapterSettingsBuilder<RedisPubSubEventBusAdapterSettings>): RedisPubSubEventBusAdapterSettings;
|
|
36
|
+
}
|
|
@@ -1,50 +1,62 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module EventBus
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
import type { IBaseEvent, IEventBusAdapter, Listener } from "../../../../event-bus/contracts/_module";
|
|
6
|
-
import type Redis from "ioredis";
|
|
4
|
+
import type { BaseEvent, IEventBusAdapter, Listener } from "../../../../event-bus/contracts/_module";
|
|
7
5
|
import type { OneOrMore } from "../../../../utilities/_module";
|
|
6
|
+
import type { RedisPubSubEventBusAdapterSettings } from "../../../../event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings";
|
|
7
|
+
import { RedisPubSubEventBusAdapterSettingsBuilder } from "../../../../event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings";
|
|
8
8
|
/**
|
|
9
|
+
* To utilize the <i>RedisPubSubEventBusAdapter</i>, you must install the <i>"ioredis"</i> package and supply a <i>{@link ISerde | ISerde<string> }</i>, such as <i>{@link SuperJsonSerde}</i>.
|
|
9
10
|
* @group Adapters
|
|
10
11
|
*/
|
|
11
|
-
export type RedisPubSubEventBusAdapterSettings = {
|
|
12
|
-
dispatcherClient: Redis;
|
|
13
|
-
listenerClient: Redis;
|
|
14
|
-
serde: ISerde<string>;
|
|
15
|
-
rootGroup: OneOrMore<string>;
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* To utilize the <i>RedisPubSubEventBusAdapter</i>, you must install the <i>"ioredis"</i> package and supply a <i>{@link ISerde | string serde}</i>, such as <i>{@link SuperJsonSerde}</i>.
|
|
19
|
-
* @group Adapters
|
|
20
|
-
* @example
|
|
21
|
-
* ```ts
|
|
22
|
-
* import { RedisPubSubEventBusAdapter, SuperJsonSerde } from "@daiso-tech/core";
|
|
23
|
-
* import Redis from "ioredis";
|
|
24
|
-
*
|
|
25
|
-
* const dispatcherClient = new Redis("YOUR_REDIS_CONNECTION_STRING");
|
|
26
|
-
* const listenerClient = new Redis("YOUR_REDIS_CONNECTION_STRING");
|
|
27
|
-
* const serde = new SuperJsonSerde();
|
|
28
|
-
* const eventBusAdapter = new RedisPubSubEventBusAdapter({
|
|
29
|
-
* dispatcherClient,
|
|
30
|
-
* listenerClient,
|
|
31
|
-
* serde,
|
|
32
|
-
* });
|
|
33
|
-
* ```
|
|
34
|
-
*/
|
|
35
12
|
export declare class RedisPubSubEventBusAdapter implements IEventBusAdapter {
|
|
13
|
+
/**
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { RedisPubSubEventBusAdapter, SuperJsonSerde } from "@daiso-tech/core";
|
|
17
|
+
* import Redis from "ioredis";
|
|
18
|
+
*
|
|
19
|
+
* const cacheAdapter = new RedisPubSubEventBusAdapter(
|
|
20
|
+
* RedisPubSubEventBusAdapter
|
|
21
|
+
* .settings()
|
|
22
|
+
* .setDispatcherClient(new Redis("YOUR REDIS CONNECTION"))
|
|
23
|
+
* .setListenerClient(new Redis("YOUR REDIS CONNECTION"))
|
|
24
|
+
* .setSerde(new SuperJsonSerde())
|
|
25
|
+
* .setRootGroup("@global")
|
|
26
|
+
* .build()
|
|
27
|
+
* );
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
static settings<TSettings extends Partial<RedisPubSubEventBusAdapterSettings>>(): RedisPubSubEventBusAdapterSettingsBuilder<TSettings>;
|
|
36
31
|
private readonly group;
|
|
37
|
-
private readonly
|
|
32
|
+
private readonly baseSerde;
|
|
38
33
|
private readonly redisSerde;
|
|
39
34
|
private readonly dispatcherClient;
|
|
40
35
|
private readonly listenerClient;
|
|
41
36
|
private readonly eventEmitter;
|
|
37
|
+
/**
|
|
38
|
+
* @example
|
|
39
|
+
* ```ts
|
|
40
|
+
* import { RedisPubSubEventBusAdapter, SuperJsonSerde } from "@daiso-tech/core";
|
|
41
|
+
* import Redis from "ioredis";
|
|
42
|
+
*
|
|
43
|
+
* const dispatcherClient = new Redis("YOUR_REDIS_CONNECTION_STRING");
|
|
44
|
+
* const listenerClient = new Redis("YOUR_REDIS_CONNECTION_STRING");
|
|
45
|
+
* const serde = new SuperJsonSerde();
|
|
46
|
+
* const eventBusAdapter = new RedisPubSubEventBusAdapter({
|
|
47
|
+
* dispatcherClient,
|
|
48
|
+
* listenerClient,
|
|
49
|
+
* serde,
|
|
50
|
+
* rootGroup: "@global"
|
|
51
|
+
* });
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
42
54
|
constructor({ dispatcherClient, listenerClient, serde, rootGroup, }: RedisPubSubEventBusAdapterSettings);
|
|
43
55
|
getGroup(): string;
|
|
44
56
|
withGroup(group: OneOrMore<string>): IEventBusAdapter;
|
|
45
57
|
private withPrefix;
|
|
46
58
|
private redisListener;
|
|
47
|
-
addListener(eventName: string, listener: Listener<
|
|
48
|
-
removeListener(eventName: string, listener: Listener<
|
|
49
|
-
dispatch(
|
|
59
|
+
addListener(eventName: string, listener: Listener<BaseEvent>): Promise<void>;
|
|
60
|
+
removeListener(eventName: string, listener: Listener<BaseEvent>): Promise<void>;
|
|
61
|
+
dispatch(eventName: string, eventData: BaseEvent): Promise<void>;
|
|
50
62
|
}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export * from "../../../event-bus/implementations/derivables/event-bus";
|
|
1
|
+
export * from "../../../event-bus/implementations/derivables/event-bus-factory-settings";
|
|
2
2
|
export * from "../../../event-bus/implementations/derivables/event-bus-factory";
|
|
3
|
+
export * from "../../../event-bus/implementations/derivables/event-bus-settings";
|
|
4
|
+
export * from "../../../event-bus/implementations/derivables/event-bus";
|
|
@@ -0,0 +1,70 @@
|
|
|
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 { TimeSpan } from "../../../utilities/_module";
|
|
7
|
+
/**
|
|
8
|
+
* @group Derivables
|
|
9
|
+
*/
|
|
10
|
+
export type EventBusAdapters<TAdapters extends string = string> = Partial<Record<TAdapters, IEventBusAdapter>>;
|
|
11
|
+
/**
|
|
12
|
+
* The <i>EventBusFactorySettings</i> is an immutable builder class, meaning that each method invocation creates a new instance.
|
|
13
|
+
* @group Derivables
|
|
14
|
+
*/
|
|
15
|
+
export type EventBusFactorySettings<TAdapters extends string = string> = {
|
|
16
|
+
adapters: EventBusAdapters<TAdapters>;
|
|
17
|
+
defaultAdapter?: NoInfer<TAdapters>;
|
|
18
|
+
/**
|
|
19
|
+
* In order to listen to events of <i>{@link Cache}</i> class you must pass in <i>{@link IGroupableEventBus}</i>.
|
|
20
|
+
*/
|
|
21
|
+
eventBus?: IGroupableEventBus<any>;
|
|
22
|
+
/**
|
|
23
|
+
* The default retry attempt to use in the returned <i>LazyPromise</i>.
|
|
24
|
+
*/
|
|
25
|
+
retryAttempts?: number | null;
|
|
26
|
+
/**
|
|
27
|
+
* The default backof policy to use in the returned <i>LazyPromise</i>.
|
|
28
|
+
*/
|
|
29
|
+
backoffPolicy?: BackoffPolicy | null;
|
|
30
|
+
/**
|
|
31
|
+
* The default retry policy to use in the returned <i>LazyPromise</i>.
|
|
32
|
+
*/
|
|
33
|
+
retryPolicy?: RetryPolicy | null;
|
|
34
|
+
/**
|
|
35
|
+
* The default timeout to use in the returned <i>LazyPromise</i>.
|
|
36
|
+
*/
|
|
37
|
+
timeout?: TimeSpan | null;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* The <i>EventBusFactorySettingsBuilder</i> is an immutable builder class, meaning that each method invocation creates a new instance.
|
|
41
|
+
* @group Derivables
|
|
42
|
+
*/
|
|
43
|
+
export declare class EventBusFactorySettingsBuilder<TSettings extends EventBusFactorySettings> {
|
|
44
|
+
private readonly settings;
|
|
45
|
+
constructor(settings?: TSettings);
|
|
46
|
+
setEventBus(eventBus: IGroupableEventBus<any>): EventBusFactorySettingsBuilder<TSettings & {
|
|
47
|
+
eventBus: IGroupableEventBus<any>;
|
|
48
|
+
}>;
|
|
49
|
+
setRetryAttempts(attempts: number | null): EventBusFactorySettingsBuilder<TSettings & {
|
|
50
|
+
retryAttempts: number | null;
|
|
51
|
+
}>;
|
|
52
|
+
setBackoffPolicy(policy: BackoffPolicy | null): EventBusFactorySettingsBuilder<TSettings & {
|
|
53
|
+
backoffPolicy: BackoffPolicy | null;
|
|
54
|
+
}>;
|
|
55
|
+
setRetryPolicy(policy: RetryPolicy | null): EventBusFactorySettingsBuilder<TSettings & {
|
|
56
|
+
retryPolicy: RetryPolicy | null;
|
|
57
|
+
}>;
|
|
58
|
+
setTimeout(time: TimeSpan | null): EventBusFactorySettingsBuilder<TSettings & {
|
|
59
|
+
timeout: TimeSpan | null;
|
|
60
|
+
}>;
|
|
61
|
+
setAdapter<TName extends string>(name: TName, adapter: IEventBusAdapter): EventBusFactorySettingsBuilder<TSettings & {
|
|
62
|
+
adapters: {
|
|
63
|
+
readonly [x: string]: IEventBusAdapter | undefined;
|
|
64
|
+
};
|
|
65
|
+
}>;
|
|
66
|
+
setDefaultAdapter(adapter: string): EventBusFactorySettingsBuilder<TSettings & {
|
|
67
|
+
defaultAdapter: string;
|
|
68
|
+
}>;
|
|
69
|
+
build(this: EventBusFactorySettingsBuilder<EventBusFactorySettings>): EventBusFactorySettings;
|
|
70
|
+
}
|