@daiso-tech/core 0.16.0 → 0.17.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/async/_module.js +1 -1
- package/dist/cjs/async/_module.js.map +1 -1
- package/dist/cjs/async/backof-policies/_module.js +1 -0
- package/dist/cjs/async/backof-policies/_module.js.map +1 -1
- package/dist/cjs/async/utilities/_module.js +3 -0
- package/dist/cjs/async/utilities/_module.js.map +1 -1
- package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js +16 -22
- package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
- package/dist/cjs/cache/contracts/cache.events.js +168 -0
- package/dist/cjs/cache/contracts/cache.events.js.map +1 -1
- package/dist/cjs/cache/implementations/_shared/_module.js +1 -0
- package/dist/cjs/cache/implementations/_shared/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
- package/dist/cjs/cache/implementations/_shared/cache.test-suite.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +7 -5
- package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/_module.js +2 -1
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +56 -0
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +18 -14
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/_module.js +1 -0
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +26 -0
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +11 -3
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/_module.js +2 -1
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +44 -0
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +21 -8
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js +1 -0
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +32 -0
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +27 -20
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js +1 -0
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +56 -0
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +19 -15
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/derivables/_module.js +3 -1
- package/dist/cjs/cache/implementations/derivables/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/derivables/cache-factory-settings.js +65 -0
- package/dist/cjs/cache/implementations/derivables/cache-factory-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/derivables/cache-factory.js +29 -15
- package/dist/cjs/cache/implementations/derivables/cache-factory.js.map +1 -1
- package/dist/cjs/cache/implementations/derivables/cache-settings.js +56 -0
- package/dist/cjs/cache/implementations/derivables/cache-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/derivables/cache.js +104 -93
- package/dist/cjs/cache/implementations/derivables/cache.js.map +1 -1
- package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js +1 -1
- package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js.map +1 -1
- package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js +1 -1
- package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js.map +1 -1
- package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js +1 -1
- package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js.map +1 -1
- package/dist/cjs/collection/implementations/async-iterable-collection/async-iterable-collection.js +20 -11
- package/dist/cjs/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
- package/dist/cjs/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
- package/dist/cjs/collection/implementations/list-collection/list-collection.js.map +1 -1
- package/dist/cjs/event-bus/contracts/_module.js +2 -2
- package/dist/cjs/event-bus/contracts/_module.js.map +1 -1
- package/dist/cjs/event-bus/contracts/_shared.js +7 -0
- package/dist/cjs/event-bus/contracts/_shared.js.map +1 -1
- package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +52 -36
- package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
- package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js +156 -120
- package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +2 -1
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -1
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +26 -0
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +1 -0
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +17 -9
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
- package/dist/cjs/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +3 -3
- package/dist/cjs/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -1
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js +2 -1
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -1
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +38 -0
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +1 -0
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +9 -5
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
- package/dist/cjs/event-bus/implementations/derivables/_module.js +3 -1
- package/dist/cjs/event-bus/implementations/derivables/_module.js.map +1 -1
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory-settings.js +59 -0
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory-settings.js.map +1 -0
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js +28 -16
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js.map +1 -1
- package/dist/cjs/event-bus/implementations/derivables/event-bus-settings.js +56 -0
- package/dist/cjs/event-bus/implementations/derivables/event-bus-settings.js.map +1 -0
- package/dist/cjs/event-bus/implementations/derivables/event-bus.js +74 -62
- package/dist/cjs/event-bus/implementations/derivables/event-bus.js.map +1 -1
- package/dist/cjs/serde/contracts/_module.js +4 -0
- package/dist/cjs/serde/contracts/_module.js.map +1 -1
- package/dist/cjs/serde/contracts/deserializer.contract.js +3 -0
- package/dist/cjs/serde/contracts/deserializer.contract.js.map +1 -0
- package/dist/cjs/serde/contracts/flexible-serde.contract.js +3 -0
- package/dist/cjs/serde/contracts/flexible-serde.contract.js.map +1 -0
- package/dist/cjs/serde/contracts/serializable.contract.js +3 -0
- package/dist/cjs/serde/contracts/serializable.contract.js.map +1 -0
- package/dist/cjs/serde/contracts/serializer.contract.js +3 -0
- package/dist/cjs/serde/contracts/serializer.contract.js.map +1 -0
- package/dist/cjs/serde/implementations/_module.js +1 -0
- package/dist/cjs/serde/implementations/_module.js.map +1 -1
- package/dist/cjs/serde/implementations/_shared/test-utilities/_module.js +1 -0
- package/dist/cjs/serde/implementations/_shared/test-utilities/_module.js.map +1 -1
- package/dist/cjs/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js +53 -0
- package/dist/cjs/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js.map +1 -0
- package/dist/cjs/serde/implementations/_shared/test-utilities/serde.test-suite.js +35 -60
- package/dist/cjs/serde/implementations/_shared/test-utilities/serde.test-suite.js.map +1 -1
- package/dist/cjs/serde/implementations/no-op-serde/_module.js +18 -0
- package/dist/cjs/serde/implementations/no-op-serde/_module.js.map +1 -0
- package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js +16 -0
- package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js.map +1 -0
- package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js +5 -2
- package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js.map +1 -1
- package/dist/cjs/utilities/contracts/_module.js +1 -0
- package/dist/cjs/utilities/contracts/_module.js.map +1 -1
- package/dist/cjs/utilities/contracts/buildable.contract.js +3 -0
- package/dist/cjs/utilities/contracts/buildable.contract.js.map +1 -0
- package/dist/cjs/utilities/errors.js +10 -10
- package/dist/cjs/utilities/errors.js.map +1 -1
- package/dist/cjs/utilities/functions.js +4 -0
- package/dist/cjs/utilities/functions.js.map +1 -1
- package/dist/cjs/utilities/time-span/time-span.js.map +1 -1
- package/dist/esm/async/_module.js +1 -1
- package/dist/esm/async/_module.js.map +1 -1
- package/dist/esm/async/backof-policies/_module.js +1 -0
- package/dist/esm/async/backof-policies/_module.js.map +1 -1
- package/dist/esm/async/utilities/_module.js +3 -0
- package/dist/esm/async/utilities/_module.js.map +1 -1
- package/dist/esm/async/utilities/lazy-promise/lazy-promise.js +16 -22
- package/dist/esm/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
- package/dist/esm/cache/contracts/cache.events.js +158 -0
- package/dist/esm/cache/contracts/cache.events.js.map +1 -1
- package/dist/esm/cache/implementations/_shared/_module.js +1 -0
- package/dist/esm/cache/implementations/_shared/_module.js.map +1 -1
- package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
- package/dist/esm/cache/implementations/_shared/cache.test-suite.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +7 -5
- package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js +2 -1
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +52 -0
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +1 -0
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +17 -13
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js +1 -0
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +22 -0
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +1 -0
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +11 -3
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js +2 -1
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +40 -0
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +1 -0
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +21 -8
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js +1 -0
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +28 -0
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +1 -0
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +28 -21
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js +1 -0
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +52 -0
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +1 -0
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +17 -13
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/derivables/_module.js +3 -1
- package/dist/esm/cache/implementations/derivables/_module.js.map +1 -1
- package/dist/esm/cache/implementations/derivables/cache-factory-settings.js +61 -0
- package/dist/esm/cache/implementations/derivables/cache-factory-settings.js.map +1 -0
- package/dist/esm/cache/implementations/derivables/cache-factory.js +30 -16
- package/dist/esm/cache/implementations/derivables/cache-factory.js.map +1 -1
- package/dist/esm/cache/implementations/derivables/cache-settings.js +52 -0
- package/dist/esm/cache/implementations/derivables/cache-settings.js.map +1 -0
- package/dist/esm/cache/implementations/derivables/cache.js +82 -71
- package/dist/esm/cache/implementations/derivables/cache.js.map +1 -1
- package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js +1 -1
- package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js.map +1 -1
- package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js +1 -1
- package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js.map +1 -1
- package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js +1 -1
- package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js.map +1 -1
- package/dist/esm/collection/implementations/async-iterable-collection/async-iterable-collection.js +20 -11
- package/dist/esm/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
- package/dist/esm/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
- package/dist/esm/collection/implementations/list-collection/list-collection.js.map +1 -1
- package/dist/esm/event-bus/contracts/_module.js +2 -2
- package/dist/esm/event-bus/contracts/_module.js.map +1 -1
- package/dist/esm/event-bus/contracts/_shared.js +5 -0
- package/dist/esm/event-bus/contracts/_shared.js.map +1 -1
- package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +45 -29
- package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
- package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js +143 -107
- package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +2 -1
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -1
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +22 -0
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +1 -0
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +17 -9
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
- package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +3 -3
- package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -1
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js +2 -1
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -1
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +34 -0
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +1 -0
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +10 -6
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
- package/dist/esm/event-bus/implementations/derivables/_module.js +3 -1
- package/dist/esm/event-bus/implementations/derivables/_module.js.map +1 -1
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory-settings.js +55 -0
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory-settings.js.map +1 -0
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js +29 -17
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js.map +1 -1
- package/dist/esm/event-bus/implementations/derivables/event-bus-settings.js +52 -0
- package/dist/esm/event-bus/implementations/derivables/event-bus-settings.js.map +1 -0
- package/dist/esm/event-bus/implementations/derivables/event-bus.js +76 -64
- package/dist/esm/event-bus/implementations/derivables/event-bus.js.map +1 -1
- package/dist/esm/serde/contracts/_module.js +4 -0
- package/dist/esm/serde/contracts/_module.js.map +1 -1
- package/dist/esm/serde/contracts/deserializer.contract.js +1 -0
- package/dist/esm/serde/contracts/deserializer.contract.js.map +1 -0
- package/dist/esm/serde/contracts/flexible-serde.contract.js +1 -0
- package/dist/esm/serde/contracts/flexible-serde.contract.js.map +1 -0
- package/dist/esm/serde/contracts/serializable.contract.js +1 -0
- package/dist/esm/serde/contracts/serializable.contract.js.map +1 -0
- package/dist/esm/serde/contracts/serializer.contract.js +1 -0
- package/dist/esm/serde/contracts/serializer.contract.js.map +1 -0
- package/dist/esm/serde/implementations/_module.js +1 -0
- package/dist/esm/serde/implementations/_module.js.map +1 -1
- package/dist/esm/serde/implementations/_shared/test-utilities/_module.js +1 -0
- package/dist/esm/serde/implementations/_shared/test-utilities/_module.js.map +1 -1
- package/dist/esm/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js +50 -0
- package/dist/esm/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js.map +1 -0
- package/dist/esm/serde/implementations/_shared/test-utilities/serde.test-suite.js +35 -60
- package/dist/esm/serde/implementations/_shared/test-utilities/serde.test-suite.js.map +1 -1
- package/dist/esm/serde/implementations/no-op-serde/_module.js +2 -0
- package/dist/esm/serde/implementations/no-op-serde/_module.js.map +1 -0
- package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js +12 -0
- package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js.map +1 -0
- package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js +5 -2
- package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js.map +1 -1
- package/dist/esm/utilities/contracts/_module.js +1 -0
- package/dist/esm/utilities/contracts/_module.js.map +1 -1
- package/dist/esm/utilities/contracts/buildable.contract.js +1 -0
- package/dist/esm/utilities/contracts/buildable.contract.js.map +1 -0
- package/dist/esm/utilities/errors.js +7 -7
- package/dist/esm/utilities/errors.js.map +1 -1
- package/dist/esm/utilities/functions.js +3 -0
- package/dist/esm/utilities/functions.js.map +1 -1
- package/dist/esm/utilities/time-span/time-span.js.map +1 -1
- package/dist/types/async/_module.d.ts +1 -1
- package/dist/types/async/backof-policies/_module.d.ts +1 -1
- package/dist/types/async/utilities/_module.d.ts +3 -0
- package/dist/types/async/utilities/lazy-promise/lazy-promise.d.ts +36 -46
- package/dist/types/cache/contracts/cache-factory.contract.d.ts +10 -23
- package/dist/types/cache/contracts/cache.contract.d.ts +365 -8
- package/dist/types/cache/contracts/cache.events.d.ts +156 -38
- package/dist/types/cache/implementations/_shared/_module.d.ts +1 -0
- package/dist/types/cache/implementations/_shared/cache-adapter.test-suite.d.ts +10 -8
- package/dist/types/cache/implementations/_shared/cache.test-suite.d.ts +15 -9
- package/dist/types/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.d.ts +4 -3
- package/dist/types/cache/implementations/adapters/libsql-cache-adapter/_module.d.ts +2 -1
- package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.d.ts +48 -0
- package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.d.ts +49 -37
- package/dist/types/cache/implementations/adapters/memory-cache-adapter/_module.d.ts +1 -0
- package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.d.ts +27 -0
- package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +41 -17
- package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/_module.d.ts +2 -1
- package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.d.ts +51 -0
- package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +59 -45
- package/dist/types/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +1 -1
- package/dist/types/cache/implementations/adapters/redis-cache-adapter/_module.d.ts +1 -0
- package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.d.ts +32 -0
- package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +41 -26
- package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/_module.d.ts +1 -0
- package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.d.ts +48 -0
- package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +49 -37
- package/dist/types/cache/implementations/derivables/_module.d.ts +3 -1
- package/dist/types/cache/implementations/derivables/cache-factory-settings.d.ts +77 -0
- package/dist/types/cache/implementations/derivables/cache-factory.d.ts +59 -39
- package/dist/types/cache/implementations/derivables/cache-settings.d.ts +68 -0
- package/dist/types/cache/implementations/derivables/cache.d.ts +65 -36
- package/dist/types/collection/contracts/async-collection.contract.d.ts +1247 -666
- package/dist/types/collection/contracts/collection.contract.d.ts +1195 -638
- package/dist/types/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.d.ts +1 -1
- package/dist/types/collection/implementations/async-iterable-collection/async-iterable-collection.d.ts +190 -4
- package/dist/types/collection/implementations/iterable-collection/iterable-collection.d.ts +138 -1
- package/dist/types/collection/implementations/list-collection/list-collection.d.ts +138 -1
- package/dist/types/event-bus/contracts/_module.d.ts +2 -2
- package/dist/types/event-bus/contracts/_shared.d.ts +11 -0
- package/dist/types/event-bus/contracts/event-bus-adapter.contract.d.ts +4 -6
- package/dist/types/event-bus/contracts/event-bus-factory.contract.d.ts +37 -31
- package/dist/types/event-bus/contracts/event-bus.contract.d.ts +24 -32
- package/dist/types/event-bus/implementations/_shared/event-bus-adapter.test-suite.d.ts +6 -3
- package/dist/types/event-bus/implementations/_shared/event-bus.test-suite.d.ts +10 -7
- package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/_module.d.ts +2 -1
- package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.d.ts +28 -0
- package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.d.ts +48 -22
- package/dist/types/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.d.ts +4 -4
- package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.d.ts +2 -1
- package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.d.ts +36 -0
- package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.d.ts +43 -31
- package/dist/types/event-bus/implementations/derivables/_module.d.ts +3 -1
- package/dist/types/event-bus/implementations/derivables/event-bus-factory-settings.d.ts +70 -0
- package/dist/types/event-bus/implementations/derivables/event-bus-factory.d.ts +39 -22
- package/dist/types/event-bus/implementations/derivables/event-bus-settings.d.ts +58 -0
- package/dist/types/event-bus/implementations/derivables/event-bus.d.ts +34 -22
- package/dist/types/serde/contracts/_module.d.ts +4 -0
- package/dist/types/serde/contracts/deserializer.contract.d.ts +13 -0
- package/dist/types/serde/contracts/flexible-serde.contract.d.ts +56 -0
- package/dist/types/serde/contracts/serde.contract.d.ts +5 -36
- package/dist/types/serde/contracts/serializable.contract.d.ts +10 -0
- package/dist/types/serde/contracts/serializer.contract.d.ts +10 -0
- package/dist/types/serde/implementations/_module.d.ts +1 -0
- package/dist/types/serde/implementations/_shared/test-utilities/_module.d.ts +1 -0
- package/dist/types/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.d.ts +17 -0
- package/dist/types/serde/implementations/_shared/test-utilities/serde.test-suite.d.ts +2 -3
- package/dist/types/serde/implementations/no-op-serde/_module.d.ts +1 -0
- package/dist/types/serde/implementations/no-op-serde/no-op-serde.d.ts +13 -0
- package/dist/types/serde/implementations/super-json-serde/super-json-serde.d.ts +1 -1
- package/dist/types/utilities/contracts/_module.d.ts +1 -0
- package/dist/types/utilities/contracts/buildable.contract.d.ts +9 -0
- package/dist/types/utilities/errors.d.ts +3 -3
- package/dist/types/utilities/functions.d.ts +4 -0
- package/dist/types/utilities/time-span/time-span.d.ts +2 -2
- package/dist/types/utilities/types.d.ts +0 -1
- package/package.json +1 -1
|
@@ -1,43 +1,161 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module Cache
|
|
3
3
|
*/
|
|
4
|
+
import { BaseEvent } from "../../event-bus/contracts/_module";
|
|
5
|
+
import type { IFlexibleSerde } from "../../serde/contracts/_module";
|
|
4
6
|
import type { TimeSpan } from "../../utilities/_module";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
7
|
+
/**
|
|
8
|
+
* @group Events
|
|
9
|
+
*/
|
|
10
|
+
export type KeyFoundCacheEventFields<TType> = {
|
|
11
|
+
group: string;
|
|
12
|
+
key: string;
|
|
13
|
+
value: TType;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* @group Events
|
|
17
|
+
*/
|
|
18
|
+
export declare class KeyFoundCacheEvent<TType = unknown> extends BaseEvent<KeyFoundCacheEventFields<TType>> {
|
|
19
|
+
group: string;
|
|
20
|
+
key: string;
|
|
21
|
+
value: TType;
|
|
22
|
+
static deserialize<TType>(serializedEvent: KeyFoundCacheEventFields<TType>): KeyFoundCacheEvent<TType>;
|
|
23
|
+
constructor(fields: KeyFoundCacheEventFields<TType>);
|
|
24
|
+
serialize(): KeyFoundCacheEventFields<TType>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* @group Events
|
|
28
|
+
*/
|
|
29
|
+
export type KeyNotFoundCacheEventFields = {
|
|
30
|
+
group: string;
|
|
31
|
+
key: string;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* @group Events
|
|
35
|
+
*/
|
|
36
|
+
export declare class KeyNotFoundCacheEvent extends BaseEvent<KeyNotFoundCacheEventFields> {
|
|
37
|
+
group: string;
|
|
38
|
+
key: string;
|
|
39
|
+
static deserialize(serializedEvent: KeyNotFoundCacheEventFields): KeyNotFoundCacheEvent;
|
|
40
|
+
constructor(fields: KeyNotFoundCacheEventFields);
|
|
41
|
+
serialize(): KeyNotFoundCacheEventFields;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* @group Events
|
|
45
|
+
*/
|
|
46
|
+
export type KeyAddedCacheEventFields<TType = unknown> = {
|
|
47
|
+
group: string;
|
|
48
|
+
key: string;
|
|
49
|
+
value: TType;
|
|
50
|
+
ttl: TimeSpan | null;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* @group Events
|
|
54
|
+
*/
|
|
55
|
+
export declare class KeyAddedCacheEvent<TType = unknown> extends BaseEvent<KeyAddedCacheEventFields<TType>> {
|
|
56
|
+
group: string;
|
|
57
|
+
key: string;
|
|
58
|
+
value: TType;
|
|
59
|
+
ttl: TimeSpan | null;
|
|
60
|
+
static deserialize<TType>(serializedEvent: KeyAddedCacheEventFields<TType>): KeyAddedCacheEvent<TType>;
|
|
61
|
+
constructor(fields: KeyAddedCacheEventFields<TType>);
|
|
62
|
+
serialize(): KeyAddedCacheEventFields<TType>;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* @group Events
|
|
66
|
+
*/
|
|
67
|
+
export type KeyUpdatedCacheEventFields<TType = unknown> = {
|
|
68
|
+
group: string;
|
|
69
|
+
key: string;
|
|
70
|
+
value: TType;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* @group Events
|
|
74
|
+
*/
|
|
75
|
+
export declare class KeyUpdatedCacheEvent<TType = unknown> extends BaseEvent<KeyUpdatedCacheEventFields<TType>> {
|
|
76
|
+
group: string;
|
|
77
|
+
key: string;
|
|
78
|
+
value: TType;
|
|
79
|
+
static deserialize<TType>(serializedEvent: KeyUpdatedCacheEventFields<TType>): KeyUpdatedCacheEvent<TType>;
|
|
80
|
+
constructor(fields: KeyUpdatedCacheEventFields<TType>);
|
|
81
|
+
serialize(): KeyUpdatedCacheEventFields<TType>;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* @group Events
|
|
85
|
+
*/
|
|
86
|
+
export type KeyRemovedCacheEventFields = {
|
|
87
|
+
group: string;
|
|
88
|
+
key: string;
|
|
43
89
|
};
|
|
90
|
+
/**
|
|
91
|
+
* @group Events
|
|
92
|
+
*/
|
|
93
|
+
export declare class KeyRemovedCacheEvent extends BaseEvent<KeyRemovedCacheEventFields> {
|
|
94
|
+
group: string;
|
|
95
|
+
key: string;
|
|
96
|
+
static deserialize(serializedEvent: KeyRemovedCacheEventFields): KeyRemovedCacheEvent;
|
|
97
|
+
constructor(fields: KeyRemovedCacheEventFields);
|
|
98
|
+
serialize(): KeyRemovedCacheEventFields;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* @group Events
|
|
102
|
+
*/
|
|
103
|
+
export type KeyIncrementedCacheEventFields = {
|
|
104
|
+
group: string;
|
|
105
|
+
key: string;
|
|
106
|
+
value: number;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* @group Events
|
|
110
|
+
*/
|
|
111
|
+
export declare class KeyIncrementedCacheEvent extends BaseEvent<KeyIncrementedCacheEventFields> {
|
|
112
|
+
group: string;
|
|
113
|
+
key: string;
|
|
114
|
+
value: number;
|
|
115
|
+
static deserialize(serializedEvent: KeyIncrementedCacheEventFields): KeyIncrementedCacheEvent;
|
|
116
|
+
constructor(fields: KeyIncrementedCacheEventFields);
|
|
117
|
+
serialize(): KeyIncrementedCacheEventFields;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* @group Events
|
|
121
|
+
*/
|
|
122
|
+
export type KeyDecrementedCacheEventFields = {
|
|
123
|
+
group: string;
|
|
124
|
+
key: string;
|
|
125
|
+
value: number;
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* @group Events
|
|
129
|
+
*/
|
|
130
|
+
export declare class KeyDecrementedCacheEvent extends BaseEvent<KeyDecrementedCacheEventFields> {
|
|
131
|
+
group: string;
|
|
132
|
+
key: string;
|
|
133
|
+
value: number;
|
|
134
|
+
static deserialize(serializedEvent: KeyDecrementedCacheEventFields): KeyDecrementedCacheEvent;
|
|
135
|
+
constructor(fields: KeyDecrementedCacheEventFields);
|
|
136
|
+
serialize(): KeyDecrementedCacheEventFields;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* @group Events
|
|
140
|
+
*/
|
|
141
|
+
export type KeysClearedCacheEventFields = {
|
|
142
|
+
group: string;
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* @group Events
|
|
146
|
+
*/
|
|
147
|
+
export declare class KeysClearedCacheEvent extends BaseEvent<KeysClearedCacheEventFields> {
|
|
148
|
+
group: string;
|
|
149
|
+
static deserialize(serializedEvent: KeysClearedCacheEventFields): KeysClearedCacheEvent;
|
|
150
|
+
constructor(fields: KeysClearedCacheEventFields);
|
|
151
|
+
serialize(): KeysClearedCacheEventFields;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* @group Events
|
|
155
|
+
*/
|
|
156
|
+
export type CacheEvents<TType = unknown> = KeyFoundCacheEvent<TType> | KeyNotFoundCacheEvent | KeyAddedCacheEvent<TType> | KeyUpdatedCacheEvent<TType> | KeyRemovedCacheEvent | KeyIncrementedCacheEvent | KeyDecrementedCacheEvent | KeysClearedCacheEvent;
|
|
157
|
+
/**
|
|
158
|
+
* The <i>registerCacheEvents</i> function is used to register all cache events with a <i>{@link IFlexibleSerde}</i>.
|
|
159
|
+
* @group Events
|
|
160
|
+
*/
|
|
161
|
+
export declare function registerCacheEvents<TSerializedValue>(serde: IFlexibleSerde<TSerializedValue>): void;
|
|
@@ -25,27 +25,29 @@ export type CacheAdapterTestSuiteSettings = {
|
|
|
25
25
|
* import { RedisContainer, type StartedRedisContainer } from "@testcontainers/redis";
|
|
26
26
|
* import { SuperJsonSerde, TimeSpan, RedisCacheAdapter, cacheAdapterTestSuite } from "@daiso-tech/core";
|
|
27
27
|
*
|
|
28
|
-
* const
|
|
28
|
+
* const TIMEOUT = TimeSpan.fromMinutes(2);
|
|
29
29
|
* describe("class: RedisCacheAdapter", () => {
|
|
30
|
-
* let
|
|
30
|
+
* let database: Redis;
|
|
31
31
|
* let startedContainer: StartedRedisContainer;
|
|
32
32
|
* const serde = new SuperJsonSerde();
|
|
33
33
|
* beforeEach(async () => {
|
|
34
34
|
* startedContainer = await new RedisContainer("redis:7.4.2").start();
|
|
35
|
-
*
|
|
36
|
-
* },
|
|
35
|
+
* database = new Redis(startedContainer.getConnectionUrl());
|
|
36
|
+
* }, TIMEOUT.toMilliseconds());
|
|
37
37
|
* afterEach(async () => {
|
|
38
|
-
* await
|
|
38
|
+
* await database.quit();
|
|
39
39
|
* await startedContainer.stop();
|
|
40
|
-
* },
|
|
40
|
+
* }, TIMEOUT.toMilliseconds());
|
|
41
41
|
* cacheAdapterTestSuite({
|
|
42
42
|
* createAdapterA: () =>
|
|
43
|
-
* new RedisCacheAdapter(
|
|
43
|
+
* new RedisCacheAdapter({
|
|
44
|
+
* database,
|
|
44
45
|
* serde,
|
|
45
46
|
* rootGroup: "@a"
|
|
46
47
|
* }),
|
|
47
48
|
* createAdapterB: () =>
|
|
48
|
-
* new RedisCacheAdapter(
|
|
49
|
+
* new RedisCacheAdapter({
|
|
50
|
+
* database,
|
|
49
51
|
* serde,
|
|
50
52
|
* rootGroup: "@b"
|
|
51
53
|
* }),
|
|
@@ -25,24 +25,29 @@ export type CacheTestSuiteSettings = {
|
|
|
25
25
|
* import { RedisContainer, type StartedRedisContainer } from "@testcontainers/redis";
|
|
26
26
|
* import { SuperJsonSerde, TimeSpan, RedisCacheAdapter, cacheTestSuite, MemoryEventBusAdapter } from "@daiso-tech/core";
|
|
27
27
|
*
|
|
28
|
-
* const
|
|
28
|
+
* const TIMEOUT = TimeSpan.fromMinutes(2);
|
|
29
29
|
* describe("class: Cache", () => {
|
|
30
|
-
* let
|
|
30
|
+
* let database: Redis;
|
|
31
31
|
* let startedContainer: StartedRedisContainer;
|
|
32
|
-
* const eventBus = new EventBus(
|
|
32
|
+
* const eventBus = new EventBus({
|
|
33
|
+
* adapter: new MemoryEventBusAdapter({
|
|
34
|
+
* rootGroup: "@global"
|
|
35
|
+
* })
|
|
36
|
+
* }):
|
|
33
37
|
* const serde = new SuperJsonSerde();
|
|
34
38
|
* beforeEach(async () => {
|
|
35
39
|
* startedContainer = await new RedisContainer("redis:7.4.2").start();
|
|
36
|
-
*
|
|
37
|
-
* },
|
|
40
|
+
* database = new Redis(startedContainer.getConnectionUrl());
|
|
41
|
+
* }, TIMEOUT.toMilliseconds());
|
|
38
42
|
* afterEach(async () => {
|
|
39
|
-
* await
|
|
43
|
+
* await database.quit();
|
|
40
44
|
* await startedContainer.stop();
|
|
41
|
-
* },
|
|
45
|
+
* }, TIMEOUT.toMilliseconds());
|
|
42
46
|
* cacheTestSuite({
|
|
43
47
|
* createCacheA: () =>
|
|
44
48
|
* new Cache(
|
|
45
|
-
* new RedisCacheAdapter(
|
|
49
|
+
* new RedisCacheAdapter({
|
|
50
|
+
* database,
|
|
46
51
|
* serde,
|
|
47
52
|
* }),
|
|
48
53
|
* {
|
|
@@ -52,7 +57,8 @@ export type CacheTestSuiteSettings = {
|
|
|
52
57
|
* ),
|
|
53
58
|
* createCacheB: () =>
|
|
54
59
|
* new Cache(
|
|
55
|
-
* new RedisCacheAdapter(
|
|
60
|
+
* new RedisCacheAdapter({
|
|
61
|
+
* database,
|
|
56
62
|
* serde,
|
|
57
63
|
* }),
|
|
58
64
|
* {
|
|
@@ -25,6 +25,7 @@ type KyselySqliteTables = {
|
|
|
25
25
|
* @internal
|
|
26
26
|
*/
|
|
27
27
|
type KyselySqliteSettings = {
|
|
28
|
+
db: Kysely<KyselySqliteTables>;
|
|
28
29
|
serde: ISerde<string>;
|
|
29
30
|
enableTransactions: boolean;
|
|
30
31
|
expiredKeysRemovalInterval?: TimeSpan;
|
|
@@ -34,15 +35,15 @@ type KyselySqliteSettings = {
|
|
|
34
35
|
/**
|
|
35
36
|
* @internal
|
|
36
37
|
*/
|
|
37
|
-
export declare class KyselySqliteCacheAdapter<TType> implements ICacheAdapter<TType>, IInitizable, IDeinitizable {
|
|
38
|
-
private readonly db;
|
|
38
|
+
export declare class KyselySqliteCacheAdapter<TType = unknown> implements ICacheAdapter<TType>, IInitizable, IDeinitizable {
|
|
39
39
|
private readonly group;
|
|
40
40
|
private readonly serde;
|
|
41
41
|
private readonly enableTransactions;
|
|
42
42
|
private readonly expiredKeysRemovalInterval;
|
|
43
43
|
private readonly shouldRemoveExpiredKeys;
|
|
44
44
|
private timeoutId;
|
|
45
|
-
|
|
45
|
+
private readonly db;
|
|
46
|
+
constructor(settings: KyselySqliteSettings);
|
|
46
47
|
getGroup(): string;
|
|
47
48
|
withGroup(group: OneOrMore<string>): ICacheAdapter<TType>;
|
|
48
49
|
private withTransaction;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export * from "../../../../cache/implementations/adapters/
|
|
1
|
+
export * from "../../../../cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings";
|
|
2
|
+
export * from "../../../../cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter";
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Cache
|
|
3
|
+
*/
|
|
4
|
+
import type { ISerde } from "../../../../serde/contracts/_module";
|
|
5
|
+
import type { TimeSpan, OneOrMore, IBuildable } from "../../../../utilities/_module";
|
|
6
|
+
import type { Client } from "@libsql/client";
|
|
7
|
+
/**
|
|
8
|
+
* @group Adapters
|
|
9
|
+
*/
|
|
10
|
+
export type LibsqlCacheAdapterSettings = {
|
|
11
|
+
database: Client;
|
|
12
|
+
tableName?: string;
|
|
13
|
+
serde: ISerde<string>;
|
|
14
|
+
enableTransactions?: boolean;
|
|
15
|
+
expiredKeysRemovalInterval?: TimeSpan;
|
|
16
|
+
shouldRemoveExpiredKeys?: boolean;
|
|
17
|
+
rootGroup: OneOrMore<string>;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* The <i>LibsqlCacheAdapterSettingsBuilder</i> is an immutable builder class, meaning that each method invocation creates a new instance.
|
|
21
|
+
* @group Adapters
|
|
22
|
+
*/
|
|
23
|
+
export declare class LibsqlCacheAdapterSettingsBuilder<TSettings extends Partial<LibsqlCacheAdapterSettings>> implements IBuildable<LibsqlCacheAdapterSettings> {
|
|
24
|
+
private readonly settings;
|
|
25
|
+
constructor(settings?: TSettings);
|
|
26
|
+
setDatabase(database: Client): LibsqlCacheAdapterSettingsBuilder<TSettings & {
|
|
27
|
+
database: Client;
|
|
28
|
+
}>;
|
|
29
|
+
setTableName(name: string): LibsqlCacheAdapterSettingsBuilder<TSettings & {
|
|
30
|
+
tableName: string;
|
|
31
|
+
}>;
|
|
32
|
+
setSerde(serde: ISerde<string>): LibsqlCacheAdapterSettingsBuilder<TSettings & {
|
|
33
|
+
serde: ISerde<string>;
|
|
34
|
+
}>;
|
|
35
|
+
setEnableTransactions(enable: boolean): LibsqlCacheAdapterSettingsBuilder<TSettings & {
|
|
36
|
+
enableTransactions: boolean;
|
|
37
|
+
}>;
|
|
38
|
+
setExpiredKeysRemovalInterval(interval: TimeSpan): LibsqlCacheAdapterSettingsBuilder<TSettings & {
|
|
39
|
+
expiredKeysRemovalInterval: TimeSpan;
|
|
40
|
+
}>;
|
|
41
|
+
setShouldRemoveExpiredKeys(shouldRemove: boolean): LibsqlCacheAdapterSettingsBuilder<TSettings & {
|
|
42
|
+
shouldRemoveExpiredKeys: boolean;
|
|
43
|
+
}>;
|
|
44
|
+
setRootGroup(group: OneOrMore<string>): LibsqlCacheAdapterSettingsBuilder<TSettings & {
|
|
45
|
+
rootGroup: OneOrMore<string>;
|
|
46
|
+
}>;
|
|
47
|
+
build(this: LibsqlCacheAdapterSettingsBuilder<LibsqlCacheAdapterSettings>): LibsqlCacheAdapterSettings;
|
|
48
|
+
}
|
package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.d.ts
CHANGED
|
@@ -2,52 +2,64 @@
|
|
|
2
2
|
* @module Cache
|
|
3
3
|
*/
|
|
4
4
|
import { type ICacheAdapter } from "../../../../cache/contracts/cache-adapter.contract";
|
|
5
|
-
import type { ISerde } from "../../../../serde/contracts/_module";
|
|
6
5
|
import type { TimeSpan, IDeinitizable, IInitizable, OneOrMore } from "../../../../utilities/_module";
|
|
7
|
-
import type {
|
|
6
|
+
import type { LibsqlCacheAdapterSettings } from "../../../../cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings";
|
|
7
|
+
import { LibsqlCacheAdapterSettingsBuilder } from "../../../../cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings";
|
|
8
8
|
/**
|
|
9
|
+
* To utilize the <i>LibsqlCacheAdapter</i>, you must install the <i>"@libsql/client"</i> package and supply a <i>{@link ISerde | ISerde<string> }</i>, such as <i>{@link SuperJsonSerde}</i>.
|
|
9
10
|
* @group Adapters
|
|
10
11
|
*/
|
|
11
|
-
export
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
* const cacheAdapter = new LibsqlCacheAdapter(client, {
|
|
30
|
-
* serde,
|
|
31
|
-
* rootGroup: "@global"
|
|
32
|
-
* });
|
|
33
|
-
*
|
|
34
|
-
* (async () => {
|
|
35
|
-
* // You only need to call it once before using the adapter.
|
|
36
|
-
* await cacheAdapter.init();
|
|
37
|
-
* await cacheAdapter.add("a", 1);
|
|
38
|
-
*
|
|
39
|
-
* // Will remove the cache
|
|
40
|
-
* await cacheAdapter.deInit();
|
|
41
|
-
* })();
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
|
-
export declare class LibsqlCacheAdapter<TType> implements ICacheAdapter<TType>, IInitizable, IDeinitizable {
|
|
12
|
+
export declare class LibsqlCacheAdapter<TType = unknown> implements ICacheAdapter<TType>, IInitizable, IDeinitizable {
|
|
13
|
+
/**
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { LibsqlCacheAdapter, SuperJsonSerde } from "@daiso-tech/core";
|
|
17
|
+
* import { createClient } from "@libsql/client";
|
|
18
|
+
*
|
|
19
|
+
* const cacheAdapter = new LibsqlCacheAdapter(
|
|
20
|
+
* LibsqlCacheAdapter
|
|
21
|
+
* .settings()
|
|
22
|
+
* .setDatabase(createClient({ url: "file:local.db" }))
|
|
23
|
+
* .setSerde(new SuperJsonSerde())
|
|
24
|
+
* .setRootGroup("@global")
|
|
25
|
+
* .build()
|
|
26
|
+
* );
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
static settings<TSettings extends Partial<LibsqlCacheAdapterSettings>>(): LibsqlCacheAdapterSettingsBuilder<TSettings>;
|
|
45
30
|
private readonly cacheAdapter;
|
|
46
|
-
|
|
31
|
+
/***
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* import { LibsqlCacheAdapter, SuperJsonSerde } from "@daiso-tech/core";
|
|
35
|
+
* import { createClient } from "@libsql/client";
|
|
36
|
+
*
|
|
37
|
+
* const database = createClient({ url: "file:local.db" });
|
|
38
|
+
* const serde = new SuperJsonSerde();
|
|
39
|
+
* const cacheAdapter = new LibsqlCacheAdapter({
|
|
40
|
+
* database,
|
|
41
|
+
* serde,
|
|
42
|
+
* rootGroup: "@global"
|
|
43
|
+
* });
|
|
44
|
+
*
|
|
45
|
+
* (async () => {
|
|
46
|
+
* await cacheAdapter.init();
|
|
47
|
+
* await cacheAdapter.add("a", 1);
|
|
48
|
+
* await cacheAdapter.deInit();
|
|
49
|
+
* })();
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
constructor(settings: LibsqlCacheAdapterSettings);
|
|
47
53
|
getGroup(): string;
|
|
48
54
|
withGroup(group: OneOrMore<string>): ICacheAdapter<TType>;
|
|
49
55
|
removeExpiredKeys(): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Removes the table where the cache values are stored and removes the table indexes.
|
|
58
|
+
*/
|
|
50
59
|
deInit(): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Creates the table where the cache values are stored and it's related indexes.
|
|
62
|
+
*/
|
|
51
63
|
init(): Promise<void>;
|
|
52
64
|
exists(key: string): Promise<boolean>;
|
|
53
65
|
get(key: string): Promise<TType | null>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Cache
|
|
3
|
+
*/
|
|
4
|
+
import type { IBuildable } from "../../../../utilities/_module";
|
|
5
|
+
import { type OneOrMore } from "../../../../utilities/_module";
|
|
6
|
+
/**
|
|
7
|
+
* @group Adapters
|
|
8
|
+
*/
|
|
9
|
+
export type MemoryCacheAdapterSettings = {
|
|
10
|
+
rootGroup: OneOrMore<string>;
|
|
11
|
+
map?: Map<string, unknown>;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* The <i>MemoryCacheAdapterSettingsBuilder</i> is an immutable builder class, meaning that each method invocation creates a new instance.
|
|
15
|
+
* @group Adapters
|
|
16
|
+
*/
|
|
17
|
+
export declare class MemoryCacheAdapterSettingsBuilder<TSettings extends Partial<MemoryCacheAdapterSettings>> implements IBuildable<MemoryCacheAdapterSettings> {
|
|
18
|
+
private readonly settings;
|
|
19
|
+
constructor(settings?: TSettings);
|
|
20
|
+
setMap(map: Map<string, unknown>): MemoryCacheAdapterSettingsBuilder<TSettings & {
|
|
21
|
+
map: Map<string, unknown>;
|
|
22
|
+
}>;
|
|
23
|
+
setRootGroup(group: OneOrMore<string>): MemoryCacheAdapterSettingsBuilder<TSettings & {
|
|
24
|
+
rootGroup: OneOrMore<string>;
|
|
25
|
+
}>;
|
|
26
|
+
build(this: MemoryCacheAdapterSettingsBuilder<MemoryCacheAdapterSettings>): MemoryCacheAdapterSettings;
|
|
27
|
+
}
|
package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts
CHANGED
|
@@ -3,29 +3,53 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { type ICacheAdapter } from "../../../../cache/contracts/cache-adapter.contract";
|
|
5
5
|
import { type OneOrMore, type TimeSpan } from "../../../../utilities/_module";
|
|
6
|
+
import type { MemoryCacheAdapterSettings } from "../../../../cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings";
|
|
7
|
+
import { MemoryCacheAdapterSettingsBuilder } from "../../../../cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings";
|
|
6
8
|
/**
|
|
7
9
|
* To utilize the <i>MemoryCacheAdapter</i>, you must create instance of it.
|
|
8
10
|
* @group Adapters
|
|
9
|
-
* @example
|
|
10
|
-
* ```ts
|
|
11
|
-
* import { MemoryCacheAdapter } from "@daiso-tech/core";
|
|
12
|
-
*
|
|
13
|
-
* const cacheAdapter = new MemoryCacheAdapter(client);
|
|
14
|
-
* ```
|
|
15
|
-
* You can also provide an <i>Map</i>.
|
|
16
|
-
* @example
|
|
17
|
-
* ```ts
|
|
18
|
-
* import { MemoryCacheAdapter } from "@daiso-tech/core";
|
|
19
|
-
*
|
|
20
|
-
* const map = new Map<any, any>();
|
|
21
|
-
* const cacheAdapter = new MemoryCacheAdapter("@cache", map);
|
|
22
|
-
* ```
|
|
23
11
|
*/
|
|
24
|
-
export declare class MemoryCacheAdapter<TType> implements ICacheAdapter<TType> {
|
|
25
|
-
|
|
12
|
+
export declare class MemoryCacheAdapter<TType = unknown> implements ICacheAdapter<TType> {
|
|
13
|
+
/**
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { MemoryCacheAdapter, SuperJsonSerde } from "@daiso-tech/core";
|
|
17
|
+
*
|
|
18
|
+
* const cacheAdapter = new MemoryCacheAdapter(
|
|
19
|
+
* MemoryCacheAdapter
|
|
20
|
+
* .settings()
|
|
21
|
+
* .setMap(new Map())
|
|
22
|
+
* .setRootGroup("@global")
|
|
23
|
+
* .build()
|
|
24
|
+
* );
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
static settings<TSettings extends Partial<MemoryCacheAdapterSettings>>(): MemoryCacheAdapterSettingsBuilder<TSettings>;
|
|
26
28
|
private readonly group;
|
|
27
29
|
private readonly timeoutMap;
|
|
28
|
-
|
|
30
|
+
private readonly map;
|
|
31
|
+
/**
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* import { MemoryCacheAdapter } from "@daiso-tech/core";
|
|
35
|
+
*
|
|
36
|
+
* const cacheAdapter = new MemoryCacheAdapter({
|
|
37
|
+
* rootGroup: "@cache"
|
|
38
|
+
* });
|
|
39
|
+
* ```
|
|
40
|
+
* You can also provide an <i>Map</i>.
|
|
41
|
+
* @example
|
|
42
|
+
* ```ts
|
|
43
|
+
* import { MemoryCacheAdapter } from "@daiso-tech/core";
|
|
44
|
+
*
|
|
45
|
+
* const map = new Map<any, any>();
|
|
46
|
+
* const cacheAdapter = new MemoryCacheAdapter({
|
|
47
|
+
* rootGroup: "@cache",
|
|
48
|
+
* map
|
|
49
|
+
* });
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
constructor(settings: MemoryCacheAdapterSettings);
|
|
29
53
|
private getGroupName;
|
|
30
54
|
private withPrefix;
|
|
31
55
|
exists(key: string): Promise<boolean>;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export * from "../../../../cache/implementations/adapters/
|
|
1
|
+
export * from "../../../../cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings";
|
|
2
|
+
export * from "../../../../cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter";
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Cache
|
|
3
|
+
*/
|
|
4
|
+
import type { IBuildable } from "../../../../utilities/_module";
|
|
5
|
+
import { type OneOrMore } from "../../../../utilities/_module";
|
|
6
|
+
import type { CollectionOptions, Db, ObjectId } from "mongodb";
|
|
7
|
+
import type { ISerde } from "../../../../serde/contracts/_module";
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export type MongodbCacheDocument = {
|
|
12
|
+
_id: ObjectId;
|
|
13
|
+
key: string;
|
|
14
|
+
group: string;
|
|
15
|
+
value: number | string;
|
|
16
|
+
expiresAt: Date | null;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* @group Adapters
|
|
20
|
+
*/
|
|
21
|
+
export type MongodbCacheAdapterSettings = {
|
|
22
|
+
database: Db;
|
|
23
|
+
serde: ISerde<string>;
|
|
24
|
+
rootGroup: OneOrMore<string>;
|
|
25
|
+
collectionName?: string;
|
|
26
|
+
collectionSettings?: CollectionOptions;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* The <i>MongodbCacheAdapterSettingsBuilder</i> is an immutable builder class, meaning that each method invocation creates a new instance.
|
|
30
|
+
* @group Adapters
|
|
31
|
+
*/
|
|
32
|
+
export declare class MongodbCacheAdapterSettingsBuilder<TSettings extends Partial<MongodbCacheAdapterSettings>> implements IBuildable<MongodbCacheAdapterSettings> {
|
|
33
|
+
private readonly settings;
|
|
34
|
+
constructor(settings?: TSettings);
|
|
35
|
+
setDatabase(database: Db): MongodbCacheAdapterSettingsBuilder<TSettings & {
|
|
36
|
+
database: Db;
|
|
37
|
+
}>;
|
|
38
|
+
setSerde(serde: ISerde<string>): MongodbCacheAdapterSettingsBuilder<TSettings & {
|
|
39
|
+
serde: ISerde<string>;
|
|
40
|
+
}>;
|
|
41
|
+
setRootGroup(group: OneOrMore<string>): MongodbCacheAdapterSettingsBuilder<TSettings & {
|
|
42
|
+
rootGroup: OneOrMore<string>;
|
|
43
|
+
}>;
|
|
44
|
+
setCollectionName(name: string): MongodbCacheAdapterSettingsBuilder<TSettings & {
|
|
45
|
+
collectionName: string;
|
|
46
|
+
}>;
|
|
47
|
+
setCollectionSettings(settings: CollectionOptions): MongodbCacheAdapterSettingsBuilder<TSettings & {
|
|
48
|
+
collectionSettings: CollectionOptions;
|
|
49
|
+
}>;
|
|
50
|
+
build(this: MongodbCacheAdapterSettingsBuilder<MongodbCacheAdapterSettings>): MongodbCacheAdapterSettings;
|
|
51
|
+
}
|