@daiso-tech/core 0.21.0 → 0.22.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/_module.js +2 -0
- package/dist/cjs/_module.js.map +1 -1
- package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js +16 -9
- package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
- package/dist/cjs/cache/contracts/cache.events.js +13 -139
- package/dist/cjs/cache/contracts/cache.events.js.map +1 -1
- package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js +5 -24
- package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
- package/dist/cjs/cache/implementations/_shared/cache.test-suite.js +729 -21
- 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 +1 -21
- 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 +0 -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.js +0 -7
- 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 +0 -1
- 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.js +3 -11
- 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 +0 -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.js +6 -28
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +0 -3
- package/dist/cjs/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js +0 -1
- 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.js +5 -13
- 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 +0 -1
- 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.js +0 -7
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/derivables/cache/_module.js +0 -1
- package/dist/cjs/cache/implementations/derivables/cache/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/derivables/cache/cache.js +215 -103
- package/dist/cjs/cache/implementations/derivables/cache/cache.js.map +1 -1
- package/dist/cjs/cache/implementations/derivables/cache-factory/_module.js +0 -1
- package/dist/cjs/cache/implementations/derivables/cache-factory/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/derivables/cache-factory/cache-factory.js +0 -4
- package/dist/cjs/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
- package/dist/cjs/event-bus/contracts/_shared.js +3 -2
- package/dist/cjs/event-bus/contracts/_shared.js.map +1 -1
- package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +4 -15
- 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 +6 -27
- 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 +0 -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.js +0 -4
- 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/redis-pub-sub-event-bus-adapter/_module.js +0 -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.js +0 -4
- 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/event-bus/_module.js +0 -1
- package/dist/cjs/event-bus/implementations/derivables/event-bus/_module.js.map +1 -1
- package/dist/cjs/event-bus/implementations/derivables/event-bus/event-bus.js +0 -4
- package/dist/cjs/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/_module.js +0 -1
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/_module.js.map +1 -1
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js +0 -4
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +1 -1
- package/dist/cjs/lock/contracts/_module.js +24 -0
- package/dist/cjs/lock/contracts/_module.js.map +1 -0
- package/dist/cjs/lock/contracts/database-lock-adapter.contract.js +3 -0
- package/dist/cjs/lock/contracts/database-lock-adapter.contract.js.map +1 -0
- package/dist/cjs/lock/contracts/lock-adapter.contract.js +3 -0
- package/dist/cjs/lock/contracts/lock-adapter.contract.js.map +1 -0
- package/dist/cjs/lock/contracts/lock-provider-factory.contract.js +3 -0
- package/dist/cjs/lock/contracts/lock-provider-factory.contract.js.map +1 -0
- package/dist/cjs/lock/contracts/lock-provider.contract.js +3 -0
- package/dist/cjs/lock/contracts/lock-provider.contract.js.map +1 -0
- package/dist/cjs/lock/contracts/lock.contract.js +3 -0
- package/dist/cjs/lock/contracts/lock.contract.js.map +1 -0
- package/dist/cjs/lock/contracts/lock.errors.js +131 -0
- package/dist/cjs/lock/contracts/lock.errors.js.map +1 -0
- package/dist/cjs/lock/contracts/lock.events.js +44 -0
- package/dist/cjs/lock/contracts/lock.events.js.map +1 -0
- package/dist/cjs/lock/implementations/_module.js +20 -0
- package/dist/cjs/lock/implementations/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/_shared/_module.js +20 -0
- package/dist/cjs/lock/implementations/_shared/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/_shared/database-lock-adapter.test-suite.js +285 -0
- package/dist/cjs/lock/implementations/_shared/database-lock-adapter.test-suite.js.map +1 -0
- package/dist/cjs/lock/implementations/_shared/lock-adapter.test-suite.js +238 -0
- package/dist/cjs/lock/implementations/_shared/lock-adapter.test-suite.js.map +1 -0
- package/dist/cjs/lock/implementations/_shared/lock-provider.test-suite.js +1841 -0
- package/dist/cjs/lock/implementations/_shared/lock-provider.test-suite.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/_module.js +22 -0
- package/dist/cjs/lock/implementations/adapters/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/kysely-lock-adapter/_module.js +18 -0
- package/dist/cjs/lock/implementations/adapters/kysely-lock-adapter/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js +126 -0
- package/dist/cjs/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/libsql-lock-adapter/_module.js +18 -0
- package/dist/cjs/lock/implementations/adapters/libsql-lock-adapter/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js +61 -0
- package/dist/cjs/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/memory-lock-adapter/_module.js +18 -0
- package/dist/cjs/lock/implementations/adapters/memory-lock-adapter/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js +107 -0
- package/dist/cjs/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/mongodb-lock-adapter/_module.js +18 -0
- package/dist/cjs/lock/implementations/adapters/mongodb-lock-adapter/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js +148 -0
- package/dist/cjs/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/redis-lock-adapter/_module.js +18 -0
- package/dist/cjs/lock/implementations/adapters/redis-lock-adapter/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js +131 -0
- package/dist/cjs/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/sqlite-lock-adapter/_module.js +18 -0
- package/dist/cjs/lock/implementations/adapters/sqlite-lock-adapter/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js +60 -0
- package/dist/cjs/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js.map +1 -0
- package/dist/cjs/lock/implementations/derivables/_module.js +19 -0
- package/dist/cjs/lock/implementations/derivables/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider/_module.js +18 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider/database-lock-adapter.js +80 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider/database-lock-adapter.js.map +1 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider/lock-provider.js +162 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider/lock.js +306 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider/lock.js.map +1 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider-factory/_module.js +18 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider-factory/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js +78 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -0
- package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js +3 -0
- package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js.map +1 -1
- package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js +15 -0
- 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/serde-registrable.contract.js +3 -0
- package/dist/cjs/utilities/contracts/serde-registrable.contract.js.map +1 -0
- package/dist/cjs/utilities/functions.js +4 -0
- package/dist/cjs/utilities/functions.js.map +1 -1
- package/dist/esm/_module.js +2 -0
- package/dist/esm/_module.js.map +1 -1
- package/dist/esm/async/utilities/lazy-promise/lazy-promise.js +16 -9
- package/dist/esm/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
- package/dist/esm/cache/contracts/cache.events.js +11 -138
- package/dist/esm/cache/contracts/cache.events.js.map +1 -1
- package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js +5 -24
- package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
- package/dist/esm/cache/implementations/_shared/cache.test-suite.js +731 -23
- 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 +1 -21
- 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 +0 -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.js +0 -7
- 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 +0 -1
- 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.js +3 -11
- 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 +0 -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.js +6 -28
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +0 -3
- package/dist/esm/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js +0 -1
- 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.js +5 -13
- 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 +0 -1
- 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.js +0 -7
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/derivables/cache/_module.js +0 -1
- package/dist/esm/cache/implementations/derivables/cache/_module.js.map +1 -1
- package/dist/esm/cache/implementations/derivables/cache/cache.js +216 -104
- package/dist/esm/cache/implementations/derivables/cache/cache.js.map +1 -1
- package/dist/esm/cache/implementations/derivables/cache-factory/_module.js +0 -1
- package/dist/esm/cache/implementations/derivables/cache-factory/_module.js.map +1 -1
- package/dist/esm/cache/implementations/derivables/cache-factory/cache-factory.js +0 -4
- package/dist/esm/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
- package/dist/esm/event-bus/contracts/_shared.js +3 -2
- package/dist/esm/event-bus/contracts/_shared.js.map +1 -1
- package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +4 -15
- 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 +7 -28
- 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 +0 -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.js +0 -4
- 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/redis-pub-sub-event-bus-adapter/_module.js +0 -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.js +0 -4
- 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/event-bus/_module.js +0 -1
- package/dist/esm/event-bus/implementations/derivables/event-bus/_module.js.map +1 -1
- package/dist/esm/event-bus/implementations/derivables/event-bus/event-bus.js +0 -4
- package/dist/esm/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory/_module.js +0 -1
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory/_module.js.map +1 -1
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js +0 -4
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +1 -1
- package/dist/esm/lock/contracts/_module.js +8 -0
- package/dist/esm/lock/contracts/_module.js.map +1 -0
- package/dist/esm/lock/contracts/database-lock-adapter.contract.js +1 -0
- package/dist/esm/lock/contracts/database-lock-adapter.contract.js.map +1 -0
- package/dist/esm/lock/contracts/lock-adapter.contract.js +1 -0
- package/dist/esm/lock/contracts/lock-adapter.contract.js.map +1 -0
- package/dist/esm/lock/contracts/lock-provider-factory.contract.js +1 -0
- package/dist/esm/lock/contracts/lock-provider-factory.contract.js.map +1 -0
- package/dist/esm/lock/contracts/lock-provider.contract.js +1 -0
- package/dist/esm/lock/contracts/lock-provider.contract.js.map +1 -0
- package/dist/esm/lock/contracts/lock.contract.js +1 -0
- package/dist/esm/lock/contracts/lock.contract.js.map +1 -0
- package/dist/esm/lock/contracts/lock.errors.js +120 -0
- package/dist/esm/lock/contracts/lock.errors.js.map +1 -0
- package/dist/esm/lock/contracts/lock.events.js +32 -0
- package/dist/esm/lock/contracts/lock.events.js.map +1 -0
- package/dist/esm/lock/implementations/_module.js +4 -0
- package/dist/esm/lock/implementations/_module.js.map +1 -0
- package/dist/esm/lock/implementations/_shared/_module.js +4 -0
- package/dist/esm/lock/implementations/_shared/_module.js.map +1 -0
- package/dist/esm/lock/implementations/_shared/database-lock-adapter.test-suite.js +282 -0
- package/dist/esm/lock/implementations/_shared/database-lock-adapter.test-suite.js.map +1 -0
- package/dist/esm/lock/implementations/_shared/lock-adapter.test-suite.js +235 -0
- package/dist/esm/lock/implementations/_shared/lock-adapter.test-suite.js.map +1 -0
- package/dist/esm/lock/implementations/_shared/lock-provider.test-suite.js +1838 -0
- package/dist/esm/lock/implementations/_shared/lock-provider.test-suite.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/_module.js +6 -0
- package/dist/esm/lock/implementations/adapters/_module.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/kysely-lock-adapter/_module.js +2 -0
- package/dist/esm/lock/implementations/adapters/kysely-lock-adapter/_module.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js +122 -0
- package/dist/esm/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/libsql-lock-adapter/_module.js +2 -0
- package/dist/esm/lock/implementations/adapters/libsql-lock-adapter/_module.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js +57 -0
- package/dist/esm/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/memory-lock-adapter/_module.js +2 -0
- package/dist/esm/lock/implementations/adapters/memory-lock-adapter/_module.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js +103 -0
- package/dist/esm/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/mongodb-lock-adapter/_module.js +2 -0
- package/dist/esm/lock/implementations/adapters/mongodb-lock-adapter/_module.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js +144 -0
- package/dist/esm/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/redis-lock-adapter/_module.js +2 -0
- package/dist/esm/lock/implementations/adapters/redis-lock-adapter/_module.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js +127 -0
- package/dist/esm/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/sqlite-lock-adapter/_module.js +2 -0
- package/dist/esm/lock/implementations/adapters/sqlite-lock-adapter/_module.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js +56 -0
- package/dist/esm/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js.map +1 -0
- package/dist/esm/lock/implementations/derivables/_module.js +3 -0
- package/dist/esm/lock/implementations/derivables/_module.js.map +1 -0
- package/dist/esm/lock/implementations/derivables/lock-provider/_module.js +2 -0
- package/dist/esm/lock/implementations/derivables/lock-provider/_module.js.map +1 -0
- package/dist/esm/lock/implementations/derivables/lock-provider/database-lock-adapter.js +76 -0
- package/dist/esm/lock/implementations/derivables/lock-provider/database-lock-adapter.js.map +1 -0
- package/dist/esm/lock/implementations/derivables/lock-provider/lock-provider.js +158 -0
- package/dist/esm/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -0
- package/dist/esm/lock/implementations/derivables/lock-provider/lock.js +302 -0
- package/dist/esm/lock/implementations/derivables/lock-provider/lock.js.map +1 -0
- package/dist/esm/lock/implementations/derivables/lock-provider-factory/_module.js +2 -0
- package/dist/esm/lock/implementations/derivables/lock-provider-factory/_module.js.map +1 -0
- package/dist/esm/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js +74 -0
- package/dist/esm/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -0
- package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js +3 -0
- package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js.map +1 -1
- package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js +15 -0
- 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/serde-registrable.contract.js +1 -0
- package/dist/esm/utilities/contracts/serde-registrable.contract.js.map +1 -0
- package/dist/esm/utilities/functions.js +4 -0
- package/dist/esm/utilities/functions.js.map +1 -1
- package/dist/types/_module.d.ts +2 -0
- package/dist/types/async/utilities/lazy-promise/lazy-promise.d.ts +2 -2
- package/dist/types/cache/contracts/cache-adapter.contract.d.ts +2 -6
- package/dist/types/cache/contracts/cache-factory.contract.d.ts +1 -2
- package/dist/types/cache/contracts/cache.contract.d.ts +116 -8
- package/dist/types/cache/contracts/cache.events.d.ts +24 -90
- package/dist/types/cache/implementations/_shared/cache-adapter.test-suite.d.ts +2 -9
- package/dist/types/cache/implementations/_shared/cache.test-suite.d.ts +5 -15
- package/dist/types/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.d.ts +0 -1
- package/dist/types/cache/implementations/adapters/libsql-cache-adapter/_module.d.ts +0 -1
- package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.d.ts +23 -30
- package/dist/types/cache/implementations/adapters/memory-cache-adapter/_module.d.ts +0 -1
- package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +8 -19
- package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/_module.d.ts +0 -1
- package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +16 -27
- package/dist/types/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +0 -1
- package/dist/types/cache/implementations/adapters/redis-cache-adapter/_module.d.ts +0 -1
- package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +12 -23
- package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/_module.d.ts +0 -1
- package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +23 -30
- package/dist/types/cache/implementations/derivables/cache/_module.d.ts +0 -1
- package/dist/types/cache/implementations/derivables/cache/cache.d.ts +38 -27
- package/dist/types/cache/implementations/derivables/cache-factory/_module.d.ts +0 -1
- package/dist/types/cache/implementations/derivables/cache-factory/cache-factory.d.ts +60 -26
- package/dist/types/collection/contracts/async-collection.contract.d.ts +68 -8
- package/dist/types/event-bus/contracts/_shared.d.ts +3 -4
- package/dist/types/event-bus/contracts/event-bus-adapter.contract.d.ts +1 -1
- package/dist/types/event-bus/contracts/event-bus-factory.contract.d.ts +5 -24
- package/dist/types/event-bus/implementations/_shared/event-bus-adapter.test-suite.d.ts +2 -10
- package/dist/types/event-bus/implementations/_shared/event-bus.test-suite.d.ts +3 -13
- package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/_module.d.ts +0 -1
- package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.d.ts +8 -18
- package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.d.ts +0 -1
- package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.d.ts +11 -20
- package/dist/types/event-bus/implementations/derivables/event-bus/_module.d.ts +0 -1
- package/dist/types/event-bus/implementations/derivables/event-bus/event-bus.d.ts +29 -20
- package/dist/types/event-bus/implementations/derivables/event-bus-factory/_module.d.ts +0 -1
- package/dist/types/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.d.ts +49 -46
- package/dist/types/lock/contracts/_module.d.ts +7 -0
- package/dist/types/lock/contracts/database-lock-adapter.contract.d.ts +49 -0
- package/dist/types/lock/contracts/lock-adapter.contract.d.ts +48 -0
- package/dist/types/lock/contracts/lock-provider-factory.contract.d.ts +36 -0
- package/dist/types/lock/contracts/lock-provider.contract.d.ts +92 -0
- package/dist/types/lock/contracts/lock.contract.d.ts +219 -0
- package/dist/types/lock/contracts/lock.errors.d.ts +66 -0
- package/dist/types/lock/contracts/lock.events.d.ts +83 -0
- package/dist/types/lock/implementations/_module.d.ts +3 -0
- package/dist/types/lock/implementations/_shared/_module.d.ts +3 -0
- package/dist/types/lock/implementations/_shared/database-lock-adapter.test-suite.d.ts +21 -0
- package/dist/types/lock/implementations/_shared/lock-adapter.test-suite.d.ts +21 -0
- package/dist/types/lock/implementations/_shared/lock-provider.test-suite.d.ts +23 -0
- package/dist/types/lock/implementations/adapters/_module.d.ts +5 -0
- package/dist/types/lock/implementations/adapters/kysely-lock-adapter/_module.d.ts +1 -0
- package/dist/types/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.d.ts +52 -0
- package/dist/types/lock/implementations/adapters/libsql-lock-adapter/_module.d.ts +1 -0
- package/dist/types/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.d.ts +58 -0
- package/dist/types/lock/implementations/adapters/memory-lock-adapter/_module.d.ts +1 -0
- package/dist/types/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.d.ts +52 -0
- package/dist/types/lock/implementations/adapters/mongodb-lock-adapter/_module.d.ts +1 -0
- package/dist/types/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.d.ts +60 -0
- package/dist/types/lock/implementations/adapters/redis-lock-adapter/_module.d.ts +1 -0
- package/dist/types/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.d.ts +57 -0
- package/dist/types/lock/implementations/adapters/sqlite-lock-adapter/_module.d.ts +1 -0
- package/dist/types/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.d.ts +57 -0
- package/dist/types/lock/implementations/derivables/_module.d.ts +2 -0
- package/dist/types/lock/implementations/derivables/lock-provider/_module.d.ts +1 -0
- package/dist/types/lock/implementations/derivables/lock-provider/database-lock-adapter.d.ts +23 -0
- package/dist/types/lock/implementations/derivables/lock-provider/lock-provider.d.ts +89 -0
- package/dist/types/lock/implementations/derivables/lock-provider/lock.d.ts +73 -0
- package/dist/types/lock/implementations/derivables/lock-provider-factory/_module.d.ts +1 -0
- package/dist/types/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.d.ts +98 -0
- package/dist/types/serde/contracts/flexible-serde.contract.d.ts +3 -2
- package/dist/types/serde/implementations/no-op-serde/no-op-serde.d.ts +2 -1
- package/dist/types/serde/implementations/super-json-serde/super-json-serde.d.ts +2 -1
- package/dist/types/utilities/contracts/_module.d.ts +1 -0
- package/dist/types/utilities/contracts/serde-registrable.contract.d.ts +11 -0
- package/dist/types/utilities/types.d.ts +3 -1
- package/package.json +5 -3
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +0 -56
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +0 -1
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +0 -26
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +0 -1
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +0 -44
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +0 -1
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +0 -32
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +0 -1
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +0 -56
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +0 -1
- package/dist/cjs/cache/implementations/derivables/cache/cache-settings.js +0 -56
- package/dist/cjs/cache/implementations/derivables/cache/cache-settings.js.map +0 -1
- package/dist/cjs/cache/implementations/derivables/cache-factory/cache-factory-settings.js +0 -83
- package/dist/cjs/cache/implementations/derivables/cache-factory/cache-factory-settings.js.map +0 -1
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +0 -26
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +0 -1
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +0 -38
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +0 -1
- package/dist/cjs/event-bus/implementations/derivables/event-bus/event-bus-settings.js +0 -56
- package/dist/cjs/event-bus/implementations/derivables/event-bus/event-bus-settings.js.map +0 -1
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/event-bus-factory-settings.js +0 -71
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/event-bus-factory-settings.js.map +0 -1
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +0 -52
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +0 -1
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +0 -22
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +0 -1
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +0 -40
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +0 -1
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +0 -28
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +0 -1
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +0 -52
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +0 -1
- package/dist/esm/cache/implementations/derivables/cache/cache-settings.js +0 -52
- package/dist/esm/cache/implementations/derivables/cache/cache-settings.js.map +0 -1
- package/dist/esm/cache/implementations/derivables/cache-factory/cache-factory-settings.js +0 -79
- package/dist/esm/cache/implementations/derivables/cache-factory/cache-factory-settings.js.map +0 -1
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +0 -22
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +0 -1
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +0 -34
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +0 -1
- package/dist/esm/event-bus/implementations/derivables/event-bus/event-bus-settings.js +0 -52
- package/dist/esm/event-bus/implementations/derivables/event-bus/event-bus-settings.js.map +0 -1
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory/event-bus-factory-settings.js +0 -67
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory/event-bus-factory-settings.js.map +0 -1
- package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.d.ts +0 -48
- package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.d.ts +0 -26
- package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.d.ts +0 -50
- package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.d.ts +0 -32
- package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.d.ts +0 -48
- package/dist/types/cache/implementations/derivables/cache/cache-settings.d.ts +0 -73
- package/dist/types/cache/implementations/derivables/cache-factory/cache-factory-settings.d.ts +0 -108
- package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.d.ts +0 -27
- package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.d.ts +0 -36
- package/dist/types/event-bus/implementations/derivables/event-bus/event-bus-settings.d.ts +0 -62
- package/dist/types/event-bus/implementations/derivables/event-bus-factory/event-bus-factory-settings.d.ts +0 -92
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { KeyNotFoundCacheError, TypeCacheError, } from "../../../cache/contracts/_module";
|
|
1
|
+
import { KeyNotFoundCacheError, KeyNotFoundCacheEvent, KeyFoundCacheEvent, TypeCacheError, KeyAddedCacheEvent, KeyUpdatedCacheEvent, KeyRemovedCacheEvent, KeysClearedCacheEvent, KeyIncrementedCacheEvent, KeyDecrementedCacheEvent, } from "../../../cache/contracts/_module";
|
|
2
2
|
import { TimeSpan } from "../../../utilities/_module";
|
|
3
|
-
import { delay } from "../../../async/_module";
|
|
3
|
+
import { delay, LazyPromise } from "../../../async/_module";
|
|
4
4
|
export function cacheTestSuite(settings) {
|
|
5
|
-
const { expect, test,
|
|
5
|
+
const { expect, test, createCache, describe, beforeEach } = settings;
|
|
6
6
|
let cacheA;
|
|
7
7
|
let cacheB;
|
|
8
8
|
beforeEach(async () => {
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
const cache = await createCache();
|
|
10
|
+
cacheA = cache;
|
|
11
|
+
cacheB = cache.withGroup("b");
|
|
11
12
|
});
|
|
12
13
|
describe("Api tests:", () => {
|
|
13
14
|
const TTL = TimeSpan.fromMilliseconds(50);
|
|
@@ -153,32 +154,40 @@ export function cacheTestSuite(settings) {
|
|
|
153
154
|
expect(await cacheA.getOr("a", -1)).toBe(1);
|
|
154
155
|
});
|
|
155
156
|
describe("Should return default value when key doesnt exists", () => {
|
|
156
|
-
test("
|
|
157
|
+
test("Value", async () => {
|
|
157
158
|
expect(await cacheA.getOr("a", -1)).toBe(-1);
|
|
158
159
|
});
|
|
159
|
-
test("
|
|
160
|
+
test("Function", async () => {
|
|
160
161
|
expect(await cacheA.getOr("a", () => -1)).toBe(-1);
|
|
161
162
|
});
|
|
162
|
-
test("Async
|
|
163
|
+
test("Async function", async () => {
|
|
163
164
|
expect(await cacheA.getOr("a", () => Promise.resolve(-1))).toBe(-1);
|
|
164
165
|
});
|
|
166
|
+
test("LazyPromise", async () => {
|
|
167
|
+
expect(await cacheA.getOr("a", new LazyPromise(() => Promise.resolve(-1)))).toBe(-1);
|
|
168
|
+
});
|
|
165
169
|
});
|
|
166
170
|
describe("Should return default value when key is expired", () => {
|
|
167
|
-
test("
|
|
171
|
+
test("Value", async () => {
|
|
168
172
|
await cacheA.add("a", 1, TTL);
|
|
169
173
|
await delay(TTL);
|
|
170
174
|
expect(await cacheA.getOr("a", -1)).toBe(-1);
|
|
171
175
|
});
|
|
172
|
-
test("
|
|
176
|
+
test("Function", async () => {
|
|
173
177
|
await cacheA.add("a", 1, TTL);
|
|
174
178
|
await delay(TTL);
|
|
175
179
|
expect(await cacheA.getOr("a", () => -1)).toBe(-1);
|
|
176
180
|
});
|
|
177
|
-
test("Async
|
|
181
|
+
test("Async function", async () => {
|
|
178
182
|
await cacheA.add("a", 1, TTL);
|
|
179
183
|
await delay(TTL);
|
|
180
184
|
expect(await cacheA.getOr("a", () => Promise.resolve(-1))).toBe(-1);
|
|
181
185
|
});
|
|
186
|
+
test("LazyPromise", async () => {
|
|
187
|
+
await cacheA.add("a", 1, TTL);
|
|
188
|
+
await delay(TTL);
|
|
189
|
+
expect(await cacheA.getOr("a", new LazyPromise(() => Promise.resolve(-1)))).toBe(-1);
|
|
190
|
+
});
|
|
182
191
|
});
|
|
183
192
|
});
|
|
184
193
|
describe("method: getOrFail", () => {
|
|
@@ -207,19 +216,19 @@ export function cacheTestSuite(settings) {
|
|
|
207
216
|
});
|
|
208
217
|
});
|
|
209
218
|
describe("Should return only default values when all keys doesnt exists", () => {
|
|
210
|
-
test("
|
|
219
|
+
test("Value", async () => {
|
|
211
220
|
expect(await cacheA.getOrMany({ a: -1, b: -1 })).toEqual({
|
|
212
221
|
a: -1,
|
|
213
222
|
b: -1,
|
|
214
223
|
});
|
|
215
224
|
});
|
|
216
|
-
test("
|
|
225
|
+
test("Function", async () => {
|
|
217
226
|
expect(await cacheA.getOrMany({ a: () => -1, b: () => -1 })).toEqual({
|
|
218
227
|
a: -1,
|
|
219
228
|
b: -1,
|
|
220
229
|
});
|
|
221
230
|
});
|
|
222
|
-
test("Async
|
|
231
|
+
test("Async function", async () => {
|
|
223
232
|
expect(await cacheA.getOrMany({
|
|
224
233
|
a: () => Promise.resolve(-1),
|
|
225
234
|
b: () => Promise.resolve(-1),
|
|
@@ -228,9 +237,18 @@ export function cacheTestSuite(settings) {
|
|
|
228
237
|
b: -1,
|
|
229
238
|
});
|
|
230
239
|
});
|
|
240
|
+
test("LazyPromise", async () => {
|
|
241
|
+
expect(await cacheA.getOrMany({
|
|
242
|
+
a: new LazyPromise(() => Promise.resolve(-1)),
|
|
243
|
+
b: new LazyPromise(() => Promise.resolve(-1)),
|
|
244
|
+
})).toEqual({
|
|
245
|
+
a: -1,
|
|
246
|
+
b: -1,
|
|
247
|
+
});
|
|
248
|
+
});
|
|
231
249
|
});
|
|
232
250
|
describe("Should return default value when key is expired", () => {
|
|
233
|
-
test("
|
|
251
|
+
test("Value", async () => {
|
|
234
252
|
await cacheA.add("a", 1, TTL);
|
|
235
253
|
await delay(TTL);
|
|
236
254
|
expect(await cacheA.getOrMany({
|
|
@@ -239,7 +257,7 @@ export function cacheTestSuite(settings) {
|
|
|
239
257
|
a: -1,
|
|
240
258
|
});
|
|
241
259
|
});
|
|
242
|
-
test("
|
|
260
|
+
test("Function", async () => {
|
|
243
261
|
await cacheA.add("a", 1, TTL);
|
|
244
262
|
await delay(TTL);
|
|
245
263
|
expect(await cacheA.getOrMany({
|
|
@@ -248,7 +266,7 @@ export function cacheTestSuite(settings) {
|
|
|
248
266
|
a: -1,
|
|
249
267
|
});
|
|
250
268
|
});
|
|
251
|
-
test("Async
|
|
269
|
+
test("Async function", async () => {
|
|
252
270
|
await cacheA.add("a", 1, TTL);
|
|
253
271
|
await delay(TTL);
|
|
254
272
|
expect(await cacheA.getOrMany({
|
|
@@ -257,6 +275,15 @@ export function cacheTestSuite(settings) {
|
|
|
257
275
|
a: -1,
|
|
258
276
|
});
|
|
259
277
|
});
|
|
278
|
+
test("LazyPromise", async () => {
|
|
279
|
+
await cacheA.add("a", 1, TTL);
|
|
280
|
+
await delay(TTL);
|
|
281
|
+
expect(await cacheA.getOrMany({
|
|
282
|
+
a: new LazyPromise(() => Promise.resolve(-1)),
|
|
283
|
+
})).toEqual({
|
|
284
|
+
a: -1,
|
|
285
|
+
});
|
|
286
|
+
});
|
|
260
287
|
});
|
|
261
288
|
test("Should return values and default values when some keys exists", async () => {
|
|
262
289
|
await cacheA.add("a", 1);
|
|
@@ -680,38 +707,48 @@ export function cacheTestSuite(settings) {
|
|
|
680
707
|
expect(await cacheA.getOrAdd("a", -1)).toBe(1);
|
|
681
708
|
});
|
|
682
709
|
describe("Should persist insertion when key doesnt exists", () => {
|
|
683
|
-
test("
|
|
710
|
+
test("Value", async () => {
|
|
684
711
|
await cacheA.getOrAdd("a", -1);
|
|
685
712
|
expect(await cacheA.get("a")).toBe(-1);
|
|
686
713
|
});
|
|
687
|
-
test("
|
|
714
|
+
test("Function", async () => {
|
|
688
715
|
await cacheA.getOrAdd("a", () => -1);
|
|
689
716
|
expect(await cacheA.get("a")).toBe(-1);
|
|
690
717
|
});
|
|
691
|
-
test("Async
|
|
718
|
+
test("Async function", async () => {
|
|
692
719
|
await cacheA.getOrAdd("a", () => Promise.resolve(-1));
|
|
693
720
|
expect(await cacheA.get("a")).toBe(-1);
|
|
694
721
|
});
|
|
722
|
+
test("LazyPromise", async () => {
|
|
723
|
+
await cacheA.getOrAdd("a", new LazyPromise(() => Promise.resolve(-1)));
|
|
724
|
+
expect(await cacheA.get("a")).toBe(-1);
|
|
725
|
+
});
|
|
695
726
|
});
|
|
696
727
|
describe("Should persist insertion when key is expired", () => {
|
|
697
|
-
test("
|
|
728
|
+
test("Value", async () => {
|
|
698
729
|
await cacheA.add("a", 1, TTL);
|
|
699
730
|
await delay(TTL);
|
|
700
731
|
await cacheA.getOrAdd("a", -1);
|
|
701
732
|
expect(await cacheA.get("a")).toBe(-1);
|
|
702
733
|
});
|
|
703
|
-
test("
|
|
734
|
+
test("Function", async () => {
|
|
704
735
|
await cacheA.add("a", 1, TTL);
|
|
705
736
|
await delay(TTL);
|
|
706
737
|
await cacheA.getOrAdd("a", () => -1);
|
|
707
738
|
expect(await cacheA.get("a")).toBe(-1);
|
|
708
739
|
});
|
|
709
|
-
test("Async
|
|
740
|
+
test("Async function", async () => {
|
|
710
741
|
await cacheA.add("a", 1, TTL);
|
|
711
742
|
await delay(TTL);
|
|
712
743
|
await cacheA.getOrAdd("a", () => Promise.resolve(-1));
|
|
713
744
|
expect(await cacheA.get("a")).toBe(-1);
|
|
714
745
|
});
|
|
746
|
+
test("LazyPromise", async () => {
|
|
747
|
+
await cacheA.add("a", 1, TTL);
|
|
748
|
+
await delay(TTL);
|
|
749
|
+
await cacheA.getOrAdd("a", new LazyPromise(() => Promise.resolve(-1)));
|
|
750
|
+
expect(await cacheA.get("a")).toBe(-1);
|
|
751
|
+
});
|
|
715
752
|
});
|
|
716
753
|
});
|
|
717
754
|
describe("method: increment", () => {
|
|
@@ -802,6 +839,587 @@ export function cacheTestSuite(settings) {
|
|
|
802
839
|
});
|
|
803
840
|
});
|
|
804
841
|
});
|
|
842
|
+
describe("Event tests:", () => {
|
|
843
|
+
const delayTime = TimeSpan.fromMilliseconds(50);
|
|
844
|
+
describe("method: exists", () => {
|
|
845
|
+
test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
|
|
846
|
+
let event_ = null;
|
|
847
|
+
const unsubscribe = await cacheA.subscribe(KeyNotFoundCacheEvent, (event) => {
|
|
848
|
+
event_ = event;
|
|
849
|
+
});
|
|
850
|
+
await cacheA.exists("a");
|
|
851
|
+
await delay(delayTime);
|
|
852
|
+
expect(event_).toBeInstanceOf(KeyNotFoundCacheEvent);
|
|
853
|
+
expect(event_?.fields.key).toBe("a");
|
|
854
|
+
await unsubscribe();
|
|
855
|
+
});
|
|
856
|
+
test("Should dispatch KeyFoundCacheEvent when key exists", async () => {
|
|
857
|
+
let event_ = null;
|
|
858
|
+
const unsubscribe = await cacheA.subscribe(KeyFoundCacheEvent, (event) => {
|
|
859
|
+
event_ = event;
|
|
860
|
+
});
|
|
861
|
+
await cacheA.add("a", 1);
|
|
862
|
+
await cacheA.exists("a");
|
|
863
|
+
await delay(delayTime);
|
|
864
|
+
expect(event_).toBeInstanceOf(KeyFoundCacheEvent);
|
|
865
|
+
expect(event_?.fields.key).toBe("a");
|
|
866
|
+
expect(event_?.fields.value).toBe(1);
|
|
867
|
+
await unsubscribe();
|
|
868
|
+
});
|
|
869
|
+
});
|
|
870
|
+
describe("method: existsMany", () => {
|
|
871
|
+
test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
|
|
872
|
+
let event_ = null;
|
|
873
|
+
const unsubscribe = await cacheA.subscribe(KeyNotFoundCacheEvent, (event) => {
|
|
874
|
+
event_ = event;
|
|
875
|
+
});
|
|
876
|
+
await cacheA.existsMany(["a"]);
|
|
877
|
+
await delay(delayTime);
|
|
878
|
+
expect(event_).toBeInstanceOf(KeyNotFoundCacheEvent);
|
|
879
|
+
expect(event_?.fields.key).toBe("a");
|
|
880
|
+
await unsubscribe();
|
|
881
|
+
});
|
|
882
|
+
test("Should dispatch KeyFoundCacheEvent when key exists", async () => {
|
|
883
|
+
let event_ = null;
|
|
884
|
+
const unsubscribe = await cacheA.subscribe(KeyFoundCacheEvent, (event) => {
|
|
885
|
+
event_ = event;
|
|
886
|
+
});
|
|
887
|
+
await cacheA.add("a", 1);
|
|
888
|
+
await cacheA.existsMany(["a"]);
|
|
889
|
+
await delay(delayTime);
|
|
890
|
+
expect(event_).toBeInstanceOf(KeyFoundCacheEvent);
|
|
891
|
+
expect(event_?.fields.key).toBe("a");
|
|
892
|
+
expect(event_?.fields.value).toBe(1);
|
|
893
|
+
await unsubscribe();
|
|
894
|
+
});
|
|
895
|
+
});
|
|
896
|
+
describe("method: missing", () => {
|
|
897
|
+
test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
|
|
898
|
+
let event_ = null;
|
|
899
|
+
const unsubscribe = await cacheA.subscribe(KeyNotFoundCacheEvent, (event) => {
|
|
900
|
+
event_ = event;
|
|
901
|
+
});
|
|
902
|
+
await cacheA.missing("a");
|
|
903
|
+
await delay(delayTime);
|
|
904
|
+
expect(event_).toBeInstanceOf(KeyNotFoundCacheEvent);
|
|
905
|
+
expect(event_?.fields.key).toBe("a");
|
|
906
|
+
await unsubscribe();
|
|
907
|
+
});
|
|
908
|
+
test("Should dispatch KeyFoundCacheEvent when key exists", async () => {
|
|
909
|
+
let event_ = null;
|
|
910
|
+
const unsubscribe = await cacheA.subscribe(KeyFoundCacheEvent, (event) => {
|
|
911
|
+
event_ = event;
|
|
912
|
+
});
|
|
913
|
+
await cacheA.add("a", 1);
|
|
914
|
+
await cacheA.missing("a");
|
|
915
|
+
await delay(delayTime);
|
|
916
|
+
expect(event_).toBeInstanceOf(KeyFoundCacheEvent);
|
|
917
|
+
expect(event_?.fields.key).toBe("a");
|
|
918
|
+
expect(event_?.fields.value).toBe(1);
|
|
919
|
+
await unsubscribe();
|
|
920
|
+
});
|
|
921
|
+
});
|
|
922
|
+
describe("method: missingMany", () => {
|
|
923
|
+
test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
|
|
924
|
+
let event_ = null;
|
|
925
|
+
const unsubscribe = await cacheA.subscribe(KeyNotFoundCacheEvent, (event) => {
|
|
926
|
+
event_ = event;
|
|
927
|
+
});
|
|
928
|
+
await cacheA.missingMany(["a"]);
|
|
929
|
+
await delay(delayTime);
|
|
930
|
+
expect(event_).toBeInstanceOf(KeyNotFoundCacheEvent);
|
|
931
|
+
expect(event_?.fields.key).toBe("a");
|
|
932
|
+
await unsubscribe();
|
|
933
|
+
});
|
|
934
|
+
test("Should dispatch KeyFoundCacheEvent when key exists", async () => {
|
|
935
|
+
let event_ = null;
|
|
936
|
+
const unsubscribe = await cacheA.subscribe(KeyFoundCacheEvent, (event) => {
|
|
937
|
+
event_ = event;
|
|
938
|
+
});
|
|
939
|
+
await cacheA.add("a", 1);
|
|
940
|
+
await cacheA.missingMany(["a"]);
|
|
941
|
+
await delay(delayTime);
|
|
942
|
+
expect(event_).toBeInstanceOf(KeyFoundCacheEvent);
|
|
943
|
+
expect(event_?.fields.key).toBe("a");
|
|
944
|
+
expect(event_?.fields.value).toBe(1);
|
|
945
|
+
await unsubscribe();
|
|
946
|
+
});
|
|
947
|
+
});
|
|
948
|
+
describe("method: get", () => {
|
|
949
|
+
test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
|
|
950
|
+
let event_ = null;
|
|
951
|
+
const unsubscribe = await cacheA.subscribe(KeyNotFoundCacheEvent, (event) => {
|
|
952
|
+
event_ = event;
|
|
953
|
+
});
|
|
954
|
+
await cacheA.get("a");
|
|
955
|
+
await delay(delayTime);
|
|
956
|
+
expect(event_).toBeInstanceOf(KeyNotFoundCacheEvent);
|
|
957
|
+
expect(event_?.fields.key).toBe("a");
|
|
958
|
+
await unsubscribe();
|
|
959
|
+
});
|
|
960
|
+
test("Should dispatch KeyFoundCacheEvent when key exists", async () => {
|
|
961
|
+
let event_ = null;
|
|
962
|
+
const unsubscribe = await cacheA.subscribe(KeyFoundCacheEvent, (event) => {
|
|
963
|
+
event_ = event;
|
|
964
|
+
});
|
|
965
|
+
await cacheA.add("a", 1);
|
|
966
|
+
await cacheA.get("a");
|
|
967
|
+
await delay(delayTime);
|
|
968
|
+
expect(event_).toBeInstanceOf(KeyFoundCacheEvent);
|
|
969
|
+
expect(event_?.fields.key).toBe("a");
|
|
970
|
+
expect(event_?.fields.value).toBe(1);
|
|
971
|
+
await unsubscribe();
|
|
972
|
+
});
|
|
973
|
+
});
|
|
974
|
+
describe("method: getMany", () => {
|
|
975
|
+
test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
|
|
976
|
+
let event_ = null;
|
|
977
|
+
const unsubscribe = await cacheA.subscribe(KeyNotFoundCacheEvent, (event) => {
|
|
978
|
+
event_ = event;
|
|
979
|
+
});
|
|
980
|
+
await cacheA.getMany(["a"]);
|
|
981
|
+
await delay(delayTime);
|
|
982
|
+
expect(event_).toBeInstanceOf(KeyNotFoundCacheEvent);
|
|
983
|
+
expect(event_?.fields.key).toBe("a");
|
|
984
|
+
await unsubscribe();
|
|
985
|
+
});
|
|
986
|
+
test("Should dispatch KeyFoundCacheEvent when key exists", async () => {
|
|
987
|
+
let event_ = null;
|
|
988
|
+
const unsubscribe = await cacheA.subscribe(KeyFoundCacheEvent, (event) => {
|
|
989
|
+
event_ = event;
|
|
990
|
+
});
|
|
991
|
+
await cacheA.add("a", 1);
|
|
992
|
+
await cacheA.getMany(["a"]);
|
|
993
|
+
await delay(delayTime);
|
|
994
|
+
expect(event_).toBeInstanceOf(KeyFoundCacheEvent);
|
|
995
|
+
expect(event_?.fields.key).toBe("a");
|
|
996
|
+
expect(event_?.fields.value).toBe(1);
|
|
997
|
+
await unsubscribe();
|
|
998
|
+
});
|
|
999
|
+
});
|
|
1000
|
+
describe("method: getOr", () => {
|
|
1001
|
+
test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
|
|
1002
|
+
let event_ = null;
|
|
1003
|
+
const unsubscribe = await cacheA.subscribe(KeyNotFoundCacheEvent, (event) => {
|
|
1004
|
+
event_ = event;
|
|
1005
|
+
});
|
|
1006
|
+
await cacheA.getOr("a", 1);
|
|
1007
|
+
await delay(delayTime);
|
|
1008
|
+
expect(event_).toBeInstanceOf(KeyNotFoundCacheEvent);
|
|
1009
|
+
expect(event_?.fields.key).toBe("a");
|
|
1010
|
+
await unsubscribe();
|
|
1011
|
+
});
|
|
1012
|
+
test("Should dispatch KeyFoundCacheEvent when key exists", async () => {
|
|
1013
|
+
let event_ = null;
|
|
1014
|
+
const unsubscribe = await cacheA.subscribe(KeyFoundCacheEvent, (event) => {
|
|
1015
|
+
event_ = event;
|
|
1016
|
+
});
|
|
1017
|
+
await cacheA.add("a", 1);
|
|
1018
|
+
await cacheA.getOr("a", 1);
|
|
1019
|
+
await delay(delayTime);
|
|
1020
|
+
expect(event_).toBeInstanceOf(KeyFoundCacheEvent);
|
|
1021
|
+
expect(event_?.fields.key).toBe("a");
|
|
1022
|
+
expect(event_?.fields.value).toBe(1);
|
|
1023
|
+
await unsubscribe();
|
|
1024
|
+
});
|
|
1025
|
+
});
|
|
1026
|
+
describe("method: getOrMany", () => {
|
|
1027
|
+
test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
|
|
1028
|
+
let event_ = null;
|
|
1029
|
+
const unsubscribe = await cacheA.subscribe(KeyNotFoundCacheEvent, (event) => {
|
|
1030
|
+
event_ = event;
|
|
1031
|
+
});
|
|
1032
|
+
await cacheA.getOrMany({ a: 1 });
|
|
1033
|
+
await delay(delayTime);
|
|
1034
|
+
expect(event_).toBeInstanceOf(KeyNotFoundCacheEvent);
|
|
1035
|
+
expect(event_?.fields.key).toBe("a");
|
|
1036
|
+
await unsubscribe();
|
|
1037
|
+
});
|
|
1038
|
+
test("Should dispatch KeyFoundCacheEvent when key exists", async () => {
|
|
1039
|
+
let event_ = null;
|
|
1040
|
+
const unsubscribe = await cacheA.subscribe(KeyFoundCacheEvent, (event) => {
|
|
1041
|
+
event_ = event;
|
|
1042
|
+
});
|
|
1043
|
+
await cacheA.add("a", 1);
|
|
1044
|
+
await cacheA.getOrMany({ a: 1 });
|
|
1045
|
+
await delay(delayTime);
|
|
1046
|
+
expect(event_).toBeInstanceOf(KeyFoundCacheEvent);
|
|
1047
|
+
expect(event_?.fields.key).toBe("a");
|
|
1048
|
+
expect(event_?.fields.value).toBe(1);
|
|
1049
|
+
await unsubscribe();
|
|
1050
|
+
});
|
|
1051
|
+
});
|
|
1052
|
+
describe("method: getOrFail", () => {
|
|
1053
|
+
test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
|
|
1054
|
+
let event_ = null;
|
|
1055
|
+
const unsubscribe = await cacheA.subscribe(KeyNotFoundCacheEvent, (event) => {
|
|
1056
|
+
event_ = event;
|
|
1057
|
+
});
|
|
1058
|
+
try {
|
|
1059
|
+
await cacheA.getOrFail("a");
|
|
1060
|
+
}
|
|
1061
|
+
catch {
|
|
1062
|
+
}
|
|
1063
|
+
await delay(delayTime);
|
|
1064
|
+
expect(event_).toBeInstanceOf(KeyNotFoundCacheEvent);
|
|
1065
|
+
expect(event_?.fields.key).toBe("a");
|
|
1066
|
+
await unsubscribe();
|
|
1067
|
+
});
|
|
1068
|
+
test("Should dispatch KeyFoundCacheEvent when key exists", async () => {
|
|
1069
|
+
let event_ = null;
|
|
1070
|
+
const unsubscribe = await cacheA.subscribe(KeyFoundCacheEvent, (event) => {
|
|
1071
|
+
event_ = event;
|
|
1072
|
+
});
|
|
1073
|
+
await cacheA.add("a", 1);
|
|
1074
|
+
await cacheA.getOrFail("a");
|
|
1075
|
+
await delay(delayTime);
|
|
1076
|
+
expect(event_).toBeInstanceOf(KeyFoundCacheEvent);
|
|
1077
|
+
expect(event_?.fields.key).toBe("a");
|
|
1078
|
+
expect(event_?.fields.value).toBe(1);
|
|
1079
|
+
await unsubscribe();
|
|
1080
|
+
});
|
|
1081
|
+
});
|
|
1082
|
+
describe("method: add", () => {
|
|
1083
|
+
test("Should dispatch KeyAddedCacheEvent when key doesnt exists", async () => {
|
|
1084
|
+
let event_ = null;
|
|
1085
|
+
const unsubscribe = await cacheA.subscribe(KeyAddedCacheEvent, (event) => {
|
|
1086
|
+
event_ = event;
|
|
1087
|
+
});
|
|
1088
|
+
const ttl = TimeSpan.fromMilliseconds(20);
|
|
1089
|
+
await cacheA.add("a", 1, ttl);
|
|
1090
|
+
await delay(delayTime);
|
|
1091
|
+
expect(event_).toBeInstanceOf(KeyAddedCacheEvent);
|
|
1092
|
+
expect(event_?.fields.key).toBe("a");
|
|
1093
|
+
expect(event_?.fields.value).toBe(1);
|
|
1094
|
+
expect(event_?.fields.ttl?.toMilliseconds()).toBe(ttl.toMilliseconds());
|
|
1095
|
+
await unsubscribe();
|
|
1096
|
+
});
|
|
1097
|
+
});
|
|
1098
|
+
describe("method: addMany", () => {
|
|
1099
|
+
test("Should dispatch KeyAddedCacheEvent when key doesnt exists", async () => {
|
|
1100
|
+
let event_ = null;
|
|
1101
|
+
const unsubscribe = await cacheA.subscribe(KeyAddedCacheEvent, (event) => {
|
|
1102
|
+
event_ = event;
|
|
1103
|
+
});
|
|
1104
|
+
const ttl = TimeSpan.fromMilliseconds(20);
|
|
1105
|
+
await cacheA.addMany({ a: { value: 1, ttl } });
|
|
1106
|
+
await delay(delayTime);
|
|
1107
|
+
expect(event_).toBeInstanceOf(KeyAddedCacheEvent);
|
|
1108
|
+
expect(event_?.fields.key).toBe("a");
|
|
1109
|
+
expect(event_?.fields.value).toBe(1);
|
|
1110
|
+
expect(event_?.fields.ttl?.toMilliseconds()).toBe(ttl.toMilliseconds());
|
|
1111
|
+
await unsubscribe();
|
|
1112
|
+
});
|
|
1113
|
+
});
|
|
1114
|
+
describe("method: update", () => {
|
|
1115
|
+
test("Should dispatch KeyUpdatedCacheEvent when key exists", async () => {
|
|
1116
|
+
let event_ = null;
|
|
1117
|
+
const unsubscribe = await cacheA.subscribe(KeyUpdatedCacheEvent, (event) => {
|
|
1118
|
+
event_ = event;
|
|
1119
|
+
});
|
|
1120
|
+
await cacheA.add("a", 1);
|
|
1121
|
+
await cacheA.update("a", 2);
|
|
1122
|
+
await delay(delayTime);
|
|
1123
|
+
expect(event_).toBeInstanceOf(KeyUpdatedCacheEvent);
|
|
1124
|
+
expect(event_?.fields.key).toBe("a");
|
|
1125
|
+
expect(event_?.fields.value).toBe(2);
|
|
1126
|
+
await unsubscribe();
|
|
1127
|
+
});
|
|
1128
|
+
test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
|
|
1129
|
+
let event_ = null;
|
|
1130
|
+
const unsubscribe = await cacheA.subscribe(KeyNotFoundCacheEvent, (event) => {
|
|
1131
|
+
event_ = event;
|
|
1132
|
+
});
|
|
1133
|
+
await cacheA.update("a", 2);
|
|
1134
|
+
await delay(delayTime);
|
|
1135
|
+
expect(event_).toBeInstanceOf(KeyNotFoundCacheEvent);
|
|
1136
|
+
expect(event_?.fields.key).toBe("a");
|
|
1137
|
+
await unsubscribe();
|
|
1138
|
+
});
|
|
1139
|
+
});
|
|
1140
|
+
describe("method: updateMany", () => {
|
|
1141
|
+
test("Should dispatch KeyUpdatedCacheEvent when key exists", async () => {
|
|
1142
|
+
let event_ = null;
|
|
1143
|
+
const unsubscribe = await cacheA.subscribe(KeyUpdatedCacheEvent, (event) => {
|
|
1144
|
+
event_ = event;
|
|
1145
|
+
});
|
|
1146
|
+
await cacheA.add("a", 1);
|
|
1147
|
+
await cacheA.updateMany({ a: 2 });
|
|
1148
|
+
await delay(delayTime);
|
|
1149
|
+
expect(event_).toBeInstanceOf(KeyUpdatedCacheEvent);
|
|
1150
|
+
expect(event_?.fields.key).toBe("a");
|
|
1151
|
+
expect(event_?.fields.value).toBe(2);
|
|
1152
|
+
await unsubscribe();
|
|
1153
|
+
});
|
|
1154
|
+
test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
|
|
1155
|
+
let event_ = null;
|
|
1156
|
+
const unsubscribe = await cacheA.subscribe(KeyNotFoundCacheEvent, (event) => {
|
|
1157
|
+
event_ = event;
|
|
1158
|
+
});
|
|
1159
|
+
await cacheA.updateMany({ a: 2 });
|
|
1160
|
+
await delay(delayTime);
|
|
1161
|
+
expect(event_).toBeInstanceOf(KeyNotFoundCacheEvent);
|
|
1162
|
+
expect(event_?.fields.key).toBe("a");
|
|
1163
|
+
await unsubscribe();
|
|
1164
|
+
});
|
|
1165
|
+
});
|
|
1166
|
+
describe("method: put", () => {
|
|
1167
|
+
test("Should dispatch KeyAddedCacheEvent when key doesnt exists", async () => {
|
|
1168
|
+
let event_ = null;
|
|
1169
|
+
const unsubscribe = await cacheA.subscribe(KeyAddedCacheEvent, (event) => {
|
|
1170
|
+
event_ = event;
|
|
1171
|
+
});
|
|
1172
|
+
const ttl = TimeSpan.fromMilliseconds(20);
|
|
1173
|
+
await cacheA.put("a", 1, ttl);
|
|
1174
|
+
await delay(delayTime);
|
|
1175
|
+
expect(event_).toBeInstanceOf(KeyAddedCacheEvent);
|
|
1176
|
+
expect(event_?.fields.key).toBe("a");
|
|
1177
|
+
expect(event_?.fields.value).toBe(1);
|
|
1178
|
+
expect(event_?.fields.ttl?.toMilliseconds()).toBe(ttl.toMilliseconds());
|
|
1179
|
+
await unsubscribe();
|
|
1180
|
+
});
|
|
1181
|
+
test("Should dispatch KeyUpdatedCacheEvent when key exists", async () => {
|
|
1182
|
+
let event_ = null;
|
|
1183
|
+
const unsubscribe = await cacheA.subscribe(KeyUpdatedCacheEvent, (event) => {
|
|
1184
|
+
event_ = event;
|
|
1185
|
+
});
|
|
1186
|
+
await cacheA.put("a", 1);
|
|
1187
|
+
await cacheA.put("a", 2);
|
|
1188
|
+
await delay(delayTime);
|
|
1189
|
+
expect(event_).toBeInstanceOf(KeyUpdatedCacheEvent);
|
|
1190
|
+
expect(event_?.fields.key).toBe("a");
|
|
1191
|
+
expect(event_?.fields.value).toBe(2);
|
|
1192
|
+
await unsubscribe();
|
|
1193
|
+
});
|
|
1194
|
+
});
|
|
1195
|
+
describe("method: putMany", () => {
|
|
1196
|
+
test("Should dispatch KeyAddedCacheEvent when key exists", async () => {
|
|
1197
|
+
let event_ = null;
|
|
1198
|
+
const unsubscribe = await cacheA.subscribe(KeyAddedCacheEvent, (event) => {
|
|
1199
|
+
event_ = event;
|
|
1200
|
+
});
|
|
1201
|
+
const ttl = TimeSpan.fromMilliseconds(20);
|
|
1202
|
+
await cacheA.putMany({ a: { value: 1, ttl } });
|
|
1203
|
+
await delay(delayTime);
|
|
1204
|
+
expect(event_).toBeInstanceOf(KeyAddedCacheEvent);
|
|
1205
|
+
expect(event_?.fields.key).toBe("a");
|
|
1206
|
+
expect(event_?.fields.value).toBe(1);
|
|
1207
|
+
expect(event_?.fields.ttl?.toMilliseconds()).toBe(ttl.toMilliseconds());
|
|
1208
|
+
await unsubscribe();
|
|
1209
|
+
});
|
|
1210
|
+
test("Should dispatch KeyUpdatedCacheEvent when key exists", async () => {
|
|
1211
|
+
let event_ = null;
|
|
1212
|
+
const unsubscribe = await cacheA.subscribe(KeyUpdatedCacheEvent, (event) => {
|
|
1213
|
+
event_ = event;
|
|
1214
|
+
});
|
|
1215
|
+
const ttl = TimeSpan.fromMilliseconds(20);
|
|
1216
|
+
await cacheA.putMany({ a: { value: 1, ttl } });
|
|
1217
|
+
await cacheA.putMany({ a: { value: 2, ttl } });
|
|
1218
|
+
await delay(delayTime);
|
|
1219
|
+
expect(event_).toBeInstanceOf(KeyUpdatedCacheEvent);
|
|
1220
|
+
expect(event_?.fields.key).toBe("a");
|
|
1221
|
+
expect(event_?.fields.value).toBe(2);
|
|
1222
|
+
await unsubscribe();
|
|
1223
|
+
});
|
|
1224
|
+
});
|
|
1225
|
+
describe("method: remove", () => {
|
|
1226
|
+
test("Should dispatch KeyRemovedCacheEvent when key exists", async () => {
|
|
1227
|
+
let event_ = null;
|
|
1228
|
+
const unsubscribe = await cacheA.subscribe(KeyRemovedCacheEvent, (event) => {
|
|
1229
|
+
event_ = event;
|
|
1230
|
+
});
|
|
1231
|
+
await cacheA.add("a", 1);
|
|
1232
|
+
await cacheA.remove("a");
|
|
1233
|
+
await delay(delayTime);
|
|
1234
|
+
expect(event_).toBeInstanceOf(KeyRemovedCacheEvent);
|
|
1235
|
+
expect(event_?.fields.key).toBe("a");
|
|
1236
|
+
await unsubscribe();
|
|
1237
|
+
});
|
|
1238
|
+
test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
|
|
1239
|
+
let event_ = null;
|
|
1240
|
+
const unsubscribe = await cacheA.subscribe(KeyNotFoundCacheEvent, (event) => {
|
|
1241
|
+
event_ = event;
|
|
1242
|
+
});
|
|
1243
|
+
await cacheA.remove("a");
|
|
1244
|
+
await delay(delayTime);
|
|
1245
|
+
expect(event_).toBeInstanceOf(KeyNotFoundCacheEvent);
|
|
1246
|
+
expect(event_?.fields.key).toBe("a");
|
|
1247
|
+
await unsubscribe();
|
|
1248
|
+
});
|
|
1249
|
+
});
|
|
1250
|
+
describe("method: removeMany", () => {
|
|
1251
|
+
test("Should dispatch KeyRemovedCacheEvent when key doesnt exists", async () => {
|
|
1252
|
+
let event_ = null;
|
|
1253
|
+
const unsubscribe = await cacheA.subscribe(KeyRemovedCacheEvent, (event) => {
|
|
1254
|
+
event_ = event;
|
|
1255
|
+
});
|
|
1256
|
+
await cacheA.add("a", 1);
|
|
1257
|
+
await cacheA.removeMany(["a"]);
|
|
1258
|
+
await delay(delayTime);
|
|
1259
|
+
expect(event_).toBeInstanceOf(KeyRemovedCacheEvent);
|
|
1260
|
+
expect(event_?.fields.key).toBe("a");
|
|
1261
|
+
await unsubscribe();
|
|
1262
|
+
});
|
|
1263
|
+
test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
|
|
1264
|
+
let event_ = null;
|
|
1265
|
+
const unsubscribe = await cacheA.subscribe(KeyNotFoundCacheEvent, (event) => {
|
|
1266
|
+
event_ = event;
|
|
1267
|
+
});
|
|
1268
|
+
await cacheA.removeMany(["a"]);
|
|
1269
|
+
await delay(delayTime);
|
|
1270
|
+
expect(event_).toBeInstanceOf(KeyNotFoundCacheEvent);
|
|
1271
|
+
expect(event_?.fields.key).toBe("a");
|
|
1272
|
+
await unsubscribe();
|
|
1273
|
+
});
|
|
1274
|
+
});
|
|
1275
|
+
describe("method: getAndRemove", () => {
|
|
1276
|
+
test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
|
|
1277
|
+
let event_ = null;
|
|
1278
|
+
const unsubscribe = await cacheA.subscribe(KeyNotFoundCacheEvent, (event) => {
|
|
1279
|
+
event_ = event;
|
|
1280
|
+
});
|
|
1281
|
+
await cacheA.getAndRemove("a");
|
|
1282
|
+
await delay(delayTime);
|
|
1283
|
+
expect(event_).toBeInstanceOf(KeyNotFoundCacheEvent);
|
|
1284
|
+
expect(event_?.fields.key).toBe("a");
|
|
1285
|
+
await unsubscribe();
|
|
1286
|
+
});
|
|
1287
|
+
test("Should dispatch KeyFoundCacheEvent when key exists", async () => {
|
|
1288
|
+
let event_ = null;
|
|
1289
|
+
const unsubscribe = await cacheA.subscribe(KeyFoundCacheEvent, (event) => {
|
|
1290
|
+
event_ = event;
|
|
1291
|
+
});
|
|
1292
|
+
await cacheA.add("a", 1);
|
|
1293
|
+
await cacheA.getAndRemove("a");
|
|
1294
|
+
await delay(delayTime);
|
|
1295
|
+
expect(event_).toBeInstanceOf(KeyFoundCacheEvent);
|
|
1296
|
+
expect(event_?.fields.key).toBe("a");
|
|
1297
|
+
expect(event_?.fields.value).toBe(1);
|
|
1298
|
+
await unsubscribe();
|
|
1299
|
+
});
|
|
1300
|
+
test("Should dispatch KeyRemovedCacheEvent when key exists", async () => {
|
|
1301
|
+
let event_ = null;
|
|
1302
|
+
const unsubscribe = await cacheA.subscribe(KeyRemovedCacheEvent, (event) => {
|
|
1303
|
+
event_ = event;
|
|
1304
|
+
});
|
|
1305
|
+
await cacheA.add("a", 1);
|
|
1306
|
+
await cacheA.getAndRemove("a");
|
|
1307
|
+
await delay(delayTime);
|
|
1308
|
+
expect(event_).toBeInstanceOf(KeyRemovedCacheEvent);
|
|
1309
|
+
expect(event_?.fields.key).toBe("a");
|
|
1310
|
+
await unsubscribe();
|
|
1311
|
+
});
|
|
1312
|
+
});
|
|
1313
|
+
describe("method: getOrAdd", () => {
|
|
1314
|
+
test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
|
|
1315
|
+
let event_ = null;
|
|
1316
|
+
const unsubscribe = await cacheA.subscribe(KeyNotFoundCacheEvent, (event) => {
|
|
1317
|
+
event_ = event;
|
|
1318
|
+
});
|
|
1319
|
+
await cacheA.getOrAdd("a", 1);
|
|
1320
|
+
await delay(delayTime);
|
|
1321
|
+
expect(event_).toBeInstanceOf(KeyNotFoundCacheEvent);
|
|
1322
|
+
expect(event_?.fields.key).toBe("a");
|
|
1323
|
+
await unsubscribe();
|
|
1324
|
+
});
|
|
1325
|
+
test("Should dispatch KeyFoundCacheEvent when key exists", async () => {
|
|
1326
|
+
let event_ = null;
|
|
1327
|
+
const unsubscribe = await cacheA.subscribe(KeyFoundCacheEvent, (event) => {
|
|
1328
|
+
event_ = event;
|
|
1329
|
+
});
|
|
1330
|
+
await cacheA.add("a", 1);
|
|
1331
|
+
await cacheA.getOrAdd("a", 1);
|
|
1332
|
+
await delay(delayTime);
|
|
1333
|
+
expect(event_).toBeInstanceOf(KeyFoundCacheEvent);
|
|
1334
|
+
expect(event_?.fields.key).toBe("a");
|
|
1335
|
+
expect(event_?.fields.value).toBe(1);
|
|
1336
|
+
await unsubscribe();
|
|
1337
|
+
});
|
|
1338
|
+
test("Should dispatch KeyAddedCacheEvent when key exists", async () => {
|
|
1339
|
+
let event_ = null;
|
|
1340
|
+
const unsubscribe = await cacheA.subscribe(KeyAddedCacheEvent, (event) => {
|
|
1341
|
+
event_ = event;
|
|
1342
|
+
});
|
|
1343
|
+
const ttl = TimeSpan.fromMilliseconds(50);
|
|
1344
|
+
await cacheA.getOrAdd("a", 1, ttl);
|
|
1345
|
+
await delay(delayTime);
|
|
1346
|
+
expect(event_).toBeInstanceOf(KeyAddedCacheEvent);
|
|
1347
|
+
expect(event_?.fields.key).toBe("a");
|
|
1348
|
+
expect(event_?.fields.value).toBe(1);
|
|
1349
|
+
expect(event_?.fields.ttl?.toMilliseconds()).toBe(ttl.toMilliseconds());
|
|
1350
|
+
await unsubscribe();
|
|
1351
|
+
});
|
|
1352
|
+
});
|
|
1353
|
+
describe("method: increment", () => {
|
|
1354
|
+
test("Should dispatch KeyIncrementedCacheEvent when key exists", async () => {
|
|
1355
|
+
let event_ = null;
|
|
1356
|
+
const unsubscribe = await cacheA.subscribe(KeyIncrementedCacheEvent, (event) => {
|
|
1357
|
+
event_ = event;
|
|
1358
|
+
});
|
|
1359
|
+
await cacheA.add("a", 1);
|
|
1360
|
+
await cacheA.increment("a", 1);
|
|
1361
|
+
await delay(delayTime);
|
|
1362
|
+
expect(event_).toBeInstanceOf(KeyIncrementedCacheEvent);
|
|
1363
|
+
expect(event_?.fields.key).toBe("a");
|
|
1364
|
+
expect(event_?.fields.value).toBe(1);
|
|
1365
|
+
await unsubscribe();
|
|
1366
|
+
});
|
|
1367
|
+
test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
|
|
1368
|
+
let event_ = null;
|
|
1369
|
+
const unsubscribe = await cacheA.subscribe(KeyNotFoundCacheEvent, (event) => {
|
|
1370
|
+
event_ = event;
|
|
1371
|
+
});
|
|
1372
|
+
await cacheA.increment("a", 1);
|
|
1373
|
+
await delay(delayTime);
|
|
1374
|
+
expect(event_).toBeInstanceOf(KeyNotFoundCacheEvent);
|
|
1375
|
+
expect(event_?.fields.key).toBe("a");
|
|
1376
|
+
await unsubscribe();
|
|
1377
|
+
});
|
|
1378
|
+
});
|
|
1379
|
+
describe("method: decrement", () => {
|
|
1380
|
+
test("Should dispatch KeyDecrementedCacheEvent when key exists", async () => {
|
|
1381
|
+
let event_ = null;
|
|
1382
|
+
const unsubscribe = await cacheA.subscribe(KeyDecrementedCacheEvent, (event) => {
|
|
1383
|
+
event_ = event;
|
|
1384
|
+
});
|
|
1385
|
+
await cacheA.add("a", 1);
|
|
1386
|
+
await cacheA.decrement("a", 1);
|
|
1387
|
+
await delay(delayTime);
|
|
1388
|
+
expect(event_).toBeInstanceOf(KeyDecrementedCacheEvent);
|
|
1389
|
+
expect(event_?.fields.key).toBe("a");
|
|
1390
|
+
expect(event_?.fields.value).toBe(1);
|
|
1391
|
+
await unsubscribe();
|
|
1392
|
+
});
|
|
1393
|
+
test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
|
|
1394
|
+
let event_ = null;
|
|
1395
|
+
const unsubscribe = await cacheA.subscribe(KeyNotFoundCacheEvent, (event) => {
|
|
1396
|
+
event_ = event;
|
|
1397
|
+
});
|
|
1398
|
+
await cacheA.decrement("a", 1);
|
|
1399
|
+
await delay(delayTime);
|
|
1400
|
+
expect(event_).toBeInstanceOf(KeyNotFoundCacheEvent);
|
|
1401
|
+
expect(event_?.fields.key).toBe("a");
|
|
1402
|
+
await unsubscribe();
|
|
1403
|
+
});
|
|
1404
|
+
});
|
|
1405
|
+
describe("method: clear", () => {
|
|
1406
|
+
test("Should dispatch KeysClearedCacheEvent when key doesnt exists", async () => {
|
|
1407
|
+
let event_ = null;
|
|
1408
|
+
const unsubscribe = await cacheA.subscribe(KeysClearedCacheEvent, (event) => {
|
|
1409
|
+
event_ = event;
|
|
1410
|
+
});
|
|
1411
|
+
await cacheA.addMany({
|
|
1412
|
+
a: { value: 1 },
|
|
1413
|
+
b: { value: 2 },
|
|
1414
|
+
c: { value: 3 },
|
|
1415
|
+
});
|
|
1416
|
+
await cacheA.clear();
|
|
1417
|
+
await delay(delayTime);
|
|
1418
|
+
expect(event_).toBeInstanceOf(KeysClearedCacheEvent);
|
|
1419
|
+
await unsubscribe();
|
|
1420
|
+
});
|
|
1421
|
+
});
|
|
1422
|
+
});
|
|
805
1423
|
describe("Group tests:", () => {
|
|
806
1424
|
test("method: exists", async () => {
|
|
807
1425
|
await cacheA.put("a", 1);
|
|
@@ -1023,6 +1641,96 @@ export function cacheTestSuite(settings) {
|
|
|
1023
1641
|
b: 2,
|
|
1024
1642
|
});
|
|
1025
1643
|
});
|
|
1644
|
+
test("method: addListener / dispatch", async () => {
|
|
1645
|
+
let result_a = null;
|
|
1646
|
+
await cacheA.addListener(KeyAddedCacheEvent, (event) => {
|
|
1647
|
+
result_a = event;
|
|
1648
|
+
});
|
|
1649
|
+
let result_b = null;
|
|
1650
|
+
await cacheB.addListener(KeyAddedCacheEvent, (event) => {
|
|
1651
|
+
result_b = event;
|
|
1652
|
+
});
|
|
1653
|
+
await cacheA.add("a", 1);
|
|
1654
|
+
expect(result_a).toBeInstanceOf(KeyAddedCacheEvent);
|
|
1655
|
+
expect(result_b).toBeNull();
|
|
1656
|
+
});
|
|
1657
|
+
test("method: addListenerMany / dispatch", async () => {
|
|
1658
|
+
let result_a = null;
|
|
1659
|
+
await cacheA.addListenerMany([KeyAddedCacheEvent], (event) => {
|
|
1660
|
+
result_a = event;
|
|
1661
|
+
});
|
|
1662
|
+
let result_b = null;
|
|
1663
|
+
await cacheB.addListenerMany([KeyAddedCacheEvent], (event) => {
|
|
1664
|
+
result_b = event;
|
|
1665
|
+
});
|
|
1666
|
+
await cacheA.add("a", 1);
|
|
1667
|
+
expect(result_a).toBeInstanceOf(KeyAddedCacheEvent);
|
|
1668
|
+
expect(result_b).toBeNull();
|
|
1669
|
+
});
|
|
1670
|
+
test("method: removeListener / addListener / dispatch", async () => {
|
|
1671
|
+
let result_a = null;
|
|
1672
|
+
await cacheA.addListener(KeyAddedCacheEvent, (event) => {
|
|
1673
|
+
result_a = event;
|
|
1674
|
+
});
|
|
1675
|
+
let result_b = null;
|
|
1676
|
+
const listenerB = (event) => {
|
|
1677
|
+
result_b = event;
|
|
1678
|
+
};
|
|
1679
|
+
await cacheB.addListener(KeyAddedCacheEvent, listenerB);
|
|
1680
|
+
await cacheB.removeListener(KeyAddedCacheEvent, listenerB);
|
|
1681
|
+
await cacheA.add("a", 1);
|
|
1682
|
+
await cacheB.add("a", 1);
|
|
1683
|
+
expect(result_a).toBeInstanceOf(KeyAddedCacheEvent);
|
|
1684
|
+
expect(result_b).toBeNull();
|
|
1685
|
+
});
|
|
1686
|
+
test("method: removeListenerMany / addListener / dispatch", async () => {
|
|
1687
|
+
let result_a = null;
|
|
1688
|
+
await cacheA.addListener(KeyAddedCacheEvent, (event) => {
|
|
1689
|
+
result_a = event;
|
|
1690
|
+
});
|
|
1691
|
+
let result_b = null;
|
|
1692
|
+
const listenerB = (event) => {
|
|
1693
|
+
result_b = event;
|
|
1694
|
+
};
|
|
1695
|
+
await cacheB.addListener(KeyAddedCacheEvent, listenerB);
|
|
1696
|
+
await cacheB.removeListenerMany([KeyAddedCacheEvent], listenerB);
|
|
1697
|
+
await cacheA.add("a", 1);
|
|
1698
|
+
await cacheB.add("a", 1);
|
|
1699
|
+
expect(result_a).toBeInstanceOf(KeyAddedCacheEvent);
|
|
1700
|
+
expect(result_b).toBeNull();
|
|
1701
|
+
});
|
|
1702
|
+
test("method: subscribe / dispatch", async () => {
|
|
1703
|
+
let result_a = null;
|
|
1704
|
+
await cacheA.subscribe(KeyAddedCacheEvent, (event) => {
|
|
1705
|
+
result_a = event;
|
|
1706
|
+
});
|
|
1707
|
+
let result_b = null;
|
|
1708
|
+
const listenerB = (event) => {
|
|
1709
|
+
result_b = event;
|
|
1710
|
+
};
|
|
1711
|
+
const unsubscribe = await cacheB.subscribe(KeyAddedCacheEvent, listenerB);
|
|
1712
|
+
await unsubscribe();
|
|
1713
|
+
await cacheA.add("a", 1);
|
|
1714
|
+
await cacheB.add("a", 1);
|
|
1715
|
+
expect(result_a).toBeInstanceOf(KeyAddedCacheEvent);
|
|
1716
|
+
expect(result_b).toBeNull();
|
|
1717
|
+
});
|
|
1718
|
+
test("method: subscribeMany / dispatch", async () => {
|
|
1719
|
+
let result_a = null;
|
|
1720
|
+
await cacheA.subscribeMany([KeyAddedCacheEvent], (event) => {
|
|
1721
|
+
result_a = event;
|
|
1722
|
+
});
|
|
1723
|
+
let result_b = null;
|
|
1724
|
+
const listenerB = (event) => {
|
|
1725
|
+
result_b = event;
|
|
1726
|
+
};
|
|
1727
|
+
const unsubscribe = await cacheB.subscribeMany([KeyAddedCacheEvent], listenerB);
|
|
1728
|
+
await unsubscribe();
|
|
1729
|
+
await cacheA.add("a", 1);
|
|
1730
|
+
await cacheB.add("a", 1);
|
|
1731
|
+
expect(result_a).toBeInstanceOf(KeyAddedCacheEvent);
|
|
1732
|
+
expect(result_b).toBeNull();
|
|
1733
|
+
});
|
|
1026
1734
|
});
|
|
1027
1735
|
}
|
|
1028
1736
|
//# sourceMappingURL=cache.test-suite.js.map
|