@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
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { describe, } from "vitest";
|
|
2
|
+
import { BaseEvent } from "../../../event-bus/contracts/_module";
|
|
2
3
|
import { TimeSpan } from "../../../utilities/_module";
|
|
3
4
|
import { delay } from "../../../async/_module";
|
|
5
|
+
import { NoOpSerde } from "../../../serde/implementations/_module";
|
|
4
6
|
export function eventBusAdapterTestSuite(settings) {
|
|
5
|
-
const { expect, test, createAdapterA, createAdapterB, beforeEach } = settings;
|
|
7
|
+
const { expect, test, createAdapterA, createAdapterB, beforeEach, serde = new NoOpSerde(), } = settings;
|
|
6
8
|
let eventBusAdapterA;
|
|
7
9
|
let eventBusAdapterB;
|
|
8
10
|
beforeEach(async () => {
|
|
@@ -10,41 +12,53 @@ export function eventBusAdapterTestSuite(settings) {
|
|
|
10
12
|
eventBusAdapterB = await createAdapterB();
|
|
11
13
|
});
|
|
12
14
|
const TTL = TimeSpan.fromMilliseconds(50);
|
|
15
|
+
class TestEvent extends BaseEvent {
|
|
16
|
+
data;
|
|
17
|
+
static deserialize(serializedEvent) {
|
|
18
|
+
return new TestEvent(serializedEvent);
|
|
19
|
+
}
|
|
20
|
+
constructor(data) {
|
|
21
|
+
super();
|
|
22
|
+
this.data = data;
|
|
23
|
+
}
|
|
24
|
+
serialize() {
|
|
25
|
+
return this.data;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
serde.registerClass(TestEvent);
|
|
13
29
|
describe("Api tests:", () => {
|
|
14
30
|
describe("method: addListener, removeListener, dispatch", () => {
|
|
15
31
|
test("Should be null when listener added and event is not triggered", async () => {
|
|
16
|
-
const TYPE = "type";
|
|
17
32
|
let result = null;
|
|
18
|
-
await eventBusAdapterA.addListener(
|
|
33
|
+
await eventBusAdapterA.addListener(TestEvent.name, (event) => {
|
|
19
34
|
result = event;
|
|
20
35
|
});
|
|
21
36
|
expect(result).toBeNull();
|
|
22
37
|
});
|
|
23
|
-
test("Should be
|
|
24
|
-
const TYPE = "type";
|
|
38
|
+
test("Should be TestEvent when listener added and event is triggered", async () => {
|
|
25
39
|
let result = null;
|
|
26
|
-
await eventBusAdapterA.addListener(
|
|
40
|
+
await eventBusAdapterA.addListener(TestEvent.name, (event) => {
|
|
27
41
|
result = event;
|
|
28
42
|
});
|
|
29
|
-
const event = {
|
|
30
|
-
type:
|
|
31
|
-
};
|
|
32
|
-
await eventBusAdapterA.dispatch(event);
|
|
43
|
+
const event = new TestEvent({
|
|
44
|
+
type: BaseEvent.name,
|
|
45
|
+
});
|
|
46
|
+
await eventBusAdapterA.dispatch(TestEvent.name, event);
|
|
33
47
|
await delay(TTL);
|
|
34
48
|
expect(result).toEqual(event);
|
|
49
|
+
expect(result).toBeInstanceOf(TestEvent);
|
|
35
50
|
});
|
|
36
51
|
test("Should be null when listener removed and event is triggered", async () => {
|
|
37
|
-
const TYPE = "type";
|
|
38
52
|
let result = null;
|
|
39
53
|
const listener = (event) => {
|
|
40
54
|
result = event;
|
|
41
55
|
};
|
|
42
|
-
await eventBusAdapterA.addListener(
|
|
43
|
-
await eventBusAdapterA.removeListener(
|
|
44
|
-
const event = {
|
|
45
|
-
type:
|
|
46
|
-
};
|
|
47
|
-
await eventBusAdapterA.dispatch(event);
|
|
56
|
+
await eventBusAdapterA.addListener(TestEvent.name, listener);
|
|
57
|
+
await eventBusAdapterA.removeListener(TestEvent.name, listener);
|
|
58
|
+
const event = new TestEvent({
|
|
59
|
+
type: BaseEvent.name,
|
|
60
|
+
});
|
|
61
|
+
await eventBusAdapterA.dispatch(TestEvent.name, event);
|
|
48
62
|
await delay(TTL);
|
|
49
63
|
expect(result).toBeNull();
|
|
50
64
|
});
|
|
@@ -52,40 +66,42 @@ export function eventBusAdapterTestSuite(settings) {
|
|
|
52
66
|
});
|
|
53
67
|
describe("Group tests:", () => {
|
|
54
68
|
test("method: addListener / dispatch", async () => {
|
|
55
|
-
const event = {
|
|
69
|
+
const event = new TestEvent({
|
|
56
70
|
type: "type",
|
|
57
|
-
};
|
|
71
|
+
});
|
|
58
72
|
let result_a = null;
|
|
59
|
-
await eventBusAdapterA.addListener(
|
|
73
|
+
await eventBusAdapterA.addListener(TestEvent.name, (event) => {
|
|
60
74
|
result_a = event;
|
|
61
75
|
});
|
|
62
76
|
let result_b = null;
|
|
63
|
-
await eventBusAdapterB.addListener(
|
|
77
|
+
await eventBusAdapterB.addListener(TestEvent.name, (event) => {
|
|
64
78
|
result_b = event;
|
|
65
79
|
});
|
|
66
|
-
await eventBusAdapterA.dispatch(event);
|
|
80
|
+
await eventBusAdapterA.dispatch(TestEvent.name, event);
|
|
67
81
|
await delay(TTL);
|
|
68
82
|
expect(result_a).toEqual(event);
|
|
83
|
+
expect(result_a).toBeInstanceOf(TestEvent);
|
|
69
84
|
expect(result_b).toBeNull();
|
|
70
85
|
});
|
|
71
86
|
test("method: removeListener / addListener / dispatch", async () => {
|
|
72
|
-
const event = {
|
|
87
|
+
const event = new TestEvent({
|
|
73
88
|
type: "type",
|
|
74
|
-
};
|
|
89
|
+
});
|
|
75
90
|
let result_a = null;
|
|
76
|
-
await eventBusAdapterA.addListener(
|
|
91
|
+
await eventBusAdapterA.addListener(TestEvent.name, (event) => {
|
|
77
92
|
result_a = event;
|
|
78
93
|
});
|
|
79
94
|
let result_b = null;
|
|
80
95
|
const listenerB = (event) => {
|
|
81
96
|
result_b = event;
|
|
82
97
|
};
|
|
83
|
-
await eventBusAdapterB.addListener(
|
|
84
|
-
await eventBusAdapterB.removeListener(
|
|
85
|
-
await eventBusAdapterA.dispatch(event);
|
|
86
|
-
await eventBusAdapterB.dispatch(event);
|
|
98
|
+
await eventBusAdapterB.addListener(TestEvent.name, listenerB);
|
|
99
|
+
await eventBusAdapterB.removeListener(TestEvent.name, listenerB);
|
|
100
|
+
await eventBusAdapterA.dispatch(TestEvent.name, event);
|
|
101
|
+
await eventBusAdapterB.dispatch(TestEvent.name, event);
|
|
87
102
|
await delay(TTL);
|
|
88
103
|
expect(result_a).toEqual(event);
|
|
104
|
+
expect(result_a).toBeInstanceOf(TestEvent);
|
|
89
105
|
expect(result_b).toBeNull();
|
|
90
106
|
});
|
|
91
107
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-bus-adapter.test-suite.js","sourceRoot":"","sources":["../../../../../src/event-bus/implementations/_shared/event-bus-adapter.test-suite.ts"],"names":[],"mappings":"AAIA,OAAO,EAKH,QAAQ,GACX,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"event-bus-adapter.test-suite.js","sourceRoot":"","sources":["../../../../../src/event-bus/implementations/_shared/event-bus-adapter.test-suite.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { BaseEvent } from "../../../event-bus/contracts/_module";
|
|
1
2
|
import { TimeSpan } from "../../../utilities/_module";
|
|
2
3
|
import { delay } from "../../../async/_module";
|
|
4
|
+
import { NoOpSerde } from "../../../serde/implementations/_module";
|
|
3
5
|
export function eventBusTestSuite(settings) {
|
|
4
|
-
const { expect, test, describe, createEventBusA, createEventBusB, beforeEach, } = settings;
|
|
6
|
+
const { expect, serde = new NoOpSerde(), test, describe, createEventBusA, createEventBusB, beforeEach, } = settings;
|
|
5
7
|
let eventBusA;
|
|
6
8
|
let eventBusB;
|
|
7
9
|
beforeEach(async () => {
|
|
@@ -9,38 +11,66 @@ export function eventBusTestSuite(settings) {
|
|
|
9
11
|
eventBusB = await createEventBusB();
|
|
10
12
|
});
|
|
11
13
|
const TTL = TimeSpan.fromMilliseconds(50);
|
|
14
|
+
class TestEventA extends BaseEvent {
|
|
15
|
+
data;
|
|
16
|
+
static deserialize(serializedEvent) {
|
|
17
|
+
return new TestEventA(serializedEvent);
|
|
18
|
+
}
|
|
19
|
+
constructor(data) {
|
|
20
|
+
super();
|
|
21
|
+
this.data = data;
|
|
22
|
+
}
|
|
23
|
+
serialize() {
|
|
24
|
+
return this.data;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
class TestEventB extends BaseEvent {
|
|
28
|
+
data;
|
|
29
|
+
static deserialize(serializedEvent) {
|
|
30
|
+
return new TestEventB(serializedEvent);
|
|
31
|
+
}
|
|
32
|
+
constructor(data) {
|
|
33
|
+
super();
|
|
34
|
+
this.data = data;
|
|
35
|
+
}
|
|
36
|
+
serialize() {
|
|
37
|
+
return this.data;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
serde.registerClass(TestEventA);
|
|
41
|
+
serde.registerClass(TestEventB);
|
|
12
42
|
describe("Api tests:", () => {
|
|
13
43
|
describe("method: addListener, removeListener, dispatch", () => {
|
|
14
44
|
test("Should be null when listener added and event is not triggered", async () => {
|
|
15
|
-
const TYPE = "type";
|
|
16
45
|
let result = null;
|
|
17
|
-
await eventBusA.addListener(
|
|
46
|
+
await eventBusA.addListener(TestEventA, (event) => {
|
|
18
47
|
result = event;
|
|
19
48
|
});
|
|
20
49
|
expect(result).toBeNull();
|
|
21
50
|
});
|
|
22
|
-
test("Should be
|
|
23
|
-
const event = {
|
|
24
|
-
type: "type",
|
|
25
|
-
};
|
|
51
|
+
test("Should be TestEventA when listener added and event is triggered", async () => {
|
|
26
52
|
let result = null;
|
|
27
|
-
await eventBusA.addListener(
|
|
53
|
+
await eventBusA.addListener(TestEventA, (event) => {
|
|
28
54
|
result = event;
|
|
29
55
|
});
|
|
56
|
+
const event = new TestEventA({
|
|
57
|
+
type: TestEventA.name,
|
|
58
|
+
});
|
|
30
59
|
await eventBusA.dispatch(event);
|
|
31
60
|
await delay(TTL);
|
|
32
61
|
expect(result).toEqual(event);
|
|
62
|
+
expect(result).toBeInstanceOf(TestEventA);
|
|
33
63
|
});
|
|
34
64
|
test("Should be null when listener removed and event is triggered", async () => {
|
|
35
|
-
const event = {
|
|
36
|
-
type:
|
|
37
|
-
};
|
|
65
|
+
const event = new TestEventA({
|
|
66
|
+
type: TestEventA.name,
|
|
67
|
+
});
|
|
38
68
|
let result = null;
|
|
39
69
|
const listener = (event) => {
|
|
40
70
|
result = event;
|
|
41
71
|
};
|
|
42
|
-
await eventBusA.addListener(
|
|
43
|
-
await eventBusA.removeListener(
|
|
72
|
+
await eventBusA.addListener(TestEventA, listener);
|
|
73
|
+
await eventBusA.removeListener(TestEventA, listener);
|
|
44
74
|
await eventBusA.dispatch(event);
|
|
45
75
|
await delay(TTL);
|
|
46
76
|
expect(result).toBeNull();
|
|
@@ -48,49 +78,49 @@ export function eventBusTestSuite(settings) {
|
|
|
48
78
|
});
|
|
49
79
|
describe("method: addListenerMany, removeListenerMany, dispatch", () => {
|
|
50
80
|
test("Should be null when listener added and event is not triggered", async () => {
|
|
51
|
-
const TYPE_1 = "type_1";
|
|
52
|
-
const TYPE_2 = "type_2";
|
|
53
81
|
let result = null;
|
|
54
|
-
await eventBusA.addListenerMany([
|
|
82
|
+
await eventBusA.addListenerMany([TestEventA, TestEventB], (event) => {
|
|
55
83
|
result = event;
|
|
56
84
|
});
|
|
57
85
|
expect(result).toBeNull();
|
|
58
86
|
});
|
|
59
|
-
test("Should be
|
|
60
|
-
const event_1 = {
|
|
61
|
-
type:
|
|
62
|
-
};
|
|
63
|
-
const event_2 = {
|
|
64
|
-
type:
|
|
65
|
-
};
|
|
87
|
+
test("Should be BaseEvent when listener added and event is triggered", async () => {
|
|
88
|
+
const event_1 = new TestEventA({
|
|
89
|
+
type: TestEventA.name,
|
|
90
|
+
});
|
|
91
|
+
const event_2 = new TestEventB({
|
|
92
|
+
type: TestEventB.name,
|
|
93
|
+
});
|
|
66
94
|
let result_1 = null;
|
|
67
95
|
let result_2 = null;
|
|
68
|
-
await eventBusA.addListenerMany([
|
|
69
|
-
if (eventObj
|
|
96
|
+
await eventBusA.addListenerMany([TestEventA, TestEventB], (eventObj) => {
|
|
97
|
+
if (eventObj instanceof TestEventA) {
|
|
70
98
|
result_1 = eventObj;
|
|
71
99
|
}
|
|
72
|
-
if (eventObj
|
|
100
|
+
if (eventObj instanceof TestEventB) {
|
|
73
101
|
result_2 = eventObj;
|
|
74
102
|
}
|
|
75
103
|
});
|
|
76
104
|
await eventBusA.dispatchMany([event_1, event_2]);
|
|
77
105
|
await delay(TTL);
|
|
78
106
|
expect(result_1).toEqual(event_1);
|
|
107
|
+
expect(result_1).toBeInstanceOf(TestEventA);
|
|
79
108
|
expect(result_2).toEqual(event_2);
|
|
109
|
+
expect(result_2).toBeInstanceOf(TestEventB);
|
|
80
110
|
});
|
|
81
111
|
test("Should be null when listener removed and event is triggered", async () => {
|
|
82
|
-
const event_A = {
|
|
83
|
-
type:
|
|
84
|
-
};
|
|
85
|
-
const event_B = {
|
|
86
|
-
type:
|
|
87
|
-
};
|
|
112
|
+
const event_A = new TestEventA({
|
|
113
|
+
type: TestEventA.name,
|
|
114
|
+
});
|
|
115
|
+
const event_B = new TestEventB({
|
|
116
|
+
type: TestEventB.name,
|
|
117
|
+
});
|
|
88
118
|
let result = null;
|
|
89
119
|
const listener = (event) => {
|
|
90
120
|
result = event;
|
|
91
121
|
};
|
|
92
|
-
await eventBusA.addListenerMany([
|
|
93
|
-
await eventBusA.removeListenerMany([
|
|
122
|
+
await eventBusA.addListenerMany([TestEventA, TestEventB], listener);
|
|
123
|
+
await eventBusA.removeListenerMany([TestEventA, TestEventB], listener);
|
|
94
124
|
await eventBusA.dispatchMany([event_A, event_B]);
|
|
95
125
|
await delay(TTL);
|
|
96
126
|
expect(result).toBeNull();
|
|
@@ -98,34 +128,34 @@ export function eventBusTestSuite(settings) {
|
|
|
98
128
|
});
|
|
99
129
|
describe("method: subscribe", () => {
|
|
100
130
|
test("Should be null when listener added and event is not triggered", async () => {
|
|
101
|
-
const TYPE = "type";
|
|
102
131
|
let result = null;
|
|
103
|
-
await eventBusA.subscribe(
|
|
132
|
+
await eventBusA.subscribe(TestEventA, (event) => {
|
|
104
133
|
result = event;
|
|
105
134
|
});
|
|
106
135
|
expect(result).toBeNull();
|
|
107
136
|
});
|
|
108
|
-
test("Should be
|
|
109
|
-
const event = {
|
|
110
|
-
type:
|
|
111
|
-
};
|
|
137
|
+
test("Should be TestEventA when listener added and event is triggered", async () => {
|
|
138
|
+
const event = new TestEventA({
|
|
139
|
+
type: TestEventA.name,
|
|
140
|
+
});
|
|
112
141
|
let result = null;
|
|
113
|
-
await eventBusA.subscribe(
|
|
142
|
+
await eventBusA.subscribe(TestEventA, (event) => {
|
|
114
143
|
result = event;
|
|
115
144
|
});
|
|
116
145
|
await delay(TTL);
|
|
117
146
|
await eventBusA.dispatch(event);
|
|
118
147
|
expect(result).toEqual(event);
|
|
148
|
+
expect(result).toBeInstanceOf(TestEventA);
|
|
119
149
|
});
|
|
120
150
|
test("Should be null when listener removed and event is triggered", async () => {
|
|
121
|
-
const event = {
|
|
122
|
-
type:
|
|
123
|
-
};
|
|
151
|
+
const event = new TestEventA({
|
|
152
|
+
type: TestEventA.name,
|
|
153
|
+
});
|
|
124
154
|
let result = null;
|
|
125
155
|
const listener = (event) => {
|
|
126
156
|
result = event;
|
|
127
157
|
};
|
|
128
|
-
const unsubscribe = await eventBusA.subscribe(
|
|
158
|
+
const unsubscribe = await eventBusA.subscribe(TestEventA, listener);
|
|
129
159
|
await unsubscribe();
|
|
130
160
|
await eventBusA.dispatch(event);
|
|
131
161
|
await delay(TTL);
|
|
@@ -134,48 +164,48 @@ export function eventBusTestSuite(settings) {
|
|
|
134
164
|
});
|
|
135
165
|
describe("method: subscribeMany", () => {
|
|
136
166
|
test("Should be null when listener added and event is not triggered", async () => {
|
|
137
|
-
const TYPE_1 = "type_1";
|
|
138
|
-
const TYPE_2 = "type_2";
|
|
139
167
|
let result = null;
|
|
140
|
-
await eventBusA.subscribeMany([
|
|
168
|
+
await eventBusA.subscribeMany([TestEventA, TestEventB], (event) => {
|
|
141
169
|
result = event;
|
|
142
170
|
});
|
|
143
171
|
expect(result).toBeNull();
|
|
144
172
|
});
|
|
145
|
-
test("Should be
|
|
146
|
-
const event_1 = {
|
|
147
|
-
type:
|
|
148
|
-
};
|
|
149
|
-
const event_2 = {
|
|
150
|
-
type:
|
|
151
|
-
};
|
|
173
|
+
test("Should be BaseEvent when listener added and event is triggered", async () => {
|
|
174
|
+
const event_1 = new TestEventA({
|
|
175
|
+
type: TestEventA.name,
|
|
176
|
+
});
|
|
177
|
+
const event_2 = new TestEventB({
|
|
178
|
+
type: TestEventB.name,
|
|
179
|
+
});
|
|
152
180
|
let result_1 = null;
|
|
153
181
|
let result_2 = null;
|
|
154
|
-
await eventBusA.subscribeMany([
|
|
155
|
-
if (eventObj
|
|
182
|
+
await eventBusA.subscribeMany([TestEventA, TestEventB], (eventObj) => {
|
|
183
|
+
if (eventObj instanceof TestEventA) {
|
|
156
184
|
result_1 = eventObj;
|
|
157
185
|
}
|
|
158
|
-
if (eventObj
|
|
186
|
+
if (eventObj instanceof TestEventB) {
|
|
159
187
|
result_2 = eventObj;
|
|
160
188
|
}
|
|
161
189
|
});
|
|
162
190
|
await delay(TTL);
|
|
163
191
|
await eventBusA.dispatchMany([event_1, event_2]);
|
|
164
192
|
expect(result_1).toEqual(event_1);
|
|
193
|
+
expect(result_1).toBeInstanceOf(TestEventA);
|
|
165
194
|
expect(result_2).toEqual(event_2);
|
|
195
|
+
expect(result_2).toBeInstanceOf(TestEventB);
|
|
166
196
|
});
|
|
167
197
|
test("Should be null when listener removed and event is triggered", async () => {
|
|
168
|
-
const event_A = {
|
|
169
|
-
type:
|
|
170
|
-
};
|
|
171
|
-
const event_B = {
|
|
172
|
-
type:
|
|
173
|
-
};
|
|
198
|
+
const event_A = new TestEventA({
|
|
199
|
+
type: TestEventA.name,
|
|
200
|
+
});
|
|
201
|
+
const event_B = new TestEventB({
|
|
202
|
+
type: TestEventB.name,
|
|
203
|
+
});
|
|
174
204
|
let result = null;
|
|
175
205
|
const listener = (event) => {
|
|
176
206
|
result = event;
|
|
177
207
|
};
|
|
178
|
-
const unsubscribe = await eventBusA.subscribeMany([
|
|
208
|
+
const unsubscribe = await eventBusA.subscribeMany([TestEventA, TestEventB], listener);
|
|
179
209
|
await unsubscribe();
|
|
180
210
|
await eventBusA.dispatchMany([event_A, event_B]);
|
|
181
211
|
await delay(TTL);
|
|
@@ -184,31 +214,31 @@ export function eventBusTestSuite(settings) {
|
|
|
184
214
|
});
|
|
185
215
|
describe("method: listenOnce", () => {
|
|
186
216
|
test("Should be null when listener added and event is not triggered", async () => {
|
|
187
|
-
const TYPE = "type";
|
|
188
217
|
let result = null;
|
|
189
|
-
await eventBusA.listenOnce(
|
|
218
|
+
await eventBusA.listenOnce(TestEventA, (event) => {
|
|
190
219
|
result = event;
|
|
191
220
|
});
|
|
192
221
|
expect(result).toBeNull();
|
|
193
222
|
});
|
|
194
|
-
test("Should be
|
|
195
|
-
const event = {
|
|
196
|
-
type:
|
|
197
|
-
};
|
|
223
|
+
test("Should be TestEventA when listener added and event is triggered", async () => {
|
|
224
|
+
const event = new TestEventA({
|
|
225
|
+
type: TestEventA.name,
|
|
226
|
+
});
|
|
198
227
|
let result = null;
|
|
199
|
-
await eventBusA.listenOnce(
|
|
228
|
+
await eventBusA.listenOnce(TestEventA, (event) => {
|
|
200
229
|
result = event;
|
|
201
230
|
});
|
|
202
231
|
await eventBusA.dispatch(event);
|
|
203
232
|
await delay(TTL);
|
|
204
233
|
expect(result).toEqual(event);
|
|
234
|
+
expect(result).toBeInstanceOf(TestEventA);
|
|
205
235
|
});
|
|
206
236
|
test("Should only listen for event once", async () => {
|
|
207
|
-
const event = {
|
|
208
|
-
type:
|
|
209
|
-
};
|
|
237
|
+
const event = new TestEventA({
|
|
238
|
+
type: TestEventA.name,
|
|
239
|
+
});
|
|
210
240
|
let i = 0;
|
|
211
|
-
await eventBusA.listenOnce(
|
|
241
|
+
await eventBusA.listenOnce(TestEventA, () => {
|
|
212
242
|
i++;
|
|
213
243
|
});
|
|
214
244
|
await eventBusA.dispatch(event);
|
|
@@ -220,111 +250,117 @@ export function eventBusTestSuite(settings) {
|
|
|
220
250
|
});
|
|
221
251
|
describe("Group tests:", () => {
|
|
222
252
|
test("method: addListener / dispatch", async () => {
|
|
223
|
-
const event = {
|
|
224
|
-
type:
|
|
225
|
-
};
|
|
253
|
+
const event = new TestEventA({
|
|
254
|
+
type: TestEventA.name,
|
|
255
|
+
});
|
|
226
256
|
let result_a = null;
|
|
227
|
-
await eventBusA.addListener(
|
|
257
|
+
await eventBusA.addListener(TestEventA, (event) => {
|
|
228
258
|
result_a = event;
|
|
229
259
|
});
|
|
230
260
|
let result_b = null;
|
|
231
|
-
await eventBusB.addListener(
|
|
261
|
+
await eventBusB.addListener(TestEventA, (event) => {
|
|
232
262
|
result_b = event;
|
|
233
263
|
});
|
|
234
264
|
await eventBusA.dispatch(event);
|
|
235
265
|
expect(result_a).toEqual(event);
|
|
266
|
+
expect(result_a).toBeInstanceOf(TestEventA);
|
|
236
267
|
expect(result_b).toBeNull();
|
|
237
268
|
});
|
|
238
269
|
test("method: addListenerMany / dispatch", async () => {
|
|
239
|
-
const event = {
|
|
270
|
+
const event = new TestEventA({
|
|
240
271
|
type: "type",
|
|
241
|
-
};
|
|
272
|
+
});
|
|
242
273
|
let result_a = null;
|
|
243
|
-
await eventBusA.addListenerMany([
|
|
274
|
+
await eventBusA.addListenerMany([TestEventA], (event) => {
|
|
244
275
|
result_a = event;
|
|
245
276
|
});
|
|
246
277
|
let result_b = null;
|
|
247
|
-
await eventBusB.addListenerMany([
|
|
278
|
+
await eventBusB.addListenerMany([TestEventA], (event) => {
|
|
248
279
|
result_b = event;
|
|
249
280
|
});
|
|
250
281
|
await eventBusA.dispatch(event);
|
|
251
282
|
expect(result_a).toEqual(event);
|
|
283
|
+
expect(result_a).toBeInstanceOf(TestEventA);
|
|
252
284
|
expect(result_b).toBeNull();
|
|
253
285
|
});
|
|
254
286
|
test("method: removeListener / addListener / dispatch", async () => {
|
|
255
|
-
const event = {
|
|
256
|
-
type:
|
|
257
|
-
};
|
|
287
|
+
const event = new TestEventA({
|
|
288
|
+
type: TestEventA.name,
|
|
289
|
+
});
|
|
258
290
|
let result_a = null;
|
|
259
|
-
await eventBusA.addListener(
|
|
291
|
+
await eventBusA.addListener(TestEventA, (event) => {
|
|
260
292
|
result_a = event;
|
|
261
293
|
});
|
|
262
294
|
let result_b = null;
|
|
263
295
|
const listenerB = (event) => {
|
|
264
296
|
result_b = event;
|
|
265
297
|
};
|
|
266
|
-
await eventBusB.addListener(
|
|
267
|
-
await eventBusB.removeListener(
|
|
298
|
+
await eventBusB.addListener(TestEventA, listenerB);
|
|
299
|
+
await eventBusB.removeListener(TestEventA, listenerB);
|
|
268
300
|
await eventBusA.dispatch(event);
|
|
269
301
|
await eventBusB.dispatch(event);
|
|
270
302
|
expect(result_a).toEqual(event);
|
|
303
|
+
expect(result_a).toBeInstanceOf(TestEventA);
|
|
271
304
|
expect(result_b).toBeNull();
|
|
272
305
|
});
|
|
273
306
|
test("method: removeListenerMany / addListener / dispatch", async () => {
|
|
274
|
-
const event = {
|
|
275
|
-
type:
|
|
276
|
-
};
|
|
307
|
+
const event = new TestEventA({
|
|
308
|
+
type: TestEventA.name,
|
|
309
|
+
});
|
|
277
310
|
let result_a = null;
|
|
278
|
-
await eventBusA.addListener(
|
|
311
|
+
await eventBusA.addListener(TestEventA, (event) => {
|
|
279
312
|
result_a = event;
|
|
280
313
|
});
|
|
281
314
|
let result_b = null;
|
|
282
315
|
const listenerB = (event) => {
|
|
283
316
|
result_b = event;
|
|
284
317
|
};
|
|
285
|
-
await eventBusB.addListener(
|
|
286
|
-
await eventBusB.removeListenerMany([
|
|
318
|
+
await eventBusB.addListener(TestEventA, listenerB);
|
|
319
|
+
await eventBusB.removeListenerMany([TestEventA], listenerB);
|
|
287
320
|
await eventBusA.dispatch(event);
|
|
288
321
|
await eventBusB.dispatch(event);
|
|
289
322
|
expect(result_a).toEqual(event);
|
|
323
|
+
expect(result_a).toBeInstanceOf(TestEventA);
|
|
290
324
|
expect(result_b).toBeNull();
|
|
291
325
|
});
|
|
292
326
|
test("method: subscribe / dispatch", async () => {
|
|
293
|
-
const event = {
|
|
294
|
-
type:
|
|
295
|
-
};
|
|
327
|
+
const event = new TestEventA({
|
|
328
|
+
type: TestEventA.name,
|
|
329
|
+
});
|
|
296
330
|
let result_a = null;
|
|
297
|
-
await eventBusA.subscribe(
|
|
331
|
+
await eventBusA.subscribe(TestEventA, (event) => {
|
|
298
332
|
result_a = event;
|
|
299
333
|
});
|
|
300
334
|
let result_b = null;
|
|
301
335
|
const listenerB = (event) => {
|
|
302
336
|
result_b = event;
|
|
303
337
|
};
|
|
304
|
-
const unsubscribe = await eventBusB.subscribe(
|
|
338
|
+
const unsubscribe = await eventBusB.subscribe(TestEventA, listenerB);
|
|
305
339
|
await unsubscribe();
|
|
306
340
|
await eventBusA.dispatch(event);
|
|
307
341
|
await eventBusB.dispatch(event);
|
|
308
342
|
expect(result_a).toEqual(event);
|
|
343
|
+
expect(result_a).toBeInstanceOf(TestEventA);
|
|
309
344
|
expect(result_b).toBeNull();
|
|
310
345
|
});
|
|
311
346
|
test("method: subscribeMany / dispatch", async () => {
|
|
312
|
-
const event = {
|
|
313
|
-
type:
|
|
314
|
-
};
|
|
347
|
+
const event = new TestEventA({
|
|
348
|
+
type: TestEventA.name,
|
|
349
|
+
});
|
|
315
350
|
let result_a = null;
|
|
316
|
-
await eventBusA.subscribeMany([
|
|
351
|
+
await eventBusA.subscribeMany([TestEventA], (event) => {
|
|
317
352
|
result_a = event;
|
|
318
353
|
});
|
|
319
354
|
let result_b = null;
|
|
320
355
|
const listenerB = (event) => {
|
|
321
356
|
result_b = event;
|
|
322
357
|
};
|
|
323
|
-
const unsubscribe = await eventBusB.subscribeMany([
|
|
358
|
+
const unsubscribe = await eventBusB.subscribeMany([TestEventA], listenerB);
|
|
324
359
|
await unsubscribe();
|
|
325
360
|
await eventBusA.dispatch(event);
|
|
326
361
|
await eventBusB.dispatch(event);
|
|
327
362
|
expect(result_a).toEqual(event);
|
|
363
|
+
expect(result_a).toBeInstanceOf(TestEventA);
|
|
328
364
|
expect(result_b).toBeNull();
|
|
329
365
|
});
|
|
330
366
|
});
|