@daiso-tech/core 0.15.0 → 0.17.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/_module.js +2 -2
- package/dist/cjs/_module.js.map +1 -1
- 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 +21 -12
- package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
- package/dist/cjs/cache/contracts/cache.events.js +168 -0
- package/dist/cjs/cache/contracts/cache.events.js.map +1 -1
- package/dist/cjs/cache/implementations/_shared/_module.js +1 -0
- package/dist/cjs/cache/implementations/_shared/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js +256 -177
- package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
- package/dist/cjs/cache/implementations/_shared/cache.test-suite.js +23 -2
- 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 +63 -20
- 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 +30 -16
- 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 +66 -39
- 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 +78 -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 +10 -1
- 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 +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 +55 -23
- 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 +31 -17
- 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 -2
- package/dist/cjs/cache/implementations/derivables/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/derivables/cache-factory-settings.js +65 -0
- package/dist/cjs/cache/implementations/derivables/cache-factory-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/derivables/cache-factory.js +29 -18
- package/dist/cjs/cache/implementations/derivables/cache-factory.js.map +1 -1
- package/dist/cjs/cache/implementations/derivables/cache-settings.js +56 -0
- package/dist/cjs/cache/implementations/derivables/cache-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/derivables/cache.js +334 -79
- package/dist/cjs/cache/implementations/derivables/cache.js.map +1 -1
- package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-merge-iterable.js +14 -7
- package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-merge-iterable.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 +62 -41
- package/dist/cjs/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
- package/dist/cjs/collection/implementations/iterable-collection/_shared/merge-iterable.js +6 -7
- package/dist/cjs/collection/implementations/iterable-collection/_shared/merge-iterable.js.map +1 -1
- package/dist/cjs/collection/implementations/iterable-collection/iterable-collection.js +11 -2
- package/dist/cjs/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
- package/dist/cjs/collection/implementations/list-collection/list-collection.js +13 -0
- package/dist/cjs/collection/implementations/list-collection/list-collection.js.map +1 -1
- package/dist/cjs/event-bus/contracts/_module.js +2 -2
- package/dist/cjs/event-bus/contracts/_module.js.map +1 -1
- package/dist/cjs/event-bus/contracts/_shared.js +7 -0
- package/dist/cjs/event-bus/contracts/_shared.js.map +1 -1
- package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +98 -38
- 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 +197 -125
- package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
- package/dist/cjs/event-bus/implementations/adapters/_module.js +1 -1
- package/dist/cjs/event-bus/implementations/adapters/_module.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 +29 -11
- 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 +9 -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/{serializer/implementations/_shared/test-utilities → 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 -0
- 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 +56 -0
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -0
- package/dist/cjs/event-bus/implementations/derivables/_module.js +3 -1
- package/dist/cjs/event-bus/implementations/derivables/_module.js.map +1 -1
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory-settings.js +59 -0
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory-settings.js.map +1 -0
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js +28 -17
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js.map +1 -1
- package/dist/cjs/event-bus/implementations/derivables/event-bus-settings.js +56 -0
- package/dist/cjs/event-bus/implementations/derivables/event-bus-settings.js.map +1 -0
- package/dist/cjs/event-bus/implementations/derivables/event-bus.js +106 -37
- package/dist/cjs/event-bus/implementations/derivables/event-bus.js.map +1 -1
- package/dist/cjs/serde/contracts/_module.js +23 -0
- package/dist/cjs/serde/contracts/_module.js.map +1 -0
- 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/serde.contract.js +3 -0
- package/dist/cjs/serde/contracts/serde.contract.js.map +1 -0
- package/dist/cjs/{serializer/contracts/serializer.errors.js → serde/contracts/serde.errors.js} +7 -7
- package/dist/cjs/serde/contracts/serde.errors.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.map +1 -0
- package/dist/cjs/{serializer → serde}/implementations/_module.js +6 -5
- package/dist/cjs/serde/implementations/_module.js.map +1 -0
- package/dist/cjs/{serializer/contracts → serde/implementations/_shared/test-utilities}/_module.js +2 -2
- package/dist/cjs/serde/implementations/_shared/test-utilities/_module.js.map +1 -0
- package/dist/cjs/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js +53 -0
- package/dist/cjs/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js.map +1 -0
- package/dist/cjs/{serializer/implementations/_shared/test-utilities/serializer.test-suite.js → serde/implementations/_shared/test-utilities/serde.test-suite.js} +68 -93
- package/dist/cjs/serde/implementations/_shared/test-utilities/serde.test-suite.js.map +1 -0
- package/dist/cjs/{serializer/implementations/sql-serializer → serde/implementations/mongodb-serde}/_module.js +1 -1
- package/dist/cjs/serde/implementations/mongodb-serde/_module.js.map +1 -0
- package/dist/cjs/serde/implementations/mongodb-serde/mongodb-serde.js +36 -0
- package/dist/cjs/serde/implementations/mongodb-serde/mongodb-serde.js.map +1 -0
- package/dist/cjs/{serializer/implementations/redis-serializer → serde/implementations/no-op-serde}/_module.js +1 -1
- package/dist/cjs/serde/implementations/no-op-serde/_module.js.map +1 -0
- package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js +16 -0
- package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js.map +1 -0
- package/dist/cjs/{serializer/implementations/mongodb-serializer → serde/implementations/redis-serde}/_module.js +1 -1
- package/dist/cjs/serde/implementations/redis-serde/_module.js.map +1 -0
- package/dist/cjs/serde/implementations/redis-serde/redis-serde.js +37 -0
- package/dist/cjs/serde/implementations/redis-serde/redis-serde.js.map +1 -0
- package/dist/cjs/{event-bus/implementations/adapters/redis-event-bus-adapter → serde/implementations/sql-serde}/_module.js +1 -1
- package/dist/cjs/serde/implementations/sql-serde/_module.js.map +1 -0
- package/dist/cjs/serde/implementations/sql-serde/sql-serde.js +37 -0
- package/dist/cjs/serde/implementations/sql-serde/sql-serde.js.map +1 -0
- package/dist/cjs/serde/implementations/super-json-serde/_module.js +18 -0
- package/dist/cjs/serde/implementations/super-json-serde/_module.js.map +1 -0
- package/dist/cjs/{serializer/implementations/super-json-serializer/super-json-serializer.js → serde/implementations/super-json-serde/super-json-serde.js} +77 -100
- package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js.map +1 -0
- package/dist/cjs/utilities/contracts/_module.js +1 -0
- package/dist/cjs/utilities/contracts/_module.js.map +1 -1
- package/dist/cjs/utilities/contracts/buildable.contract.js +3 -0
- package/dist/cjs/utilities/contracts/buildable.contract.js.map +1 -0
- package/dist/cjs/utilities/errors.js +10 -10
- package/dist/cjs/utilities/errors.js.map +1 -1
- package/dist/cjs/utilities/functions.js +9 -5
- package/dist/cjs/utilities/functions.js.map +1 -1
- package/dist/cjs/utilities/time-span/time-span.js +8 -0
- package/dist/cjs/utilities/time-span/time-span.js.map +1 -1
- package/dist/esm/_module.js +2 -2
- package/dist/esm/_module.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 +21 -12
- package/dist/esm/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
- package/dist/esm/cache/contracts/cache.events.js +158 -0
- package/dist/esm/cache/contracts/cache.events.js.map +1 -1
- package/dist/esm/cache/implementations/_shared/_module.js +1 -0
- package/dist/esm/cache/implementations/_shared/_module.js.map +1 -1
- package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js +256 -177
- package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
- package/dist/esm/cache/implementations/_shared/cache.test-suite.js +23 -2
- 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 +64 -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 +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 +29 -15
- 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 +66 -39
- 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 +78 -25
- 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 +10 -1
- 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 +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 +55 -23
- 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 +29 -15
- 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 -2
- package/dist/esm/cache/implementations/derivables/_module.js.map +1 -1
- package/dist/esm/cache/implementations/derivables/cache-factory-settings.js +61 -0
- package/dist/esm/cache/implementations/derivables/cache-factory-settings.js.map +1 -0
- package/dist/esm/cache/implementations/derivables/cache-factory.js +30 -19
- package/dist/esm/cache/implementations/derivables/cache-factory.js.map +1 -1
- package/dist/esm/cache/implementations/derivables/cache-settings.js +52 -0
- package/dist/esm/cache/implementations/derivables/cache-settings.js.map +1 -0
- package/dist/esm/cache/implementations/derivables/cache.js +333 -78
- package/dist/esm/cache/implementations/derivables/cache.js.map +1 -1
- package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-merge-iterable.js +14 -7
- package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-merge-iterable.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 +62 -41
- package/dist/esm/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
- package/dist/esm/collection/implementations/iterable-collection/_shared/merge-iterable.js +6 -7
- package/dist/esm/collection/implementations/iterable-collection/_shared/merge-iterable.js.map +1 -1
- package/dist/esm/collection/implementations/iterable-collection/iterable-collection.js +11 -2
- package/dist/esm/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
- package/dist/esm/collection/implementations/list-collection/list-collection.js +13 -0
- package/dist/esm/collection/implementations/list-collection/list-collection.js.map +1 -1
- package/dist/esm/event-bus/contracts/_module.js +2 -2
- package/dist/esm/event-bus/contracts/_module.js.map +1 -1
- package/dist/esm/event-bus/contracts/_shared.js +5 -0
- package/dist/esm/event-bus/contracts/_shared.js.map +1 -1
- package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +96 -36
- 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 +195 -123
- package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
- package/dist/esm/event-bus/implementations/adapters/_module.js +1 -1
- package/dist/esm/event-bus/implementations/adapters/_module.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 +29 -11
- 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 +9 -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 +3 -0
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -0
- 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 +52 -0
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -0
- package/dist/esm/event-bus/implementations/derivables/_module.js +3 -1
- package/dist/esm/event-bus/implementations/derivables/_module.js.map +1 -1
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory-settings.js +55 -0
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory-settings.js.map +1 -0
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js +29 -18
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js.map +1 -1
- package/dist/esm/event-bus/implementations/derivables/event-bus-settings.js +52 -0
- package/dist/esm/event-bus/implementations/derivables/event-bus-settings.js.map +1 -0
- package/dist/esm/event-bus/implementations/derivables/event-bus.js +108 -39
- package/dist/esm/event-bus/implementations/derivables/event-bus.js.map +1 -1
- package/dist/esm/serde/contracts/_module.js +7 -0
- package/dist/esm/serde/contracts/_module.js.map +1 -0
- 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/serde.contract.js +1 -0
- package/dist/esm/serde/contracts/serde.contract.js.map +1 -0
- package/dist/esm/{serializer/contracts/serializer.errors.js → serde/contracts/serde.errors.js} +5 -5
- package/dist/esm/serde/contracts/serde.errors.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.map +1 -0
- package/dist/esm/serde/implementations/_module.js +7 -0
- package/dist/esm/serde/implementations/_module.js.map +1 -0
- package/dist/esm/serde/implementations/_shared/test-utilities/_module.js +3 -0
- package/dist/esm/serde/implementations/_shared/test-utilities/_module.js.map +1 -0
- package/dist/esm/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js +50 -0
- package/dist/esm/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js.map +1 -0
- package/dist/esm/{serializer/implementations/_shared/test-utilities/serializer.test-suite.js → serde/implementations/_shared/test-utilities/serde.test-suite.js} +67 -92
- package/dist/esm/serde/implementations/_shared/test-utilities/serde.test-suite.js.map +1 -0
- package/dist/esm/serde/implementations/mongodb-serde/_module.js +2 -0
- package/dist/esm/serde/implementations/mongodb-serde/_module.js.map +1 -0
- package/dist/esm/{serializer/implementations/mongodb-serializer/mongodb-serializer.js → serde/implementations/mongodb-serde/mongodb-serde.js} +10 -10
- package/dist/esm/serde/implementations/mongodb-serde/mongodb-serde.js.map +1 -0
- package/dist/esm/serde/implementations/no-op-serde/_module.js +2 -0
- package/dist/esm/serde/implementations/no-op-serde/_module.js.map +1 -0
- package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js +12 -0
- package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js.map +1 -0
- package/dist/esm/serde/implementations/redis-serde/_module.js +2 -0
- package/dist/esm/serde/implementations/redis-serde/_module.js.map +1 -0
- package/dist/esm/{serializer/implementations/sql-serializer/sql-serializer.js → serde/implementations/redis-serde/redis-serde.js} +10 -10
- package/dist/esm/serde/implementations/redis-serde/redis-serde.js.map +1 -0
- package/dist/esm/serde/implementations/sql-serde/_module.js +2 -0
- package/dist/esm/serde/implementations/sql-serde/_module.js.map +1 -0
- package/dist/esm/{serializer/implementations/redis-serializer/redis-serializer.js → serde/implementations/sql-serde/sql-serde.js} +10 -10
- package/dist/esm/serde/implementations/sql-serde/sql-serde.js.map +1 -0
- package/dist/esm/serde/implementations/super-json-serde/_module.js +2 -0
- package/dist/esm/serde/implementations/super-json-serde/_module.js.map +1 -0
- package/dist/esm/{serializer/implementations/super-json-serializer/super-json-serializer.js → serde/implementations/super-json-serde/super-json-serde.js} +55 -55
- package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js.map +1 -0
- package/dist/esm/utilities/contracts/_module.js +1 -0
- package/dist/esm/utilities/contracts/_module.js.map +1 -1
- package/dist/esm/utilities/contracts/buildable.contract.js +1 -0
- package/dist/esm/utilities/contracts/buildable.contract.js.map +1 -0
- package/dist/esm/utilities/errors.js +7 -7
- package/dist/esm/utilities/errors.js.map +1 -1
- package/dist/esm/utilities/functions.js +7 -4
- package/dist/esm/utilities/functions.js.map +1 -1
- package/dist/esm/utilities/time-span/time-span.js +8 -0
- package/dist/esm/utilities/time-span/time-span.js.map +1 -1
- package/dist/types/_module.d.ts +2 -2
- 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 +66 -39
- package/dist/types/cache/contracts/cache-adapter.contract.d.ts +20 -6
- package/dist/types/cache/contracts/cache-factory.contract.d.ts +12 -25
- package/dist/types/cache/contracts/cache.contract.d.ts +382 -22
- package/dist/types/cache/contracts/cache.events.d.ts +156 -42
- package/dist/types/cache/implementations/_shared/_module.d.ts +1 -0
- package/dist/types/cache/implementations/_shared/cache-adapter.test-suite.d.ts +21 -12
- package/dist/types/cache/implementations/_shared/cache.test-suite.d.ts +21 -15
- package/dist/types/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.d.ts +15 -8
- 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 +54 -36
- 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 +50 -20
- 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 +66 -41
- package/dist/types/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +6 -3
- 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 +51 -29
- 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 +54 -34
- package/dist/types/cache/implementations/derivables/_module.d.ts +3 -2
- package/dist/types/cache/implementations/derivables/cache-factory-settings.d.ts +77 -0
- package/dist/types/cache/implementations/derivables/cache-factory.d.ts +59 -45
- package/dist/types/cache/implementations/derivables/cache-settings.d.ts +68 -0
- package/dist/types/cache/implementations/derivables/cache.d.ts +83 -62
- 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-merge-iterable.d.ts +4 -5
- 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 +194 -3
- package/dist/types/collection/implementations/iterable-collection/_shared/merge-iterable.d.ts +4 -5
- package/dist/types/collection/implementations/iterable-collection/iterable-collection.d.ts +141 -1
- package/dist/types/collection/implementations/list-collection/list-collection.d.ts +141 -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 +9 -8
- package/dist/types/event-bus/contracts/event-bus-factory.contract.d.ts +38 -32
- package/dist/types/event-bus/contracts/event-bus.contract.d.ts +52 -37
- package/dist/types/event-bus/implementations/_shared/event-bus-adapter.test-suite.d.ts +22 -10
- package/dist/types/event-bus/implementations/_shared/event-bus.test-suite.d.ts +16 -13
- package/dist/types/event-bus/implementations/adapters/_module.d.ts +1 -1
- 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 +53 -22
- package/dist/types/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.d.ts +7 -4
- package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.d.ts +2 -0
- 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 +62 -0
- package/dist/types/event-bus/implementations/derivables/_module.d.ts +3 -1
- package/dist/types/event-bus/implementations/derivables/event-bus-factory-settings.d.ts +70 -0
- package/dist/types/event-bus/implementations/derivables/event-bus-factory.d.ts +40 -24
- package/dist/types/event-bus/implementations/derivables/event-bus-settings.d.ts +58 -0
- package/dist/types/event-bus/implementations/derivables/event-bus.d.ts +31 -45
- package/dist/types/serde/contracts/_module.d.ts +6 -0
- package/dist/types/serde/contracts/deserializer.contract.d.ts +13 -0
- package/dist/types/serde/contracts/flexible-serde.contract.d.ts +56 -0
- package/dist/types/serde/contracts/serde.contract.d.ts +10 -0
- package/dist/types/{serializer/contracts/serializer.errors.d.ts → serde/contracts/serde.errors.d.ts} +4 -4
- 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 +6 -0
- package/dist/types/serde/implementations/_shared/test-utilities/_module.d.ts +2 -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 +17 -0
- package/dist/types/serde/implementations/mongodb-serde/_module.d.ts +1 -0
- package/dist/types/serde/implementations/mongodb-serde/mongodb-serde.d.ts +13 -0
- package/dist/types/serde/implementations/no-op-serde/_module.d.ts +1 -0
- package/dist/types/serde/implementations/no-op-serde/no-op-serde.d.ts +13 -0
- package/dist/types/serde/implementations/redis-serde/_module.d.ts +1 -0
- package/dist/types/serde/implementations/redis-serde/redis-serde.d.ts +13 -0
- package/dist/types/serde/implementations/sql-serde/_module.d.ts +1 -0
- package/dist/types/serde/implementations/sql-serde/sql-serde.d.ts +13 -0
- package/dist/types/serde/implementations/super-json-serde/_module.d.ts +1 -0
- package/dist/types/serde/implementations/super-json-serde/super-json-serde.d.ts +25 -0
- package/dist/types/utilities/contracts/_module.d.ts +1 -0
- package/dist/types/utilities/contracts/buildable.contract.d.ts +9 -0
- package/dist/types/utilities/errors.d.ts +3 -3
- package/dist/types/utilities/functions.d.ts +5 -1
- package/dist/types/utilities/time-span/time-span.d.ts +10 -1
- package/dist/types/utilities/types.d.ts +0 -1
- package/package.json +3 -9
- package/dist/cjs/cache/implementations/derivables/base-cache.js +0 -270
- package/dist/cjs/cache/implementations/derivables/base-cache.js.map +0 -1
- package/dist/cjs/event-bus/implementations/adapters/redis-event-bus-adapter/_module.js.map +0 -1
- package/dist/cjs/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js +0 -44
- package/dist/cjs/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js.map +0 -1
- package/dist/cjs/event-bus/implementations/derivables/base-event-bus.js +0 -47
- package/dist/cjs/event-bus/implementations/derivables/base-event-bus.js.map +0 -1
- package/dist/cjs/event-bus/implementations/derivables/with-namespace-event-bus-adapter.js +0 -42
- package/dist/cjs/event-bus/implementations/derivables/with-namespace-event-bus-adapter.js.map +0 -1
- package/dist/cjs/serializer/contracts/_module.js.map +0 -1
- package/dist/cjs/serializer/contracts/serializer.contract.js.map +0 -1
- package/dist/cjs/serializer/contracts/serializer.errors.js.map +0 -1
- package/dist/cjs/serializer/implementations/_module.js.map +0 -1
- package/dist/cjs/serializer/implementations/_shared/test-utilities/_module.js.map +0 -1
- package/dist/cjs/serializer/implementations/_shared/test-utilities/serializer.test-suite.js.map +0 -1
- package/dist/cjs/serializer/implementations/mongodb-serializer/_module.js.map +0 -1
- package/dist/cjs/serializer/implementations/mongodb-serializer/mongodb-serializer.js +0 -36
- package/dist/cjs/serializer/implementations/mongodb-serializer/mongodb-serializer.js.map +0 -1
- package/dist/cjs/serializer/implementations/redis-serializer/_module.js.map +0 -1
- package/dist/cjs/serializer/implementations/redis-serializer/redis-serializer.js +0 -37
- package/dist/cjs/serializer/implementations/redis-serializer/redis-serializer.js.map +0 -1
- package/dist/cjs/serializer/implementations/sql-serializer/_module.js.map +0 -1
- package/dist/cjs/serializer/implementations/sql-serializer/sql-serializer.js +0 -37
- package/dist/cjs/serializer/implementations/sql-serializer/sql-serializer.js.map +0 -1
- package/dist/cjs/serializer/implementations/super-json-serializer/_module.js +0 -18
- package/dist/cjs/serializer/implementations/super-json-serializer/_module.js.map +0 -1
- package/dist/cjs/serializer/implementations/super-json-serializer/super-json-serializer.js.map +0 -1
- package/dist/esm/cache/implementations/derivables/base-cache.js +0 -266
- package/dist/esm/cache/implementations/derivables/base-cache.js.map +0 -1
- package/dist/esm/event-bus/implementations/adapters/redis-event-bus-adapter/_module.js +0 -2
- package/dist/esm/event-bus/implementations/adapters/redis-event-bus-adapter/_module.js.map +0 -1
- package/dist/esm/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js +0 -40
- package/dist/esm/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js.map +0 -1
- package/dist/esm/event-bus/implementations/derivables/base-event-bus.js +0 -43
- package/dist/esm/event-bus/implementations/derivables/base-event-bus.js.map +0 -1
- package/dist/esm/event-bus/implementations/derivables/with-namespace-event-bus-adapter.js +0 -38
- package/dist/esm/event-bus/implementations/derivables/with-namespace-event-bus-adapter.js.map +0 -1
- package/dist/esm/serializer/contracts/_module.js +0 -3
- package/dist/esm/serializer/contracts/_module.js.map +0 -1
- package/dist/esm/serializer/contracts/serializer.contract.js.map +0 -1
- package/dist/esm/serializer/contracts/serializer.errors.js.map +0 -1
- package/dist/esm/serializer/implementations/_module.js +0 -6
- package/dist/esm/serializer/implementations/_module.js.map +0 -1
- package/dist/esm/serializer/implementations/_shared/test-utilities/_module.js +0 -2
- package/dist/esm/serializer/implementations/_shared/test-utilities/_module.js.map +0 -1
- package/dist/esm/serializer/implementations/_shared/test-utilities/serializer.test-suite.js.map +0 -1
- package/dist/esm/serializer/implementations/mongodb-serializer/_module.js +0 -2
- package/dist/esm/serializer/implementations/mongodb-serializer/_module.js.map +0 -1
- package/dist/esm/serializer/implementations/mongodb-serializer/mongodb-serializer.js.map +0 -1
- package/dist/esm/serializer/implementations/redis-serializer/_module.js +0 -2
- package/dist/esm/serializer/implementations/redis-serializer/_module.js.map +0 -1
- package/dist/esm/serializer/implementations/redis-serializer/redis-serializer.js.map +0 -1
- package/dist/esm/serializer/implementations/sql-serializer/_module.js +0 -2
- package/dist/esm/serializer/implementations/sql-serializer/_module.js.map +0 -1
- package/dist/esm/serializer/implementations/sql-serializer/sql-serializer.js.map +0 -1
- package/dist/esm/serializer/implementations/super-json-serializer/_module.js +0 -2
- package/dist/esm/serializer/implementations/super-json-serializer/_module.js.map +0 -1
- package/dist/esm/serializer/implementations/super-json-serializer/super-json-serializer.js.map +0 -1
- package/dist/types/cache/implementations/derivables/base-cache.d.ts +0 -58
- package/dist/types/event-bus/implementations/adapters/redis-event-bus-adapter/_module.d.ts +0 -1
- package/dist/types/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.d.ts +0 -43
- package/dist/types/event-bus/implementations/derivables/base-event-bus.d.ts +0 -23
- package/dist/types/event-bus/implementations/derivables/with-namespace-event-bus-adapter.d.ts +0 -16
- package/dist/types/serializer/contracts/_module.d.ts +0 -2
- package/dist/types/serializer/contracts/serializer.contract.d.ts +0 -16
- package/dist/types/serializer/implementations/_module.d.ts +0 -5
- package/dist/types/serializer/implementations/_shared/test-utilities/_module.d.ts +0 -1
- package/dist/types/serializer/implementations/_shared/test-utilities/serializer.test-suite.d.ts +0 -18
- package/dist/types/serializer/implementations/mongodb-serializer/_module.d.ts +0 -1
- package/dist/types/serializer/implementations/mongodb-serializer/mongodb-serializer.d.ts +0 -13
- package/dist/types/serializer/implementations/redis-serializer/_module.d.ts +0 -1
- package/dist/types/serializer/implementations/redis-serializer/redis-serializer.d.ts +0 -13
- package/dist/types/serializer/implementations/sql-serializer/_module.d.ts +0 -1
- package/dist/types/serializer/implementations/sql-serializer/sql-serializer.d.ts +0 -13
- package/dist/types/serializer/implementations/super-json-serializer/_module.d.ts +0 -1
- package/dist/types/serializer/implementations/super-json-serializer/super-json-serializer.d.ts +0 -37
- /package/dist/cjs/{serializer → serde}/contracts/serializer.contract.js +0 -0
- /package/dist/esm/{serializer → serde}/contracts/serializer.contract.js +0 -0
|
@@ -1,23 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module Cache
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
4
|
+
import type { IGroupableCache } from "../../cache/contracts/cache.contract";
|
|
5
5
|
/**
|
|
6
|
-
* The <i>ICacheFactory</i> contract makes it easy to configure and switch between different <i>{@link
|
|
6
|
+
* The <i>ICacheFactory</i> contract makes it easy to configure and switch between different <i>{@link IGroupableCache}</i> dynamically.
|
|
7
7
|
* @group Contracts
|
|
8
8
|
*/
|
|
9
|
-
export type ICacheFactory<
|
|
9
|
+
export type ICacheFactory<TAdapters extends string = string> = {
|
|
10
10
|
/**
|
|
11
|
-
* The <i>use</i> method will throw an error if you provide it unregisted
|
|
12
|
-
* If no default
|
|
13
|
-
* @throws {
|
|
14
|
-
* @throws {
|
|
11
|
+
* The <i>use</i> method will throw an error if you provide it unregisted adapter.
|
|
12
|
+
* If no default adapter is defined an error will be thrown by <i>use</i> method.
|
|
13
|
+
* @throws {UnregisteredAdapterError} {@link UnregisteredAdapterError}
|
|
14
|
+
* @throws {DefaultAdapterNotDefinedError} {@link DefaultAdapterNotDefinedError}
|
|
15
15
|
* @example
|
|
16
16
|
* ```ts
|
|
17
17
|
* import { type ICacheFactory } from "@daiso-tech/core";
|
|
18
|
+
* import Redis from "ioredis"
|
|
18
19
|
*
|
|
20
|
+
* // Asume the inputed cacheFactory has registered both a memory and Redis ICacheAdapter.
|
|
21
|
+
* // The memory ICacheAdapter adapter is the default.
|
|
19
22
|
* async function main(cacheFactory: ICacheFactory): Promise<void> {
|
|
20
|
-
* // Will add key using the default
|
|
23
|
+
* // Will add key using the default adapter
|
|
21
24
|
* await cacheFactory
|
|
22
25
|
* .use()
|
|
23
26
|
* .add("a", 1);
|
|
@@ -28,21 +31,5 @@ export type ICacheFactory<TDrivers extends string = string, TType = unknown> = {
|
|
|
28
31
|
* }
|
|
29
32
|
* ```
|
|
30
33
|
*/
|
|
31
|
-
use(
|
|
32
|
-
/**
|
|
33
|
-
* The <i>withTypes</i> method is used to set the value types of the cache.
|
|
34
|
-
* @example
|
|
35
|
-
* ```ts
|
|
36
|
-
* import { type ICacheFactory zodValidator } from "@daiso-tech/core";
|
|
37
|
-
*
|
|
38
|
-
* async function main(cacheFactory: ICacheFactory): Promise<void> {
|
|
39
|
-
* await cacheFactory
|
|
40
|
-
* .withTypes<string>()
|
|
41
|
-
* .use()
|
|
42
|
-
* // You will se an typescript error
|
|
43
|
-
* .add("a", 1)
|
|
44
|
-
* }
|
|
45
|
-
* ```
|
|
46
|
-
*/
|
|
47
|
-
withType<TOutput extends TType = TType>(): ICacheFactory<TDrivers, TOutput>;
|
|
34
|
+
use<TType = unknown>(adapterName?: TAdapters): IGroupableCache<TType>;
|
|
48
35
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module Cache
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
4
|
+
import type { IEventListener } from "../../event-bus/contracts/_module";
|
|
5
5
|
import type { OneOrMore } from "../../utilities/_module";
|
|
6
6
|
import { type AsyncLazyable, type GetOrAddValue } from "../../utilities/_module";
|
|
7
7
|
import type { CacheEvents } from "../../cache/contracts/_module";
|
|
@@ -11,7 +11,7 @@ import type { LazyPromise } from "../../async/_module";
|
|
|
11
11
|
* The <i>ICacheListenable</i> contract defines a way for listening <i>{@link ICache}</i> crud operations.
|
|
12
12
|
* @group Contracts
|
|
13
13
|
*/
|
|
14
|
-
export type
|
|
14
|
+
export type ICacheListener<TType = unknown> = IEventListener<CacheEvents<TType>>;
|
|
15
15
|
/**
|
|
16
16
|
* @group Contracts
|
|
17
17
|
*/
|
|
@@ -27,84 +27,404 @@ export type WithTtlValue<TType> = {
|
|
|
27
27
|
* It commes with more convient methods compared to <i>ICacheAdapter</i>.
|
|
28
28
|
* @group Contracts
|
|
29
29
|
*/
|
|
30
|
-
export type ICache<TType = unknown> =
|
|
30
|
+
export type ICache<TType = unknown> = ICacheListener & {
|
|
31
31
|
/**
|
|
32
32
|
* The <i>exists</i> method returns true when <i>key</i> is found otherwise false will be returned.
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* import type { ICache } from "@daiso-tech/core";
|
|
36
|
+
*
|
|
37
|
+
* // Asume the inputed cache is empty
|
|
38
|
+
* async function main(cache: ICache): Promise<void> {
|
|
39
|
+
* await cache.exists("a");
|
|
40
|
+
* // false
|
|
41
|
+
* }
|
|
42
|
+
* ```
|
|
33
43
|
*/
|
|
34
44
|
exists(key: string): LazyPromise<boolean>;
|
|
35
45
|
/**
|
|
36
46
|
* The <i>existsMany</i> method returns true for the <i>keys</i> that are found otherwise false will be returned.
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* import type { ICache } from "@daiso-tech/core";
|
|
50
|
+
*
|
|
51
|
+
* // Asume the inputed cache is empty
|
|
52
|
+
* async function main(cache: ICache): Promise<void> {
|
|
53
|
+
* await cache.existsMany(["a", "b"]);
|
|
54
|
+
* // { a: false, b: false }
|
|
55
|
+
* }
|
|
56
|
+
* ```
|
|
37
57
|
*/
|
|
38
58
|
existsMany<TKeys extends string>(keys: TKeys[]): LazyPromise<Record<TKeys, boolean>>;
|
|
39
59
|
/**
|
|
40
60
|
* The <i>missing</i> method returns true when <i>key</i> is not found otherwise false will be returned.
|
|
61
|
+
* @example
|
|
62
|
+
* ```ts
|
|
63
|
+
* import type { ICache } from "@daiso-tech/core";
|
|
64
|
+
*
|
|
65
|
+
* // Asume the inputed cache is empty
|
|
66
|
+
* async function main(cache: ICache): Promise<void> {
|
|
67
|
+
* await cache.exists("a");
|
|
68
|
+
* // true
|
|
69
|
+
* }
|
|
70
|
+
* ```
|
|
41
71
|
*/
|
|
42
72
|
missing(key: string): LazyPromise<boolean>;
|
|
43
73
|
/**
|
|
44
74
|
* The <i>missingMany</i> method returns true for the <i>keys</i> that are not found otherwise false will be returned.
|
|
75
|
+
* @example
|
|
76
|
+
* ```ts
|
|
77
|
+
* import type { ICache } from "@daiso-tech/core";
|
|
78
|
+
*
|
|
79
|
+
* // Asume the inputed cache is empty
|
|
80
|
+
* async function main(cache: ICache): Promise<void> {
|
|
81
|
+
* await cache.existsMany(["a", "b"]);
|
|
82
|
+
* // { a: true, b: true }
|
|
83
|
+
* }
|
|
84
|
+
* ```
|
|
45
85
|
*/
|
|
46
86
|
missingMany<TKeys extends string>(keys: TKeys[]): LazyPromise<Record<TKeys, boolean>>;
|
|
47
87
|
/**
|
|
48
88
|
* The <i>get</i> method returns the value when <i>key</i> is found otherwise null will be returned.
|
|
89
|
+
* @example
|
|
90
|
+
* ```ts
|
|
91
|
+
* import type { ICache } from "@daiso-tech/core";
|
|
92
|
+
*
|
|
93
|
+
* // Asume the inputed cache is empty
|
|
94
|
+
* async function main(cache: ICache): Promise<void> {
|
|
95
|
+
* await cache.get("a");
|
|
96
|
+
* // null
|
|
97
|
+
* }
|
|
98
|
+
* ```
|
|
49
99
|
*/
|
|
50
100
|
get(key: string): LazyPromise<TType | null>;
|
|
51
101
|
/**
|
|
52
102
|
* The <i>getMany</i> returns the value for the <i>keys</i> that are found otherwise null will be returned.
|
|
103
|
+
* @example
|
|
104
|
+
* ```ts
|
|
105
|
+
* import type { ICache } from "@daiso-tech/core";
|
|
106
|
+
*
|
|
107
|
+
* // Asume the inputed cache is empty
|
|
108
|
+
* async function main(cache: ICache): Promise<void> {
|
|
109
|
+
* await cache.getMany(["a", "b"]);
|
|
110
|
+
* // { a: null, b: null }
|
|
111
|
+
* }
|
|
112
|
+
* ```
|
|
53
113
|
*/
|
|
54
114
|
getMany<TKeys extends string>(keys: TKeys[]): LazyPromise<Record<TKeys, TType | null>>;
|
|
55
115
|
/**
|
|
56
116
|
* The <i>getOr</i> method returns the value when <i>key</i> is found otherwise <i>defaultValue</i> will be returned.
|
|
117
|
+
* @example
|
|
118
|
+
* ```ts
|
|
119
|
+
* import type { ICache } from "@daiso-tech/core";
|
|
120
|
+
*
|
|
121
|
+
* // Asume the inputed cache is empty
|
|
122
|
+
* async function main(cache: ICache): Promise<void> {
|
|
123
|
+
* await cache.getOr("a", -1);
|
|
124
|
+
* // -1
|
|
125
|
+
* }
|
|
126
|
+
* ```
|
|
57
127
|
*/
|
|
58
128
|
getOr(key: string, defaultValue: AsyncLazyable<TType>): LazyPromise<TType>;
|
|
59
129
|
/**
|
|
60
130
|
* The <i>getOrMany</i> method returns the value for the keys that are found otherwise defaultValue will be returned.
|
|
131
|
+
* @example
|
|
132
|
+
* ```ts
|
|
133
|
+
* import type { ICache } from "@daiso-tech/core";
|
|
134
|
+
*
|
|
135
|
+
* // Asume the inputed cache is empty
|
|
136
|
+
* async function main(cache: ICache): Promise<void> {
|
|
137
|
+
* await cache.getOrMany({ a: -1, b: () => -2, c: async () => -3 });
|
|
138
|
+
* // { a: -1, b: -2, c: -3 }
|
|
139
|
+
* }
|
|
140
|
+
* ```
|
|
61
141
|
*/
|
|
62
142
|
getOrMany<TKeys extends string>(keysWithDefaults: Record<TKeys, AsyncLazyable<TType>>): LazyPromise<Record<TKeys, TType>>;
|
|
63
143
|
/**
|
|
64
144
|
* The <i>getOrFail</i> method returns the value when <i>key</i> is found otherwise an error will be thrown.
|
|
65
145
|
* @throws {KeyNotFoundCacheError} {@link KeyNotFoundCacheError}
|
|
146
|
+
* @example
|
|
147
|
+
* ```ts
|
|
148
|
+
* import type { ICache } from "@daiso-tech/core";
|
|
149
|
+
*
|
|
150
|
+
* // Asume the inputed cache is empty
|
|
151
|
+
* async function main(cache: ICache): Promise<void> {
|
|
152
|
+
* await cache.getOrFail("a");
|
|
153
|
+
* // An error will be thrown
|
|
154
|
+
* }
|
|
155
|
+
* ```
|
|
66
156
|
*/
|
|
67
157
|
getOrFail(key: string): LazyPromise<TType>;
|
|
68
158
|
/**
|
|
69
159
|
* The <i>add</i> method adds a <i>key</i> with given <i>value</i> when key doesn't exists. Returns true when key doesn't exists otherwise false will be returned.
|
|
70
160
|
* You can provide a <i>ttl</i> value. If null is passed, the item will not expire.
|
|
161
|
+
* @example
|
|
162
|
+
* ```ts
|
|
163
|
+
* import type { ICache } from "@daiso-tech/core";
|
|
164
|
+
*
|
|
165
|
+
* // Asume the inputed cache is empty
|
|
166
|
+
* async function main(cache: ICache): Promise<void> {
|
|
167
|
+
* await cache.add("a", 1);
|
|
168
|
+
* // true
|
|
169
|
+
*
|
|
170
|
+
* await cache.add("a", 2);
|
|
171
|
+
* // false
|
|
172
|
+
*
|
|
173
|
+
* await cache.get("a");
|
|
174
|
+
* // 1
|
|
175
|
+
* }
|
|
176
|
+
* ```
|
|
177
|
+
* @example
|
|
178
|
+
* ```ts
|
|
179
|
+
* import { type ICache, TimeSpan, delay } from "@daiso-tech/core";
|
|
180
|
+
*
|
|
181
|
+
* // Asume the inputed cache is empty
|
|
182
|
+
* async function main(cache: ICache): Promise<void> {
|
|
183
|
+
* const ttl = TimeSpan.fromSeconds(1);
|
|
184
|
+
*
|
|
185
|
+
* await cache.add("a", 1, ttl);
|
|
186
|
+
* // true
|
|
187
|
+
*
|
|
188
|
+
* await delay(ttl)
|
|
189
|
+
*
|
|
190
|
+
* await cache.add("a", 2);
|
|
191
|
+
* // true
|
|
192
|
+
*
|
|
193
|
+
* await cache.get("a");
|
|
194
|
+
* // 2
|
|
195
|
+
* }
|
|
196
|
+
* ```
|
|
71
197
|
*/
|
|
72
198
|
add(key: string, value: TType, ttl?: TimeSpan | null): LazyPromise<boolean>;
|
|
73
199
|
/**
|
|
74
200
|
* The <i>addMany</i> method adds new keys. Returns true for the keys that where added otherwise false will be returned.
|
|
201
|
+
* @example
|
|
202
|
+
* ```ts
|
|
203
|
+
* import type { ICache } from "@daiso-tech/core";
|
|
204
|
+
*
|
|
205
|
+
* // Asume the inputed cache is empty
|
|
206
|
+
* async function main(cache: ICache): Promise<void> {
|
|
207
|
+
* await cache.addMany({ a: { value: 1 } });
|
|
208
|
+
* // { a: true }
|
|
209
|
+
*
|
|
210
|
+
* await cache.addMany({ a: { value: 2 } });
|
|
211
|
+
* // { a: false }
|
|
212
|
+
*
|
|
213
|
+
* await cache.get("a");
|
|
214
|
+
* // 1
|
|
215
|
+
* }
|
|
216
|
+
* ```
|
|
217
|
+
* @example
|
|
218
|
+
* ```ts
|
|
219
|
+
* import { type ICache, TimeSpan, delay } from "@daiso-tech/core";
|
|
220
|
+
*
|
|
221
|
+
* // Asume the inputed cache is empty
|
|
222
|
+
* async function main(cache: ICache): Promise<void> {
|
|
223
|
+
* const ttl = TimeSpan.fromSeconds(1);
|
|
224
|
+
*
|
|
225
|
+
* await cache.addMany({ a: { value: 1, ttl } });
|
|
226
|
+
* // { a: true }
|
|
227
|
+
*
|
|
228
|
+
* await delay(ttl)
|
|
229
|
+
*
|
|
230
|
+
* await cache.addMany({ a: { value: 2 } });
|
|
231
|
+
* // { a: true }
|
|
232
|
+
*
|
|
233
|
+
* await cache.get("a");
|
|
234
|
+
* // 2
|
|
235
|
+
* }
|
|
236
|
+
* ```
|
|
75
237
|
*/
|
|
76
238
|
addMany<TKeys extends string>(values: Record<TKeys, WithTtlValue<TType>>): LazyPromise<Record<TKeys, boolean>>;
|
|
77
239
|
/**
|
|
78
240
|
* The <i>update</i> method updates the given <i>key</i> with given <i>value</i>. Returns true when key otherwise false will be returned.
|
|
241
|
+
* @example
|
|
242
|
+
* ```ts
|
|
243
|
+
* import type { ICache } from "@daiso-tech/core";
|
|
244
|
+
*
|
|
245
|
+
* // Asume the inputed cache is empty
|
|
246
|
+
* async function main(cache: ICache): Promise<void> {
|
|
247
|
+
* await cache.update("a", 1);
|
|
248
|
+
* // false
|
|
249
|
+
*
|
|
250
|
+
* await cache.add("a", 1);
|
|
251
|
+
*
|
|
252
|
+
*
|
|
253
|
+
* await cache.update("a", 2);
|
|
254
|
+
* // true
|
|
255
|
+
*
|
|
256
|
+
* await cache.get("a");
|
|
257
|
+
* // 2
|
|
258
|
+
* }
|
|
259
|
+
* ```
|
|
79
260
|
*/
|
|
80
261
|
update(key: string, value: TType): LazyPromise<boolean>;
|
|
81
262
|
/**
|
|
82
263
|
* The <i>updateMany</i> method updates the given keys. Returns true for the keys that where updated otherwise false will be returned.
|
|
264
|
+
*
|
|
265
|
+
* @example
|
|
266
|
+
* ```ts
|
|
267
|
+
* import type { ICache } from "@daiso-tech/core";
|
|
268
|
+
*
|
|
269
|
+
* // Asume the inputed cache is empty
|
|
270
|
+
* async function main(cache: ICache): Promise<void> {
|
|
271
|
+
* await cache.updateMany({ a: 1 });
|
|
272
|
+
* // false
|
|
273
|
+
*
|
|
274
|
+
* await cache.add("a", 1);
|
|
275
|
+
*
|
|
276
|
+
* await cache.updateMany({ a: 2 });
|
|
277
|
+
* // true
|
|
278
|
+
*
|
|
279
|
+
* await cache.get("a");
|
|
280
|
+
* // 2
|
|
281
|
+
* }
|
|
282
|
+
* ```
|
|
83
283
|
*/
|
|
84
284
|
updateMany<TKeys extends string>(values: Record<TKeys, TType>): LazyPromise<Record<TKeys, boolean>>;
|
|
85
285
|
/**
|
|
86
|
-
* The <i>put</i> method replaces
|
|
87
|
-
*
|
|
286
|
+
* The <i>put</i> method replaces a <i>key</i> if the <i>key</i> exists including the ttl value or adds <i>key</i> that do not exists with a given <i>ttl</i>.
|
|
287
|
+
* Returns true if the <i>key</i> where replaced otherwise false is returned.
|
|
288
|
+
* You can provide a <i>ttl</i> value for the replaced key. If <i>null</i> is passed, the item will not expires and <i>null</i> is the default value.
|
|
289
|
+
* @example
|
|
290
|
+
* ```ts
|
|
291
|
+
* import { type ICache, TimeSpan, delay } from "@daiso-tech/core";
|
|
292
|
+
*
|
|
293
|
+
* // Asume the inputed cache is empty
|
|
294
|
+
* async function main(cache: ICache): Promise<void> {
|
|
295
|
+
* await cache.put("a", 1);
|
|
296
|
+
* // false
|
|
297
|
+
*
|
|
298
|
+
* const ttl = TimeSpan.fromSeconds(1);
|
|
299
|
+
* await cache.put("a", 2, ttl);
|
|
300
|
+
* // true
|
|
301
|
+
*
|
|
302
|
+
* await cache.get("a");
|
|
303
|
+
* // 2
|
|
304
|
+
*
|
|
305
|
+
* await delay(ttl);
|
|
306
|
+
* await cache.get("a");
|
|
307
|
+
* // null
|
|
308
|
+
* }
|
|
309
|
+
* ```
|
|
88
310
|
*/
|
|
89
311
|
put(key: string, value: TType, ttl?: TimeSpan | null): LazyPromise<boolean>;
|
|
90
312
|
/**
|
|
91
|
-
* The <i>putMany</i> method replaces the keys that exists
|
|
313
|
+
* The <i>putMany</i> method replaces the keys that exists including their ttl values or adds keys that do not exists.
|
|
314
|
+
* Returns true for all the keys that where replaced otherwise false is returned.
|
|
315
|
+
* @example
|
|
316
|
+
* ```ts
|
|
317
|
+
* import { type ICache, TimeSpan, delay } from "@daiso-tech/core";
|
|
318
|
+
*
|
|
319
|
+
* // Asume the inputed cache is empty
|
|
320
|
+
* async function main(cache: ICache): Promise<void> {
|
|
321
|
+
* await cache.putMany({ a: { value: 1 } });
|
|
322
|
+
* // { a: false }
|
|
323
|
+
*
|
|
324
|
+
* const ttl = TimeSpan.fromSeconds(1);
|
|
325
|
+
* await cache.put({ a: { value: 2, ttl } });
|
|
326
|
+
* // { a: true }
|
|
327
|
+
*
|
|
328
|
+
* await cache.get("a");
|
|
329
|
+
* // 2
|
|
330
|
+
*
|
|
331
|
+
* await delay(ttl);
|
|
332
|
+
* await cache.get("a");
|
|
333
|
+
* // null
|
|
334
|
+
* }
|
|
335
|
+
* ```
|
|
92
336
|
*/
|
|
93
337
|
putMany<TKeys extends string>(values: Record<TKeys, WithTtlValue<TType>>): LazyPromise<Record<TKeys, boolean>>;
|
|
94
338
|
/**
|
|
95
339
|
* The <i>remove</i> method removes the given <i>key</i> when found. Returns true if the key is found otherwise false is returned.
|
|
340
|
+
* @example
|
|
341
|
+
* ```ts
|
|
342
|
+
* import type { ICache } from "@daiso-tech/core";
|
|
343
|
+
*
|
|
344
|
+
* // Asume the inputed cache is empty
|
|
345
|
+
* async function main(cache: ICache): Promise<void> {
|
|
346
|
+
* await cache.remove("a");
|
|
347
|
+
* // false
|
|
348
|
+
* }
|
|
349
|
+
* ```
|
|
350
|
+
* @example
|
|
351
|
+
* ```ts
|
|
352
|
+
* import type { ICache } from "@daiso-tech/core";
|
|
353
|
+
*
|
|
354
|
+
* // Asume the inputed cache is empty
|
|
355
|
+
* async function main(cache: ICache): Promise<void> {
|
|
356
|
+
* await cache.put("a", 1);
|
|
357
|
+
*
|
|
358
|
+
* await cache.remove("a");
|
|
359
|
+
* // true
|
|
360
|
+
* }
|
|
361
|
+
* ```
|
|
96
362
|
*/
|
|
97
363
|
remove(key: string): LazyPromise<boolean>;
|
|
98
364
|
/**
|
|
99
365
|
* The <i>removeMany</i> method removes keys. Returns true for the keys that are removed otherwise false is returned.
|
|
366
|
+
* @example
|
|
367
|
+
* ```ts
|
|
368
|
+
* import type { ICache } from "@daiso-tech/core";
|
|
369
|
+
*
|
|
370
|
+
* // Asume the inputed cache is empty
|
|
371
|
+
* async function main(cache: ICache): Promise<void> {
|
|
372
|
+
* await cache.removeMany(["a"]);
|
|
373
|
+
* // false
|
|
374
|
+
* }
|
|
375
|
+
* ```
|
|
376
|
+
* @example
|
|
377
|
+
* ```ts
|
|
378
|
+
* import type { ICache } from "@daiso-tech/core";
|
|
379
|
+
*
|
|
380
|
+
* // Asume the inputed cache is empty
|
|
381
|
+
* async function main(cache: ICache): Promise<void> {
|
|
382
|
+
* await cache.put("a", 1);
|
|
383
|
+
*
|
|
384
|
+
* await cache.removeMany(["a"]);
|
|
385
|
+
* // { a: true }
|
|
386
|
+
* }
|
|
387
|
+
* ```
|
|
100
388
|
*/
|
|
101
389
|
removeMany<TKeys extends string>(keys: TKeys[]): LazyPromise<Record<TKeys, boolean>>;
|
|
102
390
|
/**
|
|
103
391
|
* The <i>getAndRemove</i> method removes the given <i>key</i> and returns it when found otherwise null will be returned.
|
|
392
|
+
* @example
|
|
393
|
+
* ```ts
|
|
394
|
+
* import type { ICache } from "@daiso-tech/core";
|
|
395
|
+
*
|
|
396
|
+
* // Asume the inputed cache is empty
|
|
397
|
+
* async function main(cache: ICache): Promise<void> {
|
|
398
|
+
* await cache.getAndRemove("a");
|
|
399
|
+
* // null
|
|
400
|
+
*
|
|
401
|
+
* await cache.put("a", 1)
|
|
402
|
+
*
|
|
403
|
+
* await cache.getAndRemove("a");
|
|
404
|
+
* // "a"
|
|
405
|
+
*
|
|
406
|
+
* await cache.get("a");
|
|
407
|
+
* // null
|
|
408
|
+
* }
|
|
409
|
+
* ```
|
|
104
410
|
*/
|
|
105
411
|
getAndRemove(key: string): LazyPromise<TType | null>;
|
|
106
412
|
/**
|
|
107
413
|
* The <i>getOrAdd</i> method will retrieve the given <i>key</i> if found otherwise <i>valueToAdd</i> will be added and returned.
|
|
414
|
+
* The <i>valueToAdd<i> can be async or sync function.
|
|
415
|
+
* @example
|
|
416
|
+
* ```ts
|
|
417
|
+
* import type { ICache } from "@daiso-tech/core";
|
|
418
|
+
*
|
|
419
|
+
* // Asume the inputed cache is empty
|
|
420
|
+
* async function main(cache: ICache): Promise<void> {
|
|
421
|
+
* await cache.getOrAdd("a", 1);
|
|
422
|
+
* // 1
|
|
423
|
+
*
|
|
424
|
+
* await cache.getOrAdd("a", async () => -1);
|
|
425
|
+
* // 1
|
|
426
|
+
* }
|
|
427
|
+
* ```
|
|
108
428
|
*/
|
|
109
429
|
getOrAdd(key: string, valueToAdd: AsyncLazyable<GetOrAddValue<TType>>, ttl?: TimeSpan | null): LazyPromise<TType>;
|
|
110
430
|
/**
|
|
@@ -112,6 +432,24 @@ export type ICache<TType = unknown> = ICacheListenable & {
|
|
|
112
432
|
* Returns true if key is incremented otherwise false will be returned.
|
|
113
433
|
* An error will thrown if the key is not a number.
|
|
114
434
|
* @throws {TypeCacheError} {@link TypeCacheError}
|
|
435
|
+
* @example
|
|
436
|
+
* ```ts
|
|
437
|
+
* import type { ICache } from "@daiso-tech/core";
|
|
438
|
+
*
|
|
439
|
+
* // Asume the inputed cache is empty
|
|
440
|
+
* async function main(cache: ICache): Promise<void> {
|
|
441
|
+
* await cache.increment("a", 1);
|
|
442
|
+
* // false
|
|
443
|
+
*
|
|
444
|
+
* await cache.put("a", 1);
|
|
445
|
+
*
|
|
446
|
+
* await cache.increment("a", 1);
|
|
447
|
+
* // true
|
|
448
|
+
*
|
|
449
|
+
* await cache.get("a");
|
|
450
|
+
* // 2
|
|
451
|
+
* }
|
|
452
|
+
* ```
|
|
115
453
|
*/
|
|
116
454
|
increment(key: string, value?: Extract<TType, number>): LazyPromise<boolean>;
|
|
117
455
|
/**
|
|
@@ -119,7 +457,24 @@ export type ICache<TType = unknown> = ICacheListenable & {
|
|
|
119
457
|
* Returns true if key exists otherwise false will be returned.
|
|
120
458
|
* An error will thrown if the key is not a number.
|
|
121
459
|
* @throws {TypeCacheError} {@link TypeCacheError}
|
|
122
|
-
*
|
|
460
|
+
* @example
|
|
461
|
+
* ```ts
|
|
462
|
+
* import type { ICache } from "@daiso-tech/core";
|
|
463
|
+
*
|
|
464
|
+
* // Asume the inputed cache is empty
|
|
465
|
+
* async function main(cache: ICache): Promise<void> {
|
|
466
|
+
* await cache.decrement("a", 1);
|
|
467
|
+
* // false
|
|
468
|
+
*
|
|
469
|
+
* await cache.put("a", 1);
|
|
470
|
+
*
|
|
471
|
+
* await cache.decrement("a", 1);
|
|
472
|
+
* // true
|
|
473
|
+
*
|
|
474
|
+
* await cache.get("a");
|
|
475
|
+
* // 0
|
|
476
|
+
* }
|
|
477
|
+
* ```
|
|
123
478
|
*/
|
|
124
479
|
decrement(key: string, value?: Extract<TType, number>): LazyPromise<boolean>;
|
|
125
480
|
/**
|
|
@@ -127,48 +482,53 @@ export type ICache<TType = unknown> = ICacheListenable & {
|
|
|
127
482
|
*/
|
|
128
483
|
clear(): LazyPromise<void>;
|
|
129
484
|
/**
|
|
130
|
-
* The <i>
|
|
485
|
+
* The <i>getGroup</i> method returns the group name.
|
|
131
486
|
* @example
|
|
132
487
|
* ```ts
|
|
133
488
|
* import type { ICache } from "@daiso-tech/core";
|
|
134
489
|
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
* console.log(cache.
|
|
490
|
+
* // Asume the inputed cache is empty and the default rootGroup is "@global"
|
|
491
|
+
* async function main(cache: ICache): Promise<void> {
|
|
492
|
+
* console.log(cache.getGroup())
|
|
138
493
|
*
|
|
139
|
-
* const cacheA = cache.
|
|
494
|
+
* const cacheA = cache.withGroup("a");
|
|
140
495
|
*
|
|
141
|
-
* // Will be "@
|
|
142
|
-
* console.log(cacheA.
|
|
496
|
+
* // Will be "@global/a"
|
|
497
|
+
* console.log(cacheA.getGroup())
|
|
143
498
|
* }
|
|
144
499
|
* ```
|
|
145
500
|
*/
|
|
146
|
-
|
|
501
|
+
getGroup(): string;
|
|
147
502
|
};
|
|
148
503
|
/**
|
|
149
|
-
* The <i>
|
|
504
|
+
* The <i>IGroupableCache</i> contract defines a way for storing data as key-value pairs independent of data storage.
|
|
150
505
|
* It commes with one extra method which is useful for multitennat applications compared to <i>ICache</i>.
|
|
151
506
|
* @group Contracts
|
|
152
507
|
*/
|
|
153
|
-
export type
|
|
508
|
+
export type IGroupableCache<TType = unknown> = ICache<TType> & {
|
|
154
509
|
/**
|
|
155
|
-
* The <i>
|
|
510
|
+
* The <i>withGroup</i> method returns a new <i>{@link ICache}</i> instance that groups keys together.
|
|
511
|
+
* Only keys in the group can be updated, removed, or retrieved, leaving keys outside the group unaffected.
|
|
156
512
|
* This useful for multitennat applications.
|
|
157
513
|
* @example
|
|
158
514
|
* ```ts
|
|
159
|
-
* import {
|
|
515
|
+
* import type { ICache } from "@daiso-tech/core";
|
|
160
516
|
*
|
|
517
|
+
* // Asume the inputed cache is empty and the default rootGroup is "@global"
|
|
161
518
|
* async function main(cache: ICache): Promise<void> {
|
|
162
|
-
* const cacheA = cache.
|
|
519
|
+
* const cacheA = cache.withGroup("a");
|
|
163
520
|
* await cacheA.add("a", 1);
|
|
164
521
|
*
|
|
165
|
-
* const cacheB = cache.
|
|
522
|
+
* const cacheB = cache.withGroup("b");
|
|
166
523
|
* await cacheB.add("b", 2);
|
|
167
524
|
*
|
|
168
525
|
* // Will print { a: 1, b: null }
|
|
169
526
|
* console.log(await cacheA.getMany(["a", "b"]));
|
|
527
|
+
*
|
|
528
|
+
* // Will print { a: nullp, b: 2 }
|
|
529
|
+
* console.log(await cacheB.getMany(["a", "b"]));
|
|
170
530
|
* }
|
|
171
531
|
* ```
|
|
172
532
|
*/
|
|
173
|
-
|
|
533
|
+
withGroup(group: OneOrMore<string>): ICache<TType>;
|
|
174
534
|
};
|