@daiso-tech/core 0.21.0 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/_module.js +2 -0
- package/dist/cjs/_module.js.map +1 -1
- package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js +16 -9
- package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
- package/dist/cjs/cache/contracts/cache.events.js +13 -139
- package/dist/cjs/cache/contracts/cache.events.js.map +1 -1
- package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js +5 -24
- package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
- package/dist/cjs/cache/implementations/_shared/cache.test-suite.js +729 -21
- package/dist/cjs/cache/implementations/_shared/cache.test-suite.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +1 -21
- package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/_module.js +0 -1
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +0 -7
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/_module.js +0 -1
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +3 -11
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/_module.js +0 -1
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +6 -28
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +0 -3
- package/dist/cjs/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js +0 -1
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +5 -13
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js +0 -1
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +0 -7
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/derivables/cache/_module.js +0 -1
- package/dist/cjs/cache/implementations/derivables/cache/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/derivables/cache/cache.js +215 -103
- package/dist/cjs/cache/implementations/derivables/cache/cache.js.map +1 -1
- package/dist/cjs/cache/implementations/derivables/cache-factory/_module.js +0 -1
- package/dist/cjs/cache/implementations/derivables/cache-factory/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/derivables/cache-factory/cache-factory.js +0 -4
- package/dist/cjs/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
- package/dist/cjs/event-bus/contracts/_shared.js +3 -2
- package/dist/cjs/event-bus/contracts/_shared.js.map +1 -1
- package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +4 -15
- package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
- package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js +6 -27
- package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +0 -1
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -1
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +0 -4
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js +0 -1
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -1
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +0 -4
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
- package/dist/cjs/event-bus/implementations/derivables/event-bus/_module.js +0 -1
- package/dist/cjs/event-bus/implementations/derivables/event-bus/_module.js.map +1 -1
- package/dist/cjs/event-bus/implementations/derivables/event-bus/event-bus.js +0 -4
- package/dist/cjs/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/_module.js +0 -1
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/_module.js.map +1 -1
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js +0 -4
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +1 -1
- package/dist/cjs/lock/contracts/_module.js +24 -0
- package/dist/cjs/lock/contracts/_module.js.map +1 -0
- package/dist/cjs/lock/contracts/database-lock-adapter.contract.js +3 -0
- package/dist/cjs/lock/contracts/database-lock-adapter.contract.js.map +1 -0
- package/dist/cjs/lock/contracts/lock-adapter.contract.js +3 -0
- package/dist/cjs/lock/contracts/lock-adapter.contract.js.map +1 -0
- package/dist/cjs/lock/contracts/lock-provider-factory.contract.js +3 -0
- package/dist/cjs/lock/contracts/lock-provider-factory.contract.js.map +1 -0
- package/dist/cjs/lock/contracts/lock-provider.contract.js +3 -0
- package/dist/cjs/lock/contracts/lock-provider.contract.js.map +1 -0
- package/dist/cjs/lock/contracts/lock.contract.js +3 -0
- package/dist/cjs/lock/contracts/lock.contract.js.map +1 -0
- package/dist/cjs/lock/contracts/lock.errors.js +131 -0
- package/dist/cjs/lock/contracts/lock.errors.js.map +1 -0
- package/dist/cjs/lock/contracts/lock.events.js +44 -0
- package/dist/cjs/lock/contracts/lock.events.js.map +1 -0
- package/dist/cjs/lock/implementations/_module.js +20 -0
- package/dist/cjs/lock/implementations/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/_shared/_module.js +20 -0
- package/dist/cjs/lock/implementations/_shared/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/_shared/database-lock-adapter.test-suite.js +285 -0
- package/dist/cjs/lock/implementations/_shared/database-lock-adapter.test-suite.js.map +1 -0
- package/dist/cjs/lock/implementations/_shared/lock-adapter.test-suite.js +238 -0
- package/dist/cjs/lock/implementations/_shared/lock-adapter.test-suite.js.map +1 -0
- package/dist/cjs/lock/implementations/_shared/lock-provider.test-suite.js +1841 -0
- package/dist/cjs/lock/implementations/_shared/lock-provider.test-suite.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/_module.js +22 -0
- package/dist/cjs/lock/implementations/adapters/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/kysely-lock-adapter/_module.js +18 -0
- package/dist/cjs/lock/implementations/adapters/kysely-lock-adapter/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js +126 -0
- package/dist/cjs/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/libsql-lock-adapter/_module.js +18 -0
- package/dist/cjs/lock/implementations/adapters/libsql-lock-adapter/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js +61 -0
- package/dist/cjs/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/memory-lock-adapter/_module.js +18 -0
- package/dist/cjs/lock/implementations/adapters/memory-lock-adapter/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js +107 -0
- package/dist/cjs/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/mongodb-lock-adapter/_module.js +18 -0
- package/dist/cjs/lock/implementations/adapters/mongodb-lock-adapter/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js +148 -0
- package/dist/cjs/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/redis-lock-adapter/_module.js +18 -0
- package/dist/cjs/lock/implementations/adapters/redis-lock-adapter/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js +131 -0
- package/dist/cjs/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/sqlite-lock-adapter/_module.js +18 -0
- package/dist/cjs/lock/implementations/adapters/sqlite-lock-adapter/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js +60 -0
- package/dist/cjs/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js.map +1 -0
- package/dist/cjs/lock/implementations/derivables/_module.js +19 -0
- package/dist/cjs/lock/implementations/derivables/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider/_module.js +18 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider/database-lock-adapter.js +80 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider/database-lock-adapter.js.map +1 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider/lock-provider.js +162 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider/lock.js +306 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider/lock.js.map +1 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider-factory/_module.js +18 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider-factory/_module.js.map +1 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js +78 -0
- package/dist/cjs/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -0
- package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js +3 -0
- package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js.map +1 -1
- package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js +15 -0
- package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js.map +1 -1
- package/dist/cjs/utilities/contracts/_module.js +1 -0
- package/dist/cjs/utilities/contracts/_module.js.map +1 -1
- package/dist/cjs/utilities/contracts/serde-registrable.contract.js +3 -0
- package/dist/cjs/utilities/contracts/serde-registrable.contract.js.map +1 -0
- package/dist/cjs/utilities/functions.js +4 -0
- package/dist/cjs/utilities/functions.js.map +1 -1
- package/dist/esm/_module.js +2 -0
- package/dist/esm/_module.js.map +1 -1
- package/dist/esm/async/utilities/lazy-promise/lazy-promise.js +16 -9
- package/dist/esm/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
- package/dist/esm/cache/contracts/cache.events.js +11 -138
- package/dist/esm/cache/contracts/cache.events.js.map +1 -1
- package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js +5 -24
- package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
- package/dist/esm/cache/implementations/_shared/cache.test-suite.js +731 -23
- package/dist/esm/cache/implementations/_shared/cache.test-suite.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +1 -21
- package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js +0 -1
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +0 -7
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js +0 -1
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +3 -11
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js +0 -1
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +6 -28
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +0 -3
- package/dist/esm/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js +0 -1
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +5 -13
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js +0 -1
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +0 -7
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/derivables/cache/_module.js +0 -1
- package/dist/esm/cache/implementations/derivables/cache/_module.js.map +1 -1
- package/dist/esm/cache/implementations/derivables/cache/cache.js +216 -104
- package/dist/esm/cache/implementations/derivables/cache/cache.js.map +1 -1
- package/dist/esm/cache/implementations/derivables/cache-factory/_module.js +0 -1
- package/dist/esm/cache/implementations/derivables/cache-factory/_module.js.map +1 -1
- package/dist/esm/cache/implementations/derivables/cache-factory/cache-factory.js +0 -4
- package/dist/esm/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
- package/dist/esm/event-bus/contracts/_shared.js +3 -2
- package/dist/esm/event-bus/contracts/_shared.js.map +1 -1
- package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +4 -15
- package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
- package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js +7 -28
- package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +0 -1
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -1
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +0 -4
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js +0 -1
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -1
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +0 -4
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
- package/dist/esm/event-bus/implementations/derivables/event-bus/_module.js +0 -1
- package/dist/esm/event-bus/implementations/derivables/event-bus/_module.js.map +1 -1
- package/dist/esm/event-bus/implementations/derivables/event-bus/event-bus.js +0 -4
- package/dist/esm/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory/_module.js +0 -1
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory/_module.js.map +1 -1
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js +0 -4
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +1 -1
- package/dist/esm/lock/contracts/_module.js +8 -0
- package/dist/esm/lock/contracts/_module.js.map +1 -0
- package/dist/esm/lock/contracts/database-lock-adapter.contract.js +1 -0
- package/dist/esm/lock/contracts/database-lock-adapter.contract.js.map +1 -0
- package/dist/esm/lock/contracts/lock-adapter.contract.js +1 -0
- package/dist/esm/lock/contracts/lock-adapter.contract.js.map +1 -0
- package/dist/esm/lock/contracts/lock-provider-factory.contract.js +1 -0
- package/dist/esm/lock/contracts/lock-provider-factory.contract.js.map +1 -0
- package/dist/esm/lock/contracts/lock-provider.contract.js +1 -0
- package/dist/esm/lock/contracts/lock-provider.contract.js.map +1 -0
- package/dist/esm/lock/contracts/lock.contract.js +1 -0
- package/dist/esm/lock/contracts/lock.contract.js.map +1 -0
- package/dist/esm/lock/contracts/lock.errors.js +120 -0
- package/dist/esm/lock/contracts/lock.errors.js.map +1 -0
- package/dist/esm/lock/contracts/lock.events.js +32 -0
- package/dist/esm/lock/contracts/lock.events.js.map +1 -0
- package/dist/esm/lock/implementations/_module.js +4 -0
- package/dist/esm/lock/implementations/_module.js.map +1 -0
- package/dist/esm/lock/implementations/_shared/_module.js +4 -0
- package/dist/esm/lock/implementations/_shared/_module.js.map +1 -0
- package/dist/esm/lock/implementations/_shared/database-lock-adapter.test-suite.js +282 -0
- package/dist/esm/lock/implementations/_shared/database-lock-adapter.test-suite.js.map +1 -0
- package/dist/esm/lock/implementations/_shared/lock-adapter.test-suite.js +235 -0
- package/dist/esm/lock/implementations/_shared/lock-adapter.test-suite.js.map +1 -0
- package/dist/esm/lock/implementations/_shared/lock-provider.test-suite.js +1838 -0
- package/dist/esm/lock/implementations/_shared/lock-provider.test-suite.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/_module.js +6 -0
- package/dist/esm/lock/implementations/adapters/_module.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/kysely-lock-adapter/_module.js +2 -0
- package/dist/esm/lock/implementations/adapters/kysely-lock-adapter/_module.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js +122 -0
- package/dist/esm/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/libsql-lock-adapter/_module.js +2 -0
- package/dist/esm/lock/implementations/adapters/libsql-lock-adapter/_module.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js +57 -0
- package/dist/esm/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/memory-lock-adapter/_module.js +2 -0
- package/dist/esm/lock/implementations/adapters/memory-lock-adapter/_module.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js +103 -0
- package/dist/esm/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/mongodb-lock-adapter/_module.js +2 -0
- package/dist/esm/lock/implementations/adapters/mongodb-lock-adapter/_module.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js +144 -0
- package/dist/esm/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/redis-lock-adapter/_module.js +2 -0
- package/dist/esm/lock/implementations/adapters/redis-lock-adapter/_module.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js +127 -0
- package/dist/esm/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/sqlite-lock-adapter/_module.js +2 -0
- package/dist/esm/lock/implementations/adapters/sqlite-lock-adapter/_module.js.map +1 -0
- package/dist/esm/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js +56 -0
- package/dist/esm/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js.map +1 -0
- package/dist/esm/lock/implementations/derivables/_module.js +3 -0
- package/dist/esm/lock/implementations/derivables/_module.js.map +1 -0
- package/dist/esm/lock/implementations/derivables/lock-provider/_module.js +2 -0
- package/dist/esm/lock/implementations/derivables/lock-provider/_module.js.map +1 -0
- package/dist/esm/lock/implementations/derivables/lock-provider/database-lock-adapter.js +76 -0
- package/dist/esm/lock/implementations/derivables/lock-provider/database-lock-adapter.js.map +1 -0
- package/dist/esm/lock/implementations/derivables/lock-provider/lock-provider.js +158 -0
- package/dist/esm/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -0
- package/dist/esm/lock/implementations/derivables/lock-provider/lock.js +302 -0
- package/dist/esm/lock/implementations/derivables/lock-provider/lock.js.map +1 -0
- package/dist/esm/lock/implementations/derivables/lock-provider-factory/_module.js +2 -0
- package/dist/esm/lock/implementations/derivables/lock-provider-factory/_module.js.map +1 -0
- package/dist/esm/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js +74 -0
- package/dist/esm/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -0
- package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js +3 -0
- package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js.map +1 -1
- package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js +15 -0
- package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js.map +1 -1
- package/dist/esm/utilities/contracts/_module.js +1 -0
- package/dist/esm/utilities/contracts/_module.js.map +1 -1
- package/dist/esm/utilities/contracts/serde-registrable.contract.js +1 -0
- package/dist/esm/utilities/contracts/serde-registrable.contract.js.map +1 -0
- package/dist/esm/utilities/functions.js +4 -0
- package/dist/esm/utilities/functions.js.map +1 -1
- package/dist/types/_module.d.ts +2 -0
- package/dist/types/async/utilities/lazy-promise/lazy-promise.d.ts +2 -2
- package/dist/types/cache/contracts/cache-adapter.contract.d.ts +2 -6
- package/dist/types/cache/contracts/cache-factory.contract.d.ts +1 -2
- package/dist/types/cache/contracts/cache.contract.d.ts +116 -8
- package/dist/types/cache/contracts/cache.events.d.ts +24 -90
- package/dist/types/cache/implementations/_shared/cache-adapter.test-suite.d.ts +2 -9
- package/dist/types/cache/implementations/_shared/cache.test-suite.d.ts +5 -15
- package/dist/types/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.d.ts +0 -1
- package/dist/types/cache/implementations/adapters/libsql-cache-adapter/_module.d.ts +0 -1
- package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.d.ts +23 -30
- package/dist/types/cache/implementations/adapters/memory-cache-adapter/_module.d.ts +0 -1
- package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +8 -19
- package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/_module.d.ts +0 -1
- package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +16 -27
- package/dist/types/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +0 -1
- package/dist/types/cache/implementations/adapters/redis-cache-adapter/_module.d.ts +0 -1
- package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +12 -23
- package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/_module.d.ts +0 -1
- package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +23 -30
- package/dist/types/cache/implementations/derivables/cache/_module.d.ts +0 -1
- package/dist/types/cache/implementations/derivables/cache/cache.d.ts +38 -27
- package/dist/types/cache/implementations/derivables/cache-factory/_module.d.ts +0 -1
- package/dist/types/cache/implementations/derivables/cache-factory/cache-factory.d.ts +60 -26
- package/dist/types/collection/contracts/async-collection.contract.d.ts +68 -8
- package/dist/types/event-bus/contracts/_shared.d.ts +3 -4
- package/dist/types/event-bus/contracts/event-bus-adapter.contract.d.ts +1 -1
- package/dist/types/event-bus/contracts/event-bus-factory.contract.d.ts +5 -24
- package/dist/types/event-bus/implementations/_shared/event-bus-adapter.test-suite.d.ts +2 -10
- package/dist/types/event-bus/implementations/_shared/event-bus.test-suite.d.ts +3 -13
- package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/_module.d.ts +0 -1
- package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.d.ts +8 -18
- package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.d.ts +0 -1
- package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.d.ts +11 -20
- package/dist/types/event-bus/implementations/derivables/event-bus/_module.d.ts +0 -1
- package/dist/types/event-bus/implementations/derivables/event-bus/event-bus.d.ts +29 -20
- package/dist/types/event-bus/implementations/derivables/event-bus-factory/_module.d.ts +0 -1
- package/dist/types/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.d.ts +49 -46
- package/dist/types/lock/contracts/_module.d.ts +7 -0
- package/dist/types/lock/contracts/database-lock-adapter.contract.d.ts +49 -0
- package/dist/types/lock/contracts/lock-adapter.contract.d.ts +48 -0
- package/dist/types/lock/contracts/lock-provider-factory.contract.d.ts +36 -0
- package/dist/types/lock/contracts/lock-provider.contract.d.ts +92 -0
- package/dist/types/lock/contracts/lock.contract.d.ts +219 -0
- package/dist/types/lock/contracts/lock.errors.d.ts +66 -0
- package/dist/types/lock/contracts/lock.events.d.ts +83 -0
- package/dist/types/lock/implementations/_module.d.ts +3 -0
- package/dist/types/lock/implementations/_shared/_module.d.ts +3 -0
- package/dist/types/lock/implementations/_shared/database-lock-adapter.test-suite.d.ts +21 -0
- package/dist/types/lock/implementations/_shared/lock-adapter.test-suite.d.ts +21 -0
- package/dist/types/lock/implementations/_shared/lock-provider.test-suite.d.ts +23 -0
- package/dist/types/lock/implementations/adapters/_module.d.ts +5 -0
- package/dist/types/lock/implementations/adapters/kysely-lock-adapter/_module.d.ts +1 -0
- package/dist/types/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.d.ts +52 -0
- package/dist/types/lock/implementations/adapters/libsql-lock-adapter/_module.d.ts +1 -0
- package/dist/types/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.d.ts +58 -0
- package/dist/types/lock/implementations/adapters/memory-lock-adapter/_module.d.ts +1 -0
- package/dist/types/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.d.ts +52 -0
- package/dist/types/lock/implementations/adapters/mongodb-lock-adapter/_module.d.ts +1 -0
- package/dist/types/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.d.ts +60 -0
- package/dist/types/lock/implementations/adapters/redis-lock-adapter/_module.d.ts +1 -0
- package/dist/types/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.d.ts +57 -0
- package/dist/types/lock/implementations/adapters/sqlite-lock-adapter/_module.d.ts +1 -0
- package/dist/types/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.d.ts +57 -0
- package/dist/types/lock/implementations/derivables/_module.d.ts +2 -0
- package/dist/types/lock/implementations/derivables/lock-provider/_module.d.ts +1 -0
- package/dist/types/lock/implementations/derivables/lock-provider/database-lock-adapter.d.ts +23 -0
- package/dist/types/lock/implementations/derivables/lock-provider/lock-provider.d.ts +89 -0
- package/dist/types/lock/implementations/derivables/lock-provider/lock.d.ts +73 -0
- package/dist/types/lock/implementations/derivables/lock-provider-factory/_module.d.ts +1 -0
- package/dist/types/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.d.ts +98 -0
- package/dist/types/serde/contracts/flexible-serde.contract.d.ts +3 -2
- package/dist/types/serde/implementations/no-op-serde/no-op-serde.d.ts +2 -1
- package/dist/types/serde/implementations/super-json-serde/super-json-serde.d.ts +2 -1
- package/dist/types/utilities/contracts/_module.d.ts +1 -0
- package/dist/types/utilities/contracts/serde-registrable.contract.d.ts +11 -0
- package/dist/types/utilities/types.d.ts +3 -1
- package/package.json +5 -3
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +0 -56
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +0 -1
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +0 -26
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +0 -1
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +0 -44
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +0 -1
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +0 -32
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +0 -1
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +0 -56
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +0 -1
- package/dist/cjs/cache/implementations/derivables/cache/cache-settings.js +0 -56
- package/dist/cjs/cache/implementations/derivables/cache/cache-settings.js.map +0 -1
- package/dist/cjs/cache/implementations/derivables/cache-factory/cache-factory-settings.js +0 -83
- package/dist/cjs/cache/implementations/derivables/cache-factory/cache-factory-settings.js.map +0 -1
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +0 -26
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +0 -1
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +0 -38
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +0 -1
- package/dist/cjs/event-bus/implementations/derivables/event-bus/event-bus-settings.js +0 -56
- package/dist/cjs/event-bus/implementations/derivables/event-bus/event-bus-settings.js.map +0 -1
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/event-bus-factory-settings.js +0 -71
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/event-bus-factory-settings.js.map +0 -1
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +0 -52
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +0 -1
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +0 -22
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +0 -1
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +0 -40
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +0 -1
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +0 -28
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +0 -1
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +0 -52
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +0 -1
- package/dist/esm/cache/implementations/derivables/cache/cache-settings.js +0 -52
- package/dist/esm/cache/implementations/derivables/cache/cache-settings.js.map +0 -1
- package/dist/esm/cache/implementations/derivables/cache-factory/cache-factory-settings.js +0 -79
- package/dist/esm/cache/implementations/derivables/cache-factory/cache-factory-settings.js.map +0 -1
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +0 -22
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +0 -1
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +0 -34
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +0 -1
- package/dist/esm/event-bus/implementations/derivables/event-bus/event-bus-settings.js +0 -52
- package/dist/esm/event-bus/implementations/derivables/event-bus/event-bus-settings.js.map +0 -1
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory/event-bus-factory-settings.js +0 -67
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory/event-bus-factory-settings.js.map +0 -1
- package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.d.ts +0 -48
- package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.d.ts +0 -26
- package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.d.ts +0 -50
- package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.d.ts +0 -32
- package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.d.ts +0 -48
- package/dist/types/cache/implementations/derivables/cache/cache-settings.d.ts +0 -73
- package/dist/types/cache/implementations/derivables/cache-factory/cache-factory-settings.d.ts +0 -108
- package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.d.ts +0 -27
- package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.d.ts +0 -36
- package/dist/types/event-bus/implementations/derivables/event-bus/event-bus-settings.d.ts +0 -62
- package/dist/types/event-bus/implementations/derivables/event-bus-factory/event-bus-factory-settings.d.ts +0 -92
package/dist/types/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.d.ts
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Lock
|
|
3
|
+
*/
|
|
4
|
+
import type { IDatabaseLockAdapter, ILockData } from "../../../../lock/contracts/_module";
|
|
5
|
+
import type { CollectionOptions, Db } from "mongodb";
|
|
6
|
+
/**
|
|
7
|
+
* @group Adapters
|
|
8
|
+
*/
|
|
9
|
+
export type MongodbLockAdapterSettings = {
|
|
10
|
+
database: Db;
|
|
11
|
+
rootGroup: string;
|
|
12
|
+
collectionName?: string;
|
|
13
|
+
collectionSettings?: CollectionOptions;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* @group Adapters
|
|
17
|
+
*/
|
|
18
|
+
export declare class MongodbLockAdapter implements IDatabaseLockAdapter {
|
|
19
|
+
private readonly group;
|
|
20
|
+
private readonly database;
|
|
21
|
+
private readonly collection;
|
|
22
|
+
private readonly collectionName;
|
|
23
|
+
private readonly collectionSettings?;
|
|
24
|
+
/**
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* import { MongodbLockAdapter } from "@daiso-tech/core";
|
|
28
|
+
* import { MongoClient } from "mongodb";
|
|
29
|
+
*
|
|
30
|
+
* (async () => {
|
|
31
|
+
* const client = await MongoClient.connect("YOUR_MONGODB_CONNECTION_STRING");
|
|
32
|
+
* const database = client.db("database");
|
|
33
|
+
* const lockAdapter = new MongodbLockAdapter({
|
|
34
|
+
* database,
|
|
35
|
+
* rootGroup: "@global"
|
|
36
|
+
* });
|
|
37
|
+
* await lockAdapter.init();
|
|
38
|
+
* })();
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
constructor({ collectionName, collectionSettings, database, rootGroup, }: MongodbLockAdapterSettings);
|
|
42
|
+
removeExpiredKeys(): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Creates all related indexes.
|
|
45
|
+
* Note the <i>init</i> method needs to be called before using the adapter.
|
|
46
|
+
*/
|
|
47
|
+
init(): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* Removes the collection where the cache values are stored and all it's related indexes.
|
|
50
|
+
* Note all cache data will be removed.
|
|
51
|
+
*/
|
|
52
|
+
deInit(): Promise<void>;
|
|
53
|
+
insert(key: string, owner: string, expiration: Date | null): Promise<void>;
|
|
54
|
+
update(key: string, owner: string, expiration: Date | null): Promise<number>;
|
|
55
|
+
remove(key: string, owner: string | null): Promise<void>;
|
|
56
|
+
refresh(key: string, owner: string, expiration: Date): Promise<number>;
|
|
57
|
+
find(key: string): Promise<ILockData | null>;
|
|
58
|
+
getGroup(): string;
|
|
59
|
+
withGroup(group: string): IDatabaseLockAdapter;
|
|
60
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../../../../lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter";
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Lock
|
|
3
|
+
*/
|
|
4
|
+
import { TimeSpan } from "../../../../utilities/_module";
|
|
5
|
+
import type { ILockAdapter } from "../../../../lock/contracts/_module";
|
|
6
|
+
import type Redis from "ioredis";
|
|
7
|
+
import type { Result } from "ioredis";
|
|
8
|
+
declare module "ioredis" {
|
|
9
|
+
interface RedisCommander<Context> {
|
|
10
|
+
daiso_lock_acquire(key: string, owner: string, ttl: string): Result<number, Context>;
|
|
11
|
+
daiso_lock_release(key: string, owner: string): Result<number, Context>;
|
|
12
|
+
daiso_lock_refresh(key: string, owner: string, ttl: string): Result<number, Context>;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* @group Adapters
|
|
17
|
+
*/
|
|
18
|
+
export type RedisLockAdapterSettings = {
|
|
19
|
+
database: Redis;
|
|
20
|
+
rootGroup: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* @group Adapters
|
|
24
|
+
*/
|
|
25
|
+
export declare class RedisLockAdapter implements ILockAdapter {
|
|
26
|
+
private readonly group;
|
|
27
|
+
private readonly database;
|
|
28
|
+
/**
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* import { RedisLockAdapter, SuperJsonSerde } from "@daiso-tech/core";
|
|
32
|
+
* import Redis from "ioredis";
|
|
33
|
+
*
|
|
34
|
+
* const database = new Redis("YOUR_REDIS_CONNECTION_STRING");
|
|
35
|
+
* const serde = new SuperJsonSerde();
|
|
36
|
+
* const lockAdapter = new RedisLockAdapter({
|
|
37
|
+
* database,
|
|
38
|
+
* serde,
|
|
39
|
+
* rootGroup: "@global"
|
|
40
|
+
* });
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
constructor(settings: RedisLockAdapterSettings);
|
|
44
|
+
private initAquireCommand;
|
|
45
|
+
private initReleaseCommand;
|
|
46
|
+
private initRefreshComand;
|
|
47
|
+
private getPrefix;
|
|
48
|
+
private withPrefix;
|
|
49
|
+
acquire(key: string, owner: string, ttl: TimeSpan | null): Promise<boolean>;
|
|
50
|
+
release(key: string, owner: string): Promise<boolean>;
|
|
51
|
+
forceRelease(key: string): Promise<void>;
|
|
52
|
+
isLocked(key: string): Promise<boolean>;
|
|
53
|
+
getRemainingTime(key: string): Promise<TimeSpan | null>;
|
|
54
|
+
refresh(key: string, owner: string, ttl: TimeSpan): Promise<boolean>;
|
|
55
|
+
getGroup(): string;
|
|
56
|
+
withGroup(group: string): ILockAdapter;
|
|
57
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../../../../lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter";
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Lock
|
|
3
|
+
*/
|
|
4
|
+
import type { IDatabaseLockAdapter, ILockData } from "../../../../lock/contracts/_module";
|
|
5
|
+
import { TimeSpan } from "../../../../utilities/_module";
|
|
6
|
+
import type { SqliteDatabase } from "kysely";
|
|
7
|
+
/**
|
|
8
|
+
* @group Adapters
|
|
9
|
+
*/
|
|
10
|
+
export type SqliteLockAdapterSettings = {
|
|
11
|
+
database: SqliteDatabase;
|
|
12
|
+
tableName?: string;
|
|
13
|
+
expiredKeysRemovalInterval?: TimeSpan;
|
|
14
|
+
shouldRemoveExpiredKeys?: boolean;
|
|
15
|
+
rootGroup: string;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* @group Adapters
|
|
19
|
+
*/
|
|
20
|
+
export declare class SqliteLockAdapter implements IDatabaseLockAdapter {
|
|
21
|
+
private databaseLockAdapter;
|
|
22
|
+
/**
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* import { SqliteLockAdapter } from "@daiso-tech/core";
|
|
26
|
+
* import Sqlite from "better-sqlite3";
|
|
27
|
+
*
|
|
28
|
+
* (async () => {
|
|
29
|
+
* const database = new Sqlite("local.db");
|
|
30
|
+
* const lockAdapter = new SqliteLockAdapter({
|
|
31
|
+
* database,
|
|
32
|
+
* rootGroup: "@global"
|
|
33
|
+
* });
|
|
34
|
+
* await lockAdapter.init();
|
|
35
|
+
* })();
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
constructor(settings: SqliteLockAdapterSettings);
|
|
39
|
+
removeExpiredKeys(): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Removes the table where the cache values are stored and removes the table indexes.
|
|
42
|
+
* Note all cache data will be removed.
|
|
43
|
+
*/
|
|
44
|
+
deInit(): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Creates the table where the cache values are stored and it's related indexes.
|
|
47
|
+
* Note the <i>init</i> method needs to be called before using the adapter.
|
|
48
|
+
*/
|
|
49
|
+
init(): Promise<void>;
|
|
50
|
+
insert(key: string, owner: string, expiration: Date | null): Promise<void>;
|
|
51
|
+
update(key: string, owner: string, expiration: Date | null): Promise<number>;
|
|
52
|
+
remove(key: string, owner: string | null): Promise<void>;
|
|
53
|
+
refresh(key: string, owner: string, expiration: Date): Promise<number>;
|
|
54
|
+
find(key: string): Promise<ILockData | null>;
|
|
55
|
+
getGroup(): string;
|
|
56
|
+
withGroup(group: string): IDatabaseLockAdapter;
|
|
57
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../../../../lock/implementations/derivables/lock-provider/lock-provider";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Lock
|
|
3
|
+
*/
|
|
4
|
+
import type { IDeinitizable, IInitizable } from "../../../../_module";
|
|
5
|
+
import { TimeSpan } from "../../../../_module";
|
|
6
|
+
import type { IDatabaseLockAdapter, ILockAdapter } from "../../../../lock/contracts/_module";
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export declare class DatabaseLockAdapter implements ILockAdapter, IDeinitizable, IInitizable {
|
|
11
|
+
private readonly adapter;
|
|
12
|
+
constructor(adapter: IDatabaseLockAdapter);
|
|
13
|
+
init(): Promise<void>;
|
|
14
|
+
deInit(): Promise<void>;
|
|
15
|
+
acquire(key: string, owner: string, ttl: TimeSpan | null): Promise<boolean>;
|
|
16
|
+
release(key: string, owner: string): Promise<boolean>;
|
|
17
|
+
forceRelease(key: string): Promise<void>;
|
|
18
|
+
isLocked(key: string): Promise<boolean>;
|
|
19
|
+
getRemainingTime(key: string): Promise<TimeSpan | null>;
|
|
20
|
+
refresh(key: string, owner: string, ttl: TimeSpan): Promise<boolean>;
|
|
21
|
+
getGroup(): string;
|
|
22
|
+
withGroup(group: string): ILockAdapter;
|
|
23
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Lock
|
|
3
|
+
*/
|
|
4
|
+
import type { ISerdeRegistrable } from "../../../../utilities/_module";
|
|
5
|
+
import { TimeSpan, type OneOrMore } from "../../../../utilities/_module";
|
|
6
|
+
import type { IDatabaseLockAdapter, LockEvents } from "../../../../lock/contracts/_module";
|
|
7
|
+
import { type ILock, type IGroupableLockProvider, type LockProviderCreateSettings, type ILockProvider, type ILockAdapter } from "../../../../lock/contracts/_module";
|
|
8
|
+
import type { BackoffPolicy, LazyPromise, RetryPolicy } from "../../../../async/_module";
|
|
9
|
+
import { Lock, type ISerializedLock } from "../../../../lock/implementations/derivables/lock-provider/lock";
|
|
10
|
+
import type { EventClass, EventInstance, IGroupableEventBus, Listener, Unsubscribe } from "../../../../event-bus/contracts/_module";
|
|
11
|
+
import type { IFlexibleSerde, ISerdeTransformer } from "../../../../serde/contracts/_module";
|
|
12
|
+
/**
|
|
13
|
+
* @group Derivables
|
|
14
|
+
*/
|
|
15
|
+
export type LockProviderSettings = {
|
|
16
|
+
/**
|
|
17
|
+
* You can pass your owner id generator function.
|
|
18
|
+
*/
|
|
19
|
+
createOwnerId?: () => string;
|
|
20
|
+
adapter: ILockAdapter | IDatabaseLockAdapter;
|
|
21
|
+
/**
|
|
22
|
+
* In order to listen to events of <i>{@link LockProvider}</i> class you must pass in <i>{@link IGroupableEventBus}</i>.
|
|
23
|
+
*/
|
|
24
|
+
eventBus?: IGroupableEventBus<any>;
|
|
25
|
+
/**
|
|
26
|
+
* You can decide the default ttl value for <i>{@link ILock}</i> expiration. If null is passed then no ttl will be used by default.
|
|
27
|
+
* @default TimeSpan.fromMinutes(5);
|
|
28
|
+
*/
|
|
29
|
+
defaultTtl?: TimeSpan | null;
|
|
30
|
+
/**
|
|
31
|
+
* The default refresh time used in the <i>{@link ILock}</i> <i>extend</i> method.
|
|
32
|
+
* @default TimeSpan.fromMinutes(5);
|
|
33
|
+
*/
|
|
34
|
+
defaultRefreshTime?: TimeSpan;
|
|
35
|
+
/**
|
|
36
|
+
* The default retry attempt to use in the returned <i>LazyPromise</i>.
|
|
37
|
+
* @default {null}
|
|
38
|
+
*/
|
|
39
|
+
retryAttempts?: number | null;
|
|
40
|
+
/**
|
|
41
|
+
* The default backof policy to use in the returned <i>LazyPromise</i>.
|
|
42
|
+
* @default {null}
|
|
43
|
+
*/
|
|
44
|
+
backoffPolicy?: BackoffPolicy | null;
|
|
45
|
+
/**
|
|
46
|
+
* The default retry policy to use in the returned <i>LazyPromise</i>.
|
|
47
|
+
* @default {null}
|
|
48
|
+
*/
|
|
49
|
+
retryPolicy?: RetryPolicy | null;
|
|
50
|
+
/**
|
|
51
|
+
* The default timeout to use in the returned <i>LazyPromise</i>.
|
|
52
|
+
* @default {null}
|
|
53
|
+
*/
|
|
54
|
+
timeout?: TimeSpan | null;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* @group Derivables
|
|
58
|
+
*/
|
|
59
|
+
export declare class LockProvider implements IGroupableLockProvider, ISerdeRegistrable, ISerdeTransformer<Lock, ISerializedLock> {
|
|
60
|
+
private static DEFAULT_TTL;
|
|
61
|
+
private static DEFAULT_REFRESH_TIME;
|
|
62
|
+
private static isDatabaseAdapter;
|
|
63
|
+
private readonly createOwnerId;
|
|
64
|
+
private readonly adapter;
|
|
65
|
+
private readonly defaultTtl;
|
|
66
|
+
private readonly defaultRefreshTime;
|
|
67
|
+
private readonly retryAttempts;
|
|
68
|
+
private readonly backoffPolicy;
|
|
69
|
+
private readonly retryPolicy;
|
|
70
|
+
private readonly timeout;
|
|
71
|
+
private readonly eventBus;
|
|
72
|
+
private readonly lockProviderEventBus;
|
|
73
|
+
get name(): string;
|
|
74
|
+
constructor(settings: LockProviderSettings);
|
|
75
|
+
addListener<TEventClass extends EventClass<LockEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
76
|
+
addListenerMany<TEventClass extends EventClass<LockEvents>>(events: TEventClass[], listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
77
|
+
removeListener<TEventClass extends EventClass<LockEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
78
|
+
removeListenerMany<TEventClass extends EventClass<LockEvents>>(events: TEventClass[], listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
79
|
+
listenOnce<TEventClass extends EventClass<LockEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
80
|
+
subscribe<TEventClass extends EventClass<LockEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<Unsubscribe>;
|
|
81
|
+
subscribeMany<TEventClass extends EventClass<LockEvents>>(events: TEventClass[], listener: Listener<EventInstance<TEventClass>>): LazyPromise<Unsubscribe>;
|
|
82
|
+
isApplicable(value: unknown): value is Lock;
|
|
83
|
+
serialize(deserializedValue: Lock): ISerializedLock;
|
|
84
|
+
deserialize(serializedValue: ISerializedLock): Lock;
|
|
85
|
+
create(key: OneOrMore<string>, settings?: LockProviderCreateSettings): ILock;
|
|
86
|
+
getGroup(): string;
|
|
87
|
+
withGroup(group: OneOrMore<string>): ILockProvider;
|
|
88
|
+
registerToSerde(serde: OneOrMore<IFlexibleSerde>): void;
|
|
89
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Lock
|
|
3
|
+
*/
|
|
4
|
+
import type { LazyPromiseable, Result } from "../../../../utilities/_module";
|
|
5
|
+
import type { TimeSpan } from "../../../../utilities/_module";
|
|
6
|
+
import type { BackoffPolicy, RetryPolicy } from "../../../../async/_module";
|
|
7
|
+
import { LazyPromise } from "../../../../async/_module";
|
|
8
|
+
import type { ILockAdapter, LockEvents } from "../../../../lock/contracts/_module";
|
|
9
|
+
import { KeyAlreadyAcquiredLockError, type ILock } from "../../../../lock/contracts/_module";
|
|
10
|
+
import type { EventClass, Listener, EventInstance, Unsubscribe, IGroupableEventBus, IEventDispatcher } from "../../../../event-bus/contracts/_module";
|
|
11
|
+
/**
|
|
12
|
+
* @group Derivables
|
|
13
|
+
*/
|
|
14
|
+
export type ISerializedLock = {
|
|
15
|
+
group: string;
|
|
16
|
+
key: string;
|
|
17
|
+
owner: string;
|
|
18
|
+
ttlInMs: number | null;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export type LockSettings = {
|
|
24
|
+
lockEventBus: IGroupableEventBus<LockEvents>;
|
|
25
|
+
lockProviderEventDispatcher: IEventDispatcher<LockEvents>;
|
|
26
|
+
adapter: ILockAdapter;
|
|
27
|
+
key: string;
|
|
28
|
+
owner: string;
|
|
29
|
+
defaultRefreshTime: TimeSpan;
|
|
30
|
+
ttl: TimeSpan | null;
|
|
31
|
+
lazyPromiseSettings: {
|
|
32
|
+
retryAttempts: number | null;
|
|
33
|
+
backoffPolicy: BackoffPolicy | null;
|
|
34
|
+
retryPolicy: RetryPolicy | null;
|
|
35
|
+
timeout: TimeSpan | null;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
export declare class Lock implements ILock {
|
|
42
|
+
static serialize(deserializedValue: Lock): ISerializedLock;
|
|
43
|
+
private readonly lockProviderEventDispatcher;
|
|
44
|
+
private readonly lockEventBus;
|
|
45
|
+
private readonly adapter;
|
|
46
|
+
private readonly key;
|
|
47
|
+
private readonly owner;
|
|
48
|
+
private readonly ttl;
|
|
49
|
+
private readonly defaultRefreshTime;
|
|
50
|
+
private readonly lazyPromiseSettings;
|
|
51
|
+
constructor(settings: LockSettings);
|
|
52
|
+
private createLayPromise;
|
|
53
|
+
run<TValue = void>(asyncFn: LazyPromiseable<TValue>, shouldTimeout?: boolean): LazyPromise<Result<TValue, KeyAlreadyAcquiredLockError>>;
|
|
54
|
+
runOrFail<TValue = void>(asyncFn: LazyPromiseable<TValue>, shouldTimeout?: boolean): LazyPromise<TValue>;
|
|
55
|
+
acquire(): LazyPromise<boolean>;
|
|
56
|
+
acquireOrFail(): LazyPromise<void>;
|
|
57
|
+
release(): LazyPromise<boolean>;
|
|
58
|
+
releaseOrFail(): LazyPromise<void>;
|
|
59
|
+
forceRelease(): LazyPromise<void>;
|
|
60
|
+
isExpired(): LazyPromise<boolean>;
|
|
61
|
+
isLocked(): LazyPromise<boolean>;
|
|
62
|
+
refresh(ttl?: TimeSpan): LazyPromise<boolean>;
|
|
63
|
+
refreshOrFail(ttl?: TimeSpan): LazyPromise<void>;
|
|
64
|
+
getRemainingTime(): LazyPromise<TimeSpan | null>;
|
|
65
|
+
getOwner(): LazyPromise<string>;
|
|
66
|
+
addListener<TEventClass extends EventClass<LockEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
67
|
+
addListenerMany<TEventClass extends EventClass<LockEvents>>(events: TEventClass[], listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
68
|
+
removeListener<TEventClass extends EventClass<LockEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
69
|
+
removeListenerMany<TEventClass extends EventClass<LockEvents>>(events: TEventClass[], listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
70
|
+
listenOnce<TEventClass extends EventClass<LockEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
71
|
+
subscribe<TEventClass extends EventClass<LockEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<Unsubscribe>;
|
|
72
|
+
subscribeMany<TEventClass extends EventClass<LockEvents>>(events: TEventClass[], listener: Listener<EventInstance<TEventClass>>): LazyPromise<Unsubscribe>;
|
|
73
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../../../../lock/implementations/derivables/lock-provider-factory/lock-provider-factory";
|
package/dist/types/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.d.ts
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Lock
|
|
3
|
+
*/
|
|
4
|
+
import type { BackoffPolicy, RetryPolicy } from "../../../../async/_module";
|
|
5
|
+
import type { IGroupableEventBus } from "../../../../event-bus/contracts/_module";
|
|
6
|
+
import type { IDatabaseLockAdapter, ILockAdapter } from "../../../../lock/contracts/_module";
|
|
7
|
+
import type { ILockProviderFactory } from "../../../../lock/contracts/lock-provider-factory.contract";
|
|
8
|
+
import type { IGroupableLockProvider } from "../../../../lock/contracts/lock-provider.contract";
|
|
9
|
+
import type { IFlexibleSerde } from "../../../../serde/contracts/_module";
|
|
10
|
+
import { type OneOrMore } from "../../../../utilities/_module";
|
|
11
|
+
import type { TimeSpan } from "../../../../utilities/_module";
|
|
12
|
+
/**
|
|
13
|
+
* @group Derivables
|
|
14
|
+
*/
|
|
15
|
+
export type LockAdapters<TAdapters extends string> = Partial<Record<TAdapters, ILockAdapter | IDatabaseLockAdapter>>;
|
|
16
|
+
/**
|
|
17
|
+
* @group Derivables
|
|
18
|
+
*/
|
|
19
|
+
export type LockProviderFactorySettings<TAdapters extends string> = {
|
|
20
|
+
/**
|
|
21
|
+
* You can pass one or more <i>{@link IFlexibleSerde}</i> that will be used to register all <i>{@link ILock}</i> related errors and events.
|
|
22
|
+
* @default {true}
|
|
23
|
+
*/
|
|
24
|
+
serde: OneOrMore<IFlexibleSerde>;
|
|
25
|
+
/**
|
|
26
|
+
* If set to true, all <i>{@link ILock}</i> related errors will be registered with the specified <i>IFlexibleSerde</i> during constructor initialization.
|
|
27
|
+
* This ensures that all <i>{@link ILock}</i> related errors will be serialized correctly.
|
|
28
|
+
* @default {true}
|
|
29
|
+
*/
|
|
30
|
+
shouldRegisterErrors?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* If set to true, all <i>{@link ILock}</i> related events will be registered with the specified <i>IFlexibleSerde</i> during constructor initialization.
|
|
33
|
+
* This ensures that all <i>{@link ILock}</i> related events will be serialized correctly.
|
|
34
|
+
* @default {true}
|
|
35
|
+
*/
|
|
36
|
+
shouldRegisterEvents?: boolean;
|
|
37
|
+
adapters: LockAdapters<TAdapters>;
|
|
38
|
+
defaultAdapter?: NoInfer<TAdapters>;
|
|
39
|
+
/**
|
|
40
|
+
* You can pass your owner id generator function.
|
|
41
|
+
*/
|
|
42
|
+
createOwnerId?: () => string;
|
|
43
|
+
/**
|
|
44
|
+
* In order to listen to events of <i>{@link LockProvider}</i> class you must pass in <i>{@link IGroupableEventBus}</i>.
|
|
45
|
+
*/
|
|
46
|
+
eventBus?: IGroupableEventBus<any>;
|
|
47
|
+
/**
|
|
48
|
+
* You can decide the default ttl value for <i>{@link ILock}</i> expiration. If null is passed then no ttl will be used by default.
|
|
49
|
+
* @default TimeSpan.fromMinutes(5);
|
|
50
|
+
*/
|
|
51
|
+
defaultTtl?: TimeSpan | null;
|
|
52
|
+
/**
|
|
53
|
+
* The default refreshtime used in the <i>{@link ILock}</i> <i>extend</i> method.
|
|
54
|
+
* @default TimeSpan.fromMinutes(5);`
|
|
55
|
+
*/
|
|
56
|
+
defaultExtendTime?: TimeSpan;
|
|
57
|
+
/**
|
|
58
|
+
* The default retry attempt to use in the returned <i>LazyPromise</i>.
|
|
59
|
+
* @default {null}
|
|
60
|
+
*/
|
|
61
|
+
retryAttempts?: number | null;
|
|
62
|
+
/**
|
|
63
|
+
* The default backof policy to use in the returned <i>LazyPromise</i>.
|
|
64
|
+
* @default {null}
|
|
65
|
+
*/
|
|
66
|
+
backoffPolicy?: BackoffPolicy | null;
|
|
67
|
+
/**
|
|
68
|
+
* The default retry policy to use in the returned <i>LazyPromise</i>.
|
|
69
|
+
* @default {null}
|
|
70
|
+
*/
|
|
71
|
+
retryPolicy?: RetryPolicy | null;
|
|
72
|
+
/**
|
|
73
|
+
* The default timeout to use in the returned <i>LazyPromise</i>.
|
|
74
|
+
* @default {null}
|
|
75
|
+
*/
|
|
76
|
+
timeout?: TimeSpan | null;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* @group Derivables
|
|
80
|
+
*/
|
|
81
|
+
export declare class LockProviderFactory<TAdapters extends string> implements ILockProviderFactory<TAdapters> {
|
|
82
|
+
private readonly serde;
|
|
83
|
+
private readonly shouldRegisterErrors?;
|
|
84
|
+
private readonly shouldRegisterEvents?;
|
|
85
|
+
private readonly defaultAdapter?;
|
|
86
|
+
private readonly lockProviderRecord;
|
|
87
|
+
private readonly createOwnerId?;
|
|
88
|
+
private readonly eventBus?;
|
|
89
|
+
private readonly defaultTtl?;
|
|
90
|
+
private readonly defaultExtendTime?;
|
|
91
|
+
private readonly retryAttempts?;
|
|
92
|
+
private readonly backoffPolicy?;
|
|
93
|
+
private readonly retryPolicy?;
|
|
94
|
+
private readonly timeout?;
|
|
95
|
+
constructor(settings: LockProviderFactorySettings<TAdapters>);
|
|
96
|
+
private init;
|
|
97
|
+
use(adapterName?: TAdapters | undefined): IGroupableLockProvider;
|
|
98
|
+
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { ISerializable } from "../../serde/contracts/serializable.contract";
|
|
5
5
|
import type { ISerde } from "../../serde/contracts/serde.contract";
|
|
6
|
+
import type { BaseEvent } from "../../_module";
|
|
6
7
|
/**
|
|
7
8
|
* The <i>SerializableClass</i> contract defines standard way to make a class instance serializable and deserializable.
|
|
8
9
|
* @group Contracts
|
|
@@ -12,10 +13,9 @@ export type SerializableClass<TSerializedValue> = {
|
|
|
12
13
|
deserialize(serializedValue: TSerializedValue): ISerializable<TSerializedValue>;
|
|
13
14
|
};
|
|
14
15
|
/**
|
|
15
|
-
* The <i>SerializableClass</i> contract defines standard way to make a error class instance serializable and deserializable.
|
|
16
16
|
* @group Contracts
|
|
17
17
|
*/
|
|
18
|
-
export type
|
|
18
|
+
export type SerializableEventClass<TFields extends Record<string, unknown>> = new (fields: any) => BaseEvent<TFields>;
|
|
19
19
|
/**
|
|
20
20
|
* @group Contracts
|
|
21
21
|
*/
|
|
@@ -30,6 +30,7 @@ export type ISerdeTransformer<TDeserializedValue, TSerializedValue> = {
|
|
|
30
30
|
* @group Contracts
|
|
31
31
|
*/
|
|
32
32
|
export type IFlexibleSerde<TSerializedValue = unknown> = ISerde<TSerializedValue> & {
|
|
33
|
+
registerEvent<TFields extends Record<string, unknown>>(eventClass: SerializableEventClass<TFields>): IFlexibleSerde<TSerializedValue>;
|
|
33
34
|
/**
|
|
34
35
|
* The <i>registerClass</i> method is used for registering custom class for serialization and deserialization.
|
|
35
36
|
* The <i>class_</i> parameter must be of type <i>{@link SerializableClass}</i>.
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module EventBus
|
|
3
3
|
*/
|
|
4
|
-
import type { IFlexibleSerde, ISerdeTransformer, SerializableClass } from "../../../serde/contracts/_module";
|
|
4
|
+
import type { SerializableEventClass, IFlexibleSerde, ISerdeTransformer, SerializableClass } from "../../../serde/contracts/_module";
|
|
5
5
|
/**
|
|
6
6
|
* This <i>NoOpSerde</i> will do nothing and is used for easily mocking {@link IFlexibleSerde} or {@link ISerde} for testing.
|
|
7
7
|
* @group Adapters
|
|
8
8
|
*/
|
|
9
9
|
export declare class NoOpSerde<TSerializedValue> implements IFlexibleSerde<TSerializedValue> {
|
|
10
|
+
registerEvent<TFields extends Record<string, unknown>>(_eventClass: SerializableEventClass<TFields>): IFlexibleSerde<TSerializedValue>;
|
|
10
11
|
serialize<TValue>(value: TValue): TSerializedValue;
|
|
11
12
|
deserialize<TValue>(serializedValue: TSerializedValue): TValue;
|
|
12
13
|
registerClass<TSerializedClassInstance>(_class: SerializableClass<TSerializedClassInstance>): IFlexibleSerde<TSerializedValue>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module Serde
|
|
3
3
|
*/
|
|
4
|
-
import type { ISerdeTransformer, SerializableClass } from "../../../serde/contracts/_module";
|
|
4
|
+
import type { SerializableEventClass, ISerdeTransformer, SerializableClass } from "../../../serde/contracts/_module";
|
|
5
5
|
import { type IFlexibleSerde } from "../../../serde/contracts/_module";
|
|
6
6
|
/**
|
|
7
7
|
* The <i>SuperJsonSerde</i> class has direct support for the following values
|
|
@@ -41,6 +41,7 @@ export declare class SuperJsonSerde implements IFlexibleSerde<string> {
|
|
|
41
41
|
private registerFloat64Array;
|
|
42
42
|
private registerAll;
|
|
43
43
|
registerClass<TSerializedClassInstance>(class_: SerializableClass<TSerializedClassInstance>): IFlexibleSerde<string>;
|
|
44
|
+
registerEvent<TFields extends Record<string, unknown>>(eventClass: SerializableEventClass<TFields>): IFlexibleSerde<string>;
|
|
44
45
|
serialize<TValue>(value: TValue): string;
|
|
45
46
|
deserialize<TValue>(value: string): TValue;
|
|
46
47
|
}
|
|
@@ -2,3 +2,4 @@ export * from "../../utilities/contracts/serialized-error.contract";
|
|
|
2
2
|
export * from "../../utilities/contracts/buildable.contract";
|
|
3
3
|
export * from "../../utilities/contracts/deinitizable.contract";
|
|
4
4
|
export * from "../../utilities/contracts/initizable.contract";
|
|
5
|
+
export * from "../../utilities/contracts/serde-registrable.contract";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Utilities
|
|
3
|
+
*/
|
|
4
|
+
import type { IFlexibleSerde } from "../../serde/contracts/_module";
|
|
5
|
+
import type { OneOrMore } from "../../utilities/types";
|
|
6
|
+
/**
|
|
7
|
+
* @group Contracts
|
|
8
|
+
*/
|
|
9
|
+
export type ISerdeRegistrable = {
|
|
10
|
+
registerToSerde(serde: OneOrMore<IFlexibleSerde>): void;
|
|
11
|
+
};
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module Utilities
|
|
3
3
|
*/
|
|
4
|
+
import type { LazyPromise } from "../_module";
|
|
4
5
|
export type OneOrMore<TItem> = TItem | [TItem, ...TItem[]];
|
|
5
6
|
export type Lazyable<TValue> = TValue | (() => TValue);
|
|
6
7
|
export type Promisable<TValue> = TValue | PromiseLike<TValue>;
|
|
7
|
-
export type AsyncLazyable<TValue> = TValue | (() => Promisable<TValue>);
|
|
8
|
+
export type AsyncLazyable<TValue> = TValue | LazyPromise<TValue> | (() => Promisable<TValue>);
|
|
8
9
|
export type Result<TValue, TError> = [TValue, null] | [null, TError];
|
|
9
10
|
export type AsyncIterableValue<TInput> = Iterable<TInput> | AsyncIterable<TInput>;
|
|
10
11
|
export type AnyFunction = (...parameters: unknown[]) => unknown;
|
|
11
12
|
export type Func<TArgs extends unknown[], TReturn> = (...args_: TArgs) => TReturn;
|
|
12
13
|
export type GetOrAddValue<TValue> = Awaited<TValue extends AnyFunction ? ReturnType<TValue> : TValue>;
|
|
14
|
+
export type LazyPromiseable<TValue> = (() => PromiseLike<TValue>) | LazyPromise<TValue>;
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@daiso-tech/core",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.22.0",
|
|
5
5
|
"author": "Yousif Abdulkarim",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"main": "./dist/cjs/_module.js",
|
|
8
8
|
"module": "./dist/esm/_module.js",
|
|
9
9
|
"types": "./dist/types/_module.d.ts",
|
|
10
|
-
"homepage": "https://yousif-khalil-abdulkarim.github.io/daiso-core/",
|
|
10
|
+
"homepage": "https://yousif-khalil-abdulkarim.github.io/daiso-core/modules.html",
|
|
11
11
|
"repository": {
|
|
12
12
|
"type": "git",
|
|
13
13
|
"url": "https://github.com/yousif-khalil-abdulkarim/daiso-core.git"
|
|
@@ -53,6 +53,7 @@
|
|
|
53
53
|
"@testcontainers/mongodb": "^10.13.2",
|
|
54
54
|
"@testcontainers/redis": "^10.13.2",
|
|
55
55
|
"@types/better-sqlite3": "^7.6.11",
|
|
56
|
+
"@types/uuid": "^10.0.0",
|
|
56
57
|
"@typescript-eslint/eslint-plugin": "^8.1.0",
|
|
57
58
|
"@typescript-eslint/parser": "^8.1.0",
|
|
58
59
|
"@vitest/eslint-plugin": "^1.0.3",
|
|
@@ -99,6 +100,7 @@
|
|
|
99
100
|
"dependencies": {
|
|
100
101
|
"@libsql/kysely-libsql": "^0.4.0",
|
|
101
102
|
"kysely": "^0.27.0",
|
|
102
|
-
"superjson-cjs": "^2.2.3"
|
|
103
|
+
"superjson-cjs": "^2.2.3",
|
|
104
|
+
"uuid": "^11.0.5"
|
|
103
105
|
}
|
|
104
106
|
}
|