@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
package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts
CHANGED
|
@@ -2,61 +2,75 @@
|
|
|
2
2
|
* @module Cache
|
|
3
3
|
*/
|
|
4
4
|
import { type ICacheAdapter } from "../../../../cache/contracts/cache-adapter.contract";
|
|
5
|
+
import type { IDeinitizable } from "../../../../utilities/_module";
|
|
5
6
|
import { type TimeSpan, type IInitizable, type OneOrMore } from "../../../../utilities/_module";
|
|
6
|
-
import type {
|
|
7
|
-
import {
|
|
8
|
-
import type { ISerde } from "../../../../serde/contracts/_module";
|
|
7
|
+
import type { MongodbCacheAdapterSettings } from "../../../../cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings";
|
|
8
|
+
import { MongodbCacheAdapterSettingsBuilder } from "../../../../cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings";
|
|
9
9
|
/**
|
|
10
|
+
* To utilize the <i>MongodbCacheAdapter</i>, you must install the <i>"mongodb"</i> package and supply a <i>{@link ISerde | ISerde<string> }</i>, such as <i>{@link SuperJsonSerde}</i>.
|
|
10
11
|
* @group Adapters
|
|
11
12
|
*/
|
|
12
|
-
export
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
*
|
|
34
|
-
* const client = new MongoClient("YOUR_MONGODB_CONNECTION_STRING");
|
|
35
|
-
* const database = client.db("database");
|
|
36
|
-
* const cacheCollection = database.collection("cache");
|
|
37
|
-
* const serde = new SuperJsonSerde();
|
|
38
|
-
* const cacheAdapter = new MongodbCacheAdapter(cacheCollection, {
|
|
39
|
-
* serde,
|
|
40
|
-
* rootGroup: "@global"
|
|
41
|
-
* });
|
|
42
|
-
*
|
|
43
|
-
* (async () => {
|
|
44
|
-
* // You only need to call it once before using the adapter.
|
|
45
|
-
* await cacheAdapter.init();
|
|
46
|
-
* await cacheAdapter.add("a", 1);
|
|
47
|
-
* })();
|
|
48
|
-
* ```
|
|
49
|
-
*/
|
|
50
|
-
export declare class MongodbCacheAdapter<TType> implements ICacheAdapter<TType>, IInitizable {
|
|
51
|
-
private readonly collection;
|
|
13
|
+
export declare class MongodbCacheAdapter<TType = unknown> implements ICacheAdapter<TType>, IInitizable, IDeinitizable {
|
|
14
|
+
/**
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { MongodbCacheAdapter, SuperJsonSerde } from "@daiso-tech/core";
|
|
18
|
+
* import { MongoClient } from "mongodb";
|
|
19
|
+
*
|
|
20
|
+
* (async () => {
|
|
21
|
+
* const client = await MongoClient.connect("YOUR_MONGODB_CONNECTION_STRING");
|
|
22
|
+
* const cacheAdapter = new MongodbCacheAdapter(
|
|
23
|
+
* MongodbCacheAdapter
|
|
24
|
+
* .settings()
|
|
25
|
+
* .setDatabase(client.db("database"))
|
|
26
|
+
* .setSerde(new SuperJsonSerde())
|
|
27
|
+
* .setRootGroup("@global")
|
|
28
|
+
* .build()
|
|
29
|
+
* );
|
|
30
|
+
* })();
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
static settings<TSettings extends Partial<MongodbCacheAdapterSettings>>(): MongodbCacheAdapterSettingsBuilder<TSettings>;
|
|
52
34
|
private static isMongodbIncrementError;
|
|
53
35
|
private readonly mongodbSerde;
|
|
54
36
|
private readonly group;
|
|
55
|
-
private readonly
|
|
56
|
-
|
|
37
|
+
private readonly baseSerde;
|
|
38
|
+
private readonly database;
|
|
39
|
+
private readonly collection;
|
|
40
|
+
private readonly collectionName;
|
|
41
|
+
/**
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* import { MongodbCacheAdapter, SuperJsonSerde } from "@daiso-tech/core";
|
|
45
|
+
* import { MongoClient } from "mongodb";
|
|
46
|
+
*
|
|
47
|
+
* (async () => {
|
|
48
|
+
* const client = await MongoClient.connect("YOUR_MONGODB_CONNECTION_STRING");
|
|
49
|
+
* const database = client.db("database");
|
|
50
|
+
* const serde = new SuperJsonSerde();
|
|
51
|
+
* const cacheAdapter = new MongodbCacheAdapter({
|
|
52
|
+
* database,
|
|
53
|
+
* serde,
|
|
54
|
+
* rootGroup: "@global"
|
|
55
|
+
* });
|
|
56
|
+
*
|
|
57
|
+
* await cacheAdapter.init();
|
|
58
|
+
* await cacheAdapter.add("a", 1);
|
|
59
|
+
* await cacheAdapter.deInit();
|
|
60
|
+
* })();
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
constructor({ collectionName, collectionSettings, database, serde, rootGroup, }: MongodbCacheAdapterSettings);
|
|
57
64
|
getGroup(): string;
|
|
58
65
|
withGroup(group: OneOrMore<string>): ICacheAdapter<TType>;
|
|
66
|
+
/**
|
|
67
|
+
* Creates all related indexes.
|
|
68
|
+
*/
|
|
59
69
|
init(): Promise<void>;
|
|
70
|
+
/**
|
|
71
|
+
* Removes the collection where the cache values are stored and all it's related indexes.
|
|
72
|
+
*/
|
|
73
|
+
deInit(): Promise<void>;
|
|
60
74
|
exists(key: string): Promise<boolean>;
|
|
61
75
|
get(key: string): Promise<TType | null>;
|
|
62
76
|
add(key: string, value: TType, ttl: TimeSpan | null): Promise<boolean>;
|
package/dist/types/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type { OneOrMore, TimeSpan } from "../../../../utilities/_module";
|
|
|
7
7
|
* This <i>NoOpCacheAdapter</i> will do nothing and is used for easily mocking {@link ICacheAdapter} for testing.
|
|
8
8
|
* @group Adapters
|
|
9
9
|
*/
|
|
10
|
-
export declare class NoOpCacheAdapter<TType> implements ICacheAdapter<TType> {
|
|
10
|
+
export declare class NoOpCacheAdapter<TType = unknown> implements ICacheAdapter<TType> {
|
|
11
11
|
getGroup(): string;
|
|
12
12
|
withGroup(_group: OneOrMore<string>): ICacheAdapter<TType>;
|
|
13
13
|
exists(_key: string): Promise<boolean>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Cache
|
|
3
|
+
*/
|
|
4
|
+
import type { IBuildable, OneOrMore } from "../../../../utilities/_module";
|
|
5
|
+
import type { Redis } from "ioredis";
|
|
6
|
+
import type { ISerde } from "../../../../serde/contracts/_module";
|
|
7
|
+
/**
|
|
8
|
+
* @group Adapters
|
|
9
|
+
*/
|
|
10
|
+
export type RedisCacheAdapterSettings = {
|
|
11
|
+
database: Redis;
|
|
12
|
+
serde: ISerde<string>;
|
|
13
|
+
rootGroup: OneOrMore<string>;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* The <i>RedisCacheAdapterSettingsBuilder</i> is an immutable builder class, meaning that each method invocation creates a new instance.
|
|
17
|
+
* @group Adapters
|
|
18
|
+
*/
|
|
19
|
+
export declare class RedisCacheAdapterSettingsBuilder<TSettings extends Partial<RedisCacheAdapterSettings>> implements IBuildable<RedisCacheAdapterSettings> {
|
|
20
|
+
private readonly settings;
|
|
21
|
+
constructor(settings?: TSettings);
|
|
22
|
+
setDatabase(database: Redis): RedisCacheAdapterSettingsBuilder<TSettings & {
|
|
23
|
+
database: Redis;
|
|
24
|
+
}>;
|
|
25
|
+
setSerde(serde: ISerde<string>): RedisCacheAdapterSettingsBuilder<TSettings & {
|
|
26
|
+
serde: ISerde<string>;
|
|
27
|
+
}>;
|
|
28
|
+
setRootGroup(group: OneOrMore<string>): RedisCacheAdapterSettingsBuilder<TSettings & {
|
|
29
|
+
rootGroup: OneOrMore<string>;
|
|
30
|
+
}>;
|
|
31
|
+
build(this: RedisCacheAdapterSettingsBuilder<RedisCacheAdapterSettings>): RedisCacheAdapterSettings;
|
|
32
|
+
}
|
package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts
CHANGED
|
@@ -4,42 +4,57 @@
|
|
|
4
4
|
import { type ICacheAdapter } from "../../../../cache/contracts/cache-adapter.contract";
|
|
5
5
|
import type { OneOrMore } from "../../../../utilities/_module";
|
|
6
6
|
import { type TimeSpan } from "../../../../utilities/_module";
|
|
7
|
-
import { type
|
|
8
|
-
import type {
|
|
7
|
+
import { type Result } from "ioredis";
|
|
8
|
+
import type { RedisCacheAdapterSettings } from "../../../../cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings";
|
|
9
|
+
import { RedisCacheAdapterSettingsBuilder } from "../../../../cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings";
|
|
9
10
|
declare module "ioredis" {
|
|
10
11
|
interface RedisCommander<Context> {
|
|
11
12
|
daiso_cache_increment(key: string, number: string): Result<number, Context>;
|
|
12
13
|
}
|
|
13
14
|
}
|
|
14
15
|
/**
|
|
16
|
+
* To utilize the <i>RedisCacheAdapter</i>, you must install the <i>"ioredis"</i> package and supply a <i>{@link ISerde | ISerde<string> }</i>, such as <i>{@link SuperJsonSerde}</i>.
|
|
15
17
|
* @group Adapters
|
|
16
18
|
*/
|
|
17
|
-
export
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
export declare class RedisCacheAdapter<TType> implements ICacheAdapter<TType> {
|
|
38
|
-
private readonly client;
|
|
19
|
+
export declare class RedisCacheAdapter<TType = unknown> implements ICacheAdapter<TType> {
|
|
20
|
+
/**
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* import { RedisCacheAdapter, SuperJsonSerde } from "@daiso-tech/core";
|
|
24
|
+
* import Redis from "ioredis";
|
|
25
|
+
*
|
|
26
|
+
* const cacheAdapter = new RedisCacheAdapter(
|
|
27
|
+
* RedisCacheAdapter
|
|
28
|
+
* .settings()
|
|
29
|
+
* .setDatabase(new Redis("YOUR_REDIS_CONNECTION_STRING"))
|
|
30
|
+
* .setSerde(new SuperJsonSerde())
|
|
31
|
+
* .setRootGroup("@global")
|
|
32
|
+
* .build()
|
|
33
|
+
* );
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
static settings<TSettings extends Partial<RedisCacheAdapterSettings>>(): RedisCacheAdapterSettingsBuilder<TSettings>;
|
|
39
37
|
private static isRedisTypeError;
|
|
40
|
-
private readonly
|
|
38
|
+
private readonly baseSerde;
|
|
39
|
+
private readonly redisSerde;
|
|
41
40
|
private readonly group;
|
|
42
|
-
|
|
41
|
+
private readonly database;
|
|
42
|
+
/**
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* import { RedisCacheAdapter, SuperJsonSerde } from "@daiso-tech/core";
|
|
46
|
+
* import Redis from "ioredis";
|
|
47
|
+
*
|
|
48
|
+
* const database = new Redis("YOUR_REDIS_CONNECTION_STRING");
|
|
49
|
+
* const serde = new SuperJsonSerde();
|
|
50
|
+
* const cacheAdapter = new RedisCacheAdapter({
|
|
51
|
+
* database,
|
|
52
|
+
* serde,
|
|
53
|
+
* rootGroup: "@global"
|
|
54
|
+
* });
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
constructor({ database, serde, rootGroup }: RedisCacheAdapterSettings);
|
|
43
58
|
private getGroupName;
|
|
44
59
|
private withPrefix;
|
|
45
60
|
exists(key: string): Promise<boolean>;
|
|
@@ -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 SqliteDatabase } from "kysely";
|
|
7
|
+
/**
|
|
8
|
+
* @group Adapters
|
|
9
|
+
*/
|
|
10
|
+
export type SqliteCacheAdapterSettings = {
|
|
11
|
+
database: SqliteDatabase;
|
|
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>SqliteCacheAdapterSettingsBuilder</i> is an immutable builder class, meaning that each method invocation creates a new instance.
|
|
21
|
+
* @group Adapters
|
|
22
|
+
*/
|
|
23
|
+
export declare class SqliteCacheAdapterSettingsBuilder<TSettings extends Partial<SqliteCacheAdapterSettings>> implements IBuildable<SqliteCacheAdapterSettings> {
|
|
24
|
+
private readonly settings;
|
|
25
|
+
constructor(settings?: TSettings);
|
|
26
|
+
setDatabase(database: SqliteDatabase): SqliteCacheAdapterSettingsBuilder<TSettings & {
|
|
27
|
+
database: SqliteDatabase;
|
|
28
|
+
}>;
|
|
29
|
+
setTableName(name: string): SqliteCacheAdapterSettingsBuilder<TSettings & {
|
|
30
|
+
tableName: string;
|
|
31
|
+
}>;
|
|
32
|
+
setSerde(serde: ISerde<string>): SqliteCacheAdapterSettingsBuilder<TSettings & {
|
|
33
|
+
serde: ISerde<string>;
|
|
34
|
+
}>;
|
|
35
|
+
setEnableTransactions(enable: boolean): SqliteCacheAdapterSettingsBuilder<TSettings & {
|
|
36
|
+
enableTransactions: boolean;
|
|
37
|
+
}>;
|
|
38
|
+
setExpiredKeysRemovalInterval(interval: TimeSpan): SqliteCacheAdapterSettingsBuilder<TSettings & {
|
|
39
|
+
expiredKeysRemovalInterval: TimeSpan;
|
|
40
|
+
}>;
|
|
41
|
+
setShouldRemoveExpiredKeys(shouldRemove: boolean): SqliteCacheAdapterSettingsBuilder<TSettings & {
|
|
42
|
+
shouldRemoveExpiredKeys: boolean;
|
|
43
|
+
}>;
|
|
44
|
+
setRootGroup(group: OneOrMore<string>): SqliteCacheAdapterSettingsBuilder<TSettings & {
|
|
45
|
+
rootGroup: OneOrMore<string>;
|
|
46
|
+
}>;
|
|
47
|
+
build(this: SqliteCacheAdapterSettingsBuilder<SqliteCacheAdapterSettings>): SqliteCacheAdapterSettings;
|
|
48
|
+
}
|
package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-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, IInitizable, IDeinitizable, OneOrMore } from "../../../../utilities/_module";
|
|
7
|
-
import {
|
|
6
|
+
import type { SqliteCacheAdapterSettings } from "../../../../cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings";
|
|
7
|
+
import { SqliteCacheAdapterSettingsBuilder } from "../../../../cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings";
|
|
8
8
|
/**
|
|
9
|
+
* To utilize the <i>SqliteCacheAdapter</i>, you must install the <i>"better-sqlite3"</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 SqliteCacheAdapter(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 SqliteCacheAdapter<TType> implements ICacheAdapter<TType>, IInitizable, IDeinitizable {
|
|
12
|
+
export declare class SqliteCacheAdapter<TType = unknown> implements ICacheAdapter<TType>, IInitizable, IDeinitizable {
|
|
13
|
+
/**
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { SqliteCacheAdapter, SuperJsonSerde } from "@daiso-tech/core";
|
|
17
|
+
* import Sqlite from "better-sqlite3";
|
|
18
|
+
*
|
|
19
|
+
* const cacheAdapter = new SqliteCacheAdapter(
|
|
20
|
+
* SqliteCacheAdapter
|
|
21
|
+
* .settings()
|
|
22
|
+
* .setDatabase(new Sqlite("local.db"))
|
|
23
|
+
* .setSerde(new SuperJsonSerde())
|
|
24
|
+
* .setRootGroup("@global")
|
|
25
|
+
* .build()
|
|
26
|
+
* );
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
static settings<TSettings extends Partial<SqliteCacheAdapterSettings>>(): SqliteCacheAdapterSettingsBuilder<TSettings>;
|
|
45
30
|
private readonly cacheAdapter;
|
|
46
|
-
|
|
31
|
+
/**
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* import { SqliteCacheAdapter, SuperJsonSerde } from "@daiso-tech/core";
|
|
35
|
+
* import Sqlite from "better-sqlite3";
|
|
36
|
+
*
|
|
37
|
+
* const database = new Sqlite("local.db");
|
|
38
|
+
* const serde = new SuperJsonSerde();
|
|
39
|
+
* const cacheAdapter = new SqliteCacheAdapter({
|
|
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: SqliteCacheAdapterSettings);
|
|
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>;
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export * from "../../../cache/implementations/derivables/cache";
|
|
1
|
+
export * from "../../../cache/implementations/derivables/cache-factory-settings";
|
|
2
2
|
export * from "../../../cache/implementations/derivables/cache-factory";
|
|
3
|
+
export * from "../../../cache/implementations/derivables/cache-settings";
|
|
4
|
+
export * from "../../../cache/implementations/derivables/cache";
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Cache
|
|
3
|
+
*/
|
|
4
|
+
import type { IGroupableEventBus } from "../../../event-bus/contracts/_module";
|
|
5
|
+
import type { ICacheAdapter } from "../../../cache/contracts/_module";
|
|
6
|
+
import type { TimeSpan } from "../../../utilities/_module";
|
|
7
|
+
import type { BackoffPolicy, RetryPolicy } from "../../../async/_module";
|
|
8
|
+
/**
|
|
9
|
+
* @group Derivables
|
|
10
|
+
*/
|
|
11
|
+
export type CacheAdapters<TAdapters extends string> = Partial<Record<TAdapters, ICacheAdapter<any>>>;
|
|
12
|
+
/**
|
|
13
|
+
* @group Derivables
|
|
14
|
+
*/
|
|
15
|
+
export type CacheFactorySettings<TAdapters extends string = string> = {
|
|
16
|
+
adapters: CacheAdapters<TAdapters>;
|
|
17
|
+
defaultAdapter?: NoInfer<TAdapters>;
|
|
18
|
+
/**
|
|
19
|
+
* You can decide the default ttl value. If null is passed then no ttl will be used by default.
|
|
20
|
+
*/
|
|
21
|
+
defaultTtl?: TimeSpan;
|
|
22
|
+
/**
|
|
23
|
+
* In order to listen to events of <i>{@link Cache}</i> class you must pass in <i>{@link IGroupableEventBus}</i>.
|
|
24
|
+
*/
|
|
25
|
+
eventBus?: IGroupableEventBus<any>;
|
|
26
|
+
/**
|
|
27
|
+
* The default retry attempt to use in the returned <i>LazyPromise</i>.
|
|
28
|
+
*/
|
|
29
|
+
retryAttempts?: number | null;
|
|
30
|
+
/**
|
|
31
|
+
* The default backof policy to use in the returned <i>LazyPromise</i>.
|
|
32
|
+
*/
|
|
33
|
+
backoffPolicy?: BackoffPolicy | null;
|
|
34
|
+
/**
|
|
35
|
+
* The default retry policy to use in the returned <i>LazyPromise</i>.
|
|
36
|
+
*/
|
|
37
|
+
retryPolicy?: RetryPolicy | null;
|
|
38
|
+
/**
|
|
39
|
+
* The default timeout to use in the returned <i>LazyPromise</i>.
|
|
40
|
+
*/
|
|
41
|
+
timeout?: TimeSpan | null;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* The <i>CacheFactorySettingsBuilder</i> is an immutable builder class, meaning that each method invocation creates a new instance.
|
|
45
|
+
* @group Derivables
|
|
46
|
+
*/
|
|
47
|
+
export declare class CacheFactorySettingsBuilder<TSettings extends CacheFactorySettings> {
|
|
48
|
+
private readonly settings;
|
|
49
|
+
constructor(settings?: TSettings);
|
|
50
|
+
setEventBus(eventBus: IGroupableEventBus<any>): CacheFactorySettingsBuilder<TSettings & {
|
|
51
|
+
eventBus: IGroupableEventBus<any>;
|
|
52
|
+
}>;
|
|
53
|
+
setDefultTtl(time: TimeSpan): CacheFactorySettingsBuilder<TSettings & {
|
|
54
|
+
defaultTtl: TimeSpan;
|
|
55
|
+
}>;
|
|
56
|
+
setRetryAttempts(attempts: number | null): CacheFactorySettingsBuilder<TSettings & {
|
|
57
|
+
retryAttempts: number | null;
|
|
58
|
+
}>;
|
|
59
|
+
setBackoffPolicy(policy: BackoffPolicy | null): CacheFactorySettingsBuilder<TSettings & {
|
|
60
|
+
backoffPolicy: BackoffPolicy | null;
|
|
61
|
+
}>;
|
|
62
|
+
setRetryPolicy(policy: RetryPolicy | null): CacheFactorySettingsBuilder<TSettings & {
|
|
63
|
+
retryPolicy: RetryPolicy | null;
|
|
64
|
+
}>;
|
|
65
|
+
setTimeout(time: TimeSpan | null): CacheFactorySettingsBuilder<TSettings & {
|
|
66
|
+
timeout: TimeSpan | null;
|
|
67
|
+
}>;
|
|
68
|
+
setAdapter<TName extends string>(name: TName, adapter: ICacheAdapter<any>): CacheFactorySettingsBuilder<TSettings & {
|
|
69
|
+
adapters: {
|
|
70
|
+
readonly [x: string]: ICacheAdapter<any> | undefined;
|
|
71
|
+
};
|
|
72
|
+
}>;
|
|
73
|
+
setDefaultAdapter(adapter: string): CacheFactorySettingsBuilder<TSettings & {
|
|
74
|
+
defaultAdapter: string;
|
|
75
|
+
}>;
|
|
76
|
+
build(this: CacheFactorySettingsBuilder<CacheFactorySettings>): CacheFactorySettings;
|
|
77
|
+
}
|
|
@@ -1,50 +1,70 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module Cache
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
6
|
-
import
|
|
4
|
+
import type { ICacheFactory, IGroupableCache } from "../../../cache/contracts/_module";
|
|
5
|
+
import type { CacheFactorySettings } from "../../../cache/implementations/derivables/cache-factory-settings";
|
|
6
|
+
import { CacheFactorySettingsBuilder } from "../../../cache/implementations/derivables/cache-factory-settings";
|
|
7
7
|
/**
|
|
8
8
|
* @group Derivables
|
|
9
9
|
*/
|
|
10
|
-
export
|
|
11
|
-
/**
|
|
12
|
-
* @group Derivables
|
|
13
|
-
*/
|
|
14
|
-
export type CacheFactorySettings<TDrivers extends string = string> = {
|
|
15
|
-
drivers: CacheDrivers<TDrivers>;
|
|
16
|
-
defaultDriver?: NoInfer<TDrivers>;
|
|
10
|
+
export declare class CacheFactory<TAdapters extends string = string> implements ICacheFactory<TAdapters> {
|
|
17
11
|
/**
|
|
18
|
-
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { CacheFactory, SuperJsonSerde. MemoryCacheAdapter, RedisCacheAdapter, EventBus, MemoryEventBusAdapter } from "@daiso-tech/core";
|
|
15
|
+
* import Redis from "ioredis";
|
|
16
|
+
*
|
|
17
|
+
* const cacheFactory = new CacheFactory(
|
|
18
|
+
* CacheFactory
|
|
19
|
+
* .settings()
|
|
20
|
+
* .setEventBus(new EventBus(new MemoryEventBusAdapter({ rootGroup: "@global" })))
|
|
21
|
+
* .setAdapter("memory", new MemoryCacheAdapter({
|
|
22
|
+
* rootGroup: "@global"
|
|
23
|
+
* }))
|
|
24
|
+
* .setAdapter("redis", new RedisCacheAdapter({
|
|
25
|
+
* client: new Redis("YOUR_REDIS_CONNECTION"),
|
|
26
|
+
* serde: new SuperJsonSerde(),
|
|
27
|
+
* rootGroup: "@global"
|
|
28
|
+
* }))
|
|
29
|
+
* .setDefaultAdapter("memory")
|
|
30
|
+
* .build()
|
|
31
|
+
* );
|
|
32
|
+
* ```
|
|
19
33
|
*/
|
|
20
|
-
|
|
34
|
+
static settings<TAdapters extends string, TSettings extends CacheFactorySettings<TAdapters>>(): CacheFactorySettingsBuilder<TSettings>;
|
|
35
|
+
private readonly adapters;
|
|
36
|
+
private readonly defaultAdapter?;
|
|
37
|
+
private readonly eventBus?;
|
|
38
|
+
private readonly defaultTtl;
|
|
39
|
+
private readonly retryAttempts?;
|
|
40
|
+
private readonly backoffPolicy?;
|
|
41
|
+
private readonly retryPolicy?;
|
|
42
|
+
private readonly timeout?;
|
|
21
43
|
/**
|
|
22
|
-
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* import { CacheFactory, MemoryCacheAdapter, RedisCacheAdapter, EventBus, MemoryEventBusAdapter } from "@daiso-tech/core";
|
|
47
|
+
* import Redis from "ioredis"
|
|
48
|
+
*
|
|
49
|
+
* const eventBus = new EventBus({
|
|
50
|
+
* adapter: new MemoryEventBusAdapter({ rootGroup: "@global" })
|
|
51
|
+
* });
|
|
52
|
+
* const cacheFactory = new CacheFactory({
|
|
53
|
+
* adapters: {
|
|
54
|
+
* memory: new MemoryCacheAdapter({
|
|
55
|
+
* rootGroup: "@global"
|
|
56
|
+
* }),
|
|
57
|
+
* redis: new RedisCacheAdapter({
|
|
58
|
+
* client: new Redis("YOUR_REDIS_CONNECTION"),
|
|
59
|
+
* serde: new SuperJsonSerde(),
|
|
60
|
+
* rootGroup: "@global"
|
|
61
|
+
* }),
|
|
62
|
+
* },
|
|
63
|
+
* defaultAdapter: "memory",
|
|
64
|
+
* eventBus,
|
|
65
|
+
* });
|
|
66
|
+
* ```
|
|
23
67
|
*/
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* @group Derivables
|
|
28
|
-
* @example
|
|
29
|
-
* ```ts
|
|
30
|
-
* import { CacheFactory } from "@daiso-tech/core";
|
|
31
|
-
* import Redis from "ioredis"
|
|
32
|
-
*
|
|
33
|
-
* const cacheFactory = new CacheFactory({
|
|
34
|
-
* drivers: {
|
|
35
|
-
* memory: new MemoryCacheAdapter(),
|
|
36
|
-
* redis: new RedisCacheAdapter(new Redis()),
|
|
37
|
-
* },
|
|
38
|
-
* defaultDriver: "memory",
|
|
39
|
-
* });
|
|
40
|
-
* ```
|
|
41
|
-
*/
|
|
42
|
-
export declare class CacheFactory<TDrivers extends string = string, TType = unknown> implements ICacheFactory<TDrivers, TType> {
|
|
43
|
-
private readonly drivers;
|
|
44
|
-
private readonly defaultDriver?;
|
|
45
|
-
private readonly eventBus?;
|
|
46
|
-
private defaultTtl;
|
|
47
|
-
constructor(settings: CacheFactorySettings<TDrivers>);
|
|
48
|
-
use(driverName?: TDrivers | undefined): IGroupableCache<TType>;
|
|
49
|
-
withType<TOutput extends TType = TType>(): ICacheFactory<TDrivers, TOutput>;
|
|
68
|
+
constructor(settings: CacheFactorySettings<TAdapters>);
|
|
69
|
+
use<TType = unknown>(adapterName?: TAdapters | undefined): IGroupableCache<TType>;
|
|
50
70
|
}
|