@daiso-tech/core 0.16.0 → 0.17.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/async/_module.js +1 -1
- package/dist/cjs/async/_module.js.map +1 -1
- package/dist/cjs/async/backof-policies/_module.js +1 -0
- package/dist/cjs/async/backof-policies/_module.js.map +1 -1
- package/dist/cjs/async/utilities/_module.js +3 -0
- package/dist/cjs/async/utilities/_module.js.map +1 -1
- package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js +16 -22
- package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
- package/dist/cjs/cache/contracts/cache.events.js +168 -0
- package/dist/cjs/cache/contracts/cache.events.js.map +1 -1
- package/dist/cjs/cache/implementations/_shared/_module.js +1 -0
- package/dist/cjs/cache/implementations/_shared/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
- package/dist/cjs/cache/implementations/_shared/cache.test-suite.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +7 -5
- package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/_module.js +2 -1
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +56 -0
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +18 -14
- package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/_module.js +1 -0
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +26 -0
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +11 -3
- package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/_module.js +2 -1
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +44 -0
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +21 -8
- package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js +1 -0
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +32 -0
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +27 -20
- package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js +1 -0
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +56 -0
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +19 -15
- package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
- package/dist/cjs/cache/implementations/derivables/_module.js +3 -1
- package/dist/cjs/cache/implementations/derivables/_module.js.map +1 -1
- package/dist/cjs/cache/implementations/derivables/cache-factory-settings.js +65 -0
- package/dist/cjs/cache/implementations/derivables/cache-factory-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/derivables/cache-factory.js +29 -15
- package/dist/cjs/cache/implementations/derivables/cache-factory.js.map +1 -1
- package/dist/cjs/cache/implementations/derivables/cache-settings.js +56 -0
- package/dist/cjs/cache/implementations/derivables/cache-settings.js.map +1 -0
- package/dist/cjs/cache/implementations/derivables/cache.js +104 -93
- package/dist/cjs/cache/implementations/derivables/cache.js.map +1 -1
- package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js +1 -1
- package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js.map +1 -1
- package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js +1 -1
- package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js.map +1 -1
- package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js +1 -1
- package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js.map +1 -1
- package/dist/cjs/collection/implementations/async-iterable-collection/async-iterable-collection.js +20 -11
- package/dist/cjs/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
- package/dist/cjs/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
- package/dist/cjs/collection/implementations/list-collection/list-collection.js.map +1 -1
- package/dist/cjs/event-bus/contracts/_module.js +2 -2
- package/dist/cjs/event-bus/contracts/_module.js.map +1 -1
- package/dist/cjs/event-bus/contracts/_shared.js +7 -0
- package/dist/cjs/event-bus/contracts/_shared.js.map +1 -1
- package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +52 -36
- package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
- package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js +156 -120
- package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +2 -1
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -1
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +26 -0
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +1 -0
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +17 -9
- package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
- package/dist/cjs/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +3 -3
- package/dist/cjs/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -1
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js +2 -1
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -1
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +38 -0
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +1 -0
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +9 -5
- package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
- package/dist/cjs/event-bus/implementations/derivables/_module.js +3 -1
- package/dist/cjs/event-bus/implementations/derivables/_module.js.map +1 -1
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory-settings.js +59 -0
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory-settings.js.map +1 -0
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js +28 -16
- package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js.map +1 -1
- package/dist/cjs/event-bus/implementations/derivables/event-bus-settings.js +56 -0
- package/dist/cjs/event-bus/implementations/derivables/event-bus-settings.js.map +1 -0
- package/dist/cjs/event-bus/implementations/derivables/event-bus.js +74 -62
- package/dist/cjs/event-bus/implementations/derivables/event-bus.js.map +1 -1
- package/dist/cjs/serde/contracts/_module.js +4 -0
- package/dist/cjs/serde/contracts/_module.js.map +1 -1
- package/dist/cjs/serde/contracts/deserializer.contract.js +3 -0
- package/dist/cjs/serde/contracts/deserializer.contract.js.map +1 -0
- package/dist/cjs/serde/contracts/flexible-serde.contract.js +3 -0
- package/dist/cjs/serde/contracts/flexible-serde.contract.js.map +1 -0
- package/dist/cjs/serde/contracts/serializable.contract.js +3 -0
- package/dist/cjs/serde/contracts/serializable.contract.js.map +1 -0
- package/dist/cjs/serde/contracts/serializer.contract.js +3 -0
- package/dist/cjs/serde/contracts/serializer.contract.js.map +1 -0
- package/dist/cjs/serde/implementations/_module.js +1 -0
- package/dist/cjs/serde/implementations/_module.js.map +1 -1
- package/dist/cjs/serde/implementations/_shared/test-utilities/_module.js +1 -0
- package/dist/cjs/serde/implementations/_shared/test-utilities/_module.js.map +1 -1
- package/dist/cjs/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js +53 -0
- package/dist/cjs/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js.map +1 -0
- package/dist/cjs/serde/implementations/_shared/test-utilities/serde.test-suite.js +35 -60
- package/dist/cjs/serde/implementations/_shared/test-utilities/serde.test-suite.js.map +1 -1
- package/dist/cjs/serde/implementations/no-op-serde/_module.js +18 -0
- package/dist/cjs/serde/implementations/no-op-serde/_module.js.map +1 -0
- package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js +16 -0
- package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js.map +1 -0
- package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js +5 -2
- package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js.map +1 -1
- package/dist/cjs/utilities/contracts/_module.js +1 -0
- package/dist/cjs/utilities/contracts/_module.js.map +1 -1
- package/dist/cjs/utilities/contracts/buildable.contract.js +3 -0
- package/dist/cjs/utilities/contracts/buildable.contract.js.map +1 -0
- package/dist/cjs/utilities/errors.js +10 -10
- package/dist/cjs/utilities/errors.js.map +1 -1
- package/dist/cjs/utilities/functions.js +4 -0
- package/dist/cjs/utilities/functions.js.map +1 -1
- package/dist/cjs/utilities/time-span/time-span.js.map +1 -1
- package/dist/esm/async/_module.js +1 -1
- package/dist/esm/async/_module.js.map +1 -1
- package/dist/esm/async/backof-policies/_module.js +1 -0
- package/dist/esm/async/backof-policies/_module.js.map +1 -1
- package/dist/esm/async/utilities/_module.js +3 -0
- package/dist/esm/async/utilities/_module.js.map +1 -1
- package/dist/esm/async/utilities/lazy-promise/lazy-promise.js +16 -22
- package/dist/esm/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
- package/dist/esm/cache/contracts/cache.events.js +158 -0
- package/dist/esm/cache/contracts/cache.events.js.map +1 -1
- package/dist/esm/cache/implementations/_shared/_module.js +1 -0
- package/dist/esm/cache/implementations/_shared/_module.js.map +1 -1
- package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
- package/dist/esm/cache/implementations/_shared/cache.test-suite.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +7 -5
- package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js +2 -1
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +52 -0
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +1 -0
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +17 -13
- package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js +1 -0
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +22 -0
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +1 -0
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +11 -3
- package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js +2 -1
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +40 -0
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +1 -0
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +21 -8
- package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js +1 -0
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +28 -0
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +1 -0
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +28 -21
- package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js +1 -0
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -1
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +52 -0
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +1 -0
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +17 -13
- package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
- package/dist/esm/cache/implementations/derivables/_module.js +3 -1
- package/dist/esm/cache/implementations/derivables/_module.js.map +1 -1
- package/dist/esm/cache/implementations/derivables/cache-factory-settings.js +61 -0
- package/dist/esm/cache/implementations/derivables/cache-factory-settings.js.map +1 -0
- package/dist/esm/cache/implementations/derivables/cache-factory.js +30 -16
- package/dist/esm/cache/implementations/derivables/cache-factory.js.map +1 -1
- package/dist/esm/cache/implementations/derivables/cache-settings.js +52 -0
- package/dist/esm/cache/implementations/derivables/cache-settings.js.map +1 -0
- package/dist/esm/cache/implementations/derivables/cache.js +82 -71
- package/dist/esm/cache/implementations/derivables/cache.js.map +1 -1
- package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js +1 -1
- package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js.map +1 -1
- package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js +1 -1
- package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js.map +1 -1
- package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js +1 -1
- package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js.map +1 -1
- package/dist/esm/collection/implementations/async-iterable-collection/async-iterable-collection.js +20 -11
- package/dist/esm/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
- package/dist/esm/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
- package/dist/esm/collection/implementations/list-collection/list-collection.js.map +1 -1
- package/dist/esm/event-bus/contracts/_module.js +2 -2
- package/dist/esm/event-bus/contracts/_module.js.map +1 -1
- package/dist/esm/event-bus/contracts/_shared.js +5 -0
- package/dist/esm/event-bus/contracts/_shared.js.map +1 -1
- package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +45 -29
- package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
- package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js +143 -107
- package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +2 -1
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -1
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +22 -0
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +1 -0
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +17 -9
- package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
- package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +3 -3
- package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -1
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js +2 -1
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -1
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +34 -0
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +1 -0
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +10 -6
- package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
- package/dist/esm/event-bus/implementations/derivables/_module.js +3 -1
- package/dist/esm/event-bus/implementations/derivables/_module.js.map +1 -1
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory-settings.js +55 -0
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory-settings.js.map +1 -0
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js +29 -17
- package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js.map +1 -1
- package/dist/esm/event-bus/implementations/derivables/event-bus-settings.js +52 -0
- package/dist/esm/event-bus/implementations/derivables/event-bus-settings.js.map +1 -0
- package/dist/esm/event-bus/implementations/derivables/event-bus.js +76 -64
- package/dist/esm/event-bus/implementations/derivables/event-bus.js.map +1 -1
- package/dist/esm/serde/contracts/_module.js +4 -0
- package/dist/esm/serde/contracts/_module.js.map +1 -1
- package/dist/esm/serde/contracts/deserializer.contract.js +1 -0
- package/dist/esm/serde/contracts/deserializer.contract.js.map +1 -0
- package/dist/esm/serde/contracts/flexible-serde.contract.js +1 -0
- package/dist/esm/serde/contracts/flexible-serde.contract.js.map +1 -0
- package/dist/esm/serde/contracts/serializable.contract.js +1 -0
- package/dist/esm/serde/contracts/serializable.contract.js.map +1 -0
- package/dist/esm/serde/contracts/serializer.contract.js +1 -0
- package/dist/esm/serde/contracts/serializer.contract.js.map +1 -0
- package/dist/esm/serde/implementations/_module.js +1 -0
- package/dist/esm/serde/implementations/_module.js.map +1 -1
- package/dist/esm/serde/implementations/_shared/test-utilities/_module.js +1 -0
- package/dist/esm/serde/implementations/_shared/test-utilities/_module.js.map +1 -1
- package/dist/esm/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js +50 -0
- package/dist/esm/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js.map +1 -0
- package/dist/esm/serde/implementations/_shared/test-utilities/serde.test-suite.js +35 -60
- package/dist/esm/serde/implementations/_shared/test-utilities/serde.test-suite.js.map +1 -1
- package/dist/esm/serde/implementations/no-op-serde/_module.js +2 -0
- package/dist/esm/serde/implementations/no-op-serde/_module.js.map +1 -0
- package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js +12 -0
- package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js.map +1 -0
- package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js +5 -2
- package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js.map +1 -1
- package/dist/esm/utilities/contracts/_module.js +1 -0
- package/dist/esm/utilities/contracts/_module.js.map +1 -1
- package/dist/esm/utilities/contracts/buildable.contract.js +1 -0
- package/dist/esm/utilities/contracts/buildable.contract.js.map +1 -0
- package/dist/esm/utilities/errors.js +7 -7
- package/dist/esm/utilities/errors.js.map +1 -1
- package/dist/esm/utilities/functions.js +3 -0
- package/dist/esm/utilities/functions.js.map +1 -1
- package/dist/esm/utilities/time-span/time-span.js.map +1 -1
- package/dist/types/async/_module.d.ts +1 -1
- package/dist/types/async/backof-policies/_module.d.ts +1 -1
- package/dist/types/async/utilities/_module.d.ts +3 -0
- package/dist/types/async/utilities/lazy-promise/lazy-promise.d.ts +36 -46
- package/dist/types/cache/contracts/cache-factory.contract.d.ts +10 -23
- package/dist/types/cache/contracts/cache.contract.d.ts +365 -8
- package/dist/types/cache/contracts/cache.events.d.ts +156 -38
- package/dist/types/cache/implementations/_shared/_module.d.ts +1 -0
- package/dist/types/cache/implementations/_shared/cache-adapter.test-suite.d.ts +10 -8
- package/dist/types/cache/implementations/_shared/cache.test-suite.d.ts +15 -9
- package/dist/types/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.d.ts +4 -3
- package/dist/types/cache/implementations/adapters/libsql-cache-adapter/_module.d.ts +2 -1
- package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.d.ts +48 -0
- package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.d.ts +49 -37
- package/dist/types/cache/implementations/adapters/memory-cache-adapter/_module.d.ts +1 -0
- package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.d.ts +27 -0
- package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +41 -17
- package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/_module.d.ts +2 -1
- package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.d.ts +51 -0
- package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +59 -45
- package/dist/types/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +1 -1
- package/dist/types/cache/implementations/adapters/redis-cache-adapter/_module.d.ts +1 -0
- package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.d.ts +32 -0
- package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +41 -26
- package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/_module.d.ts +1 -0
- package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.d.ts +48 -0
- package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +49 -37
- package/dist/types/cache/implementations/derivables/_module.d.ts +3 -1
- package/dist/types/cache/implementations/derivables/cache-factory-settings.d.ts +77 -0
- package/dist/types/cache/implementations/derivables/cache-factory.d.ts +59 -39
- package/dist/types/cache/implementations/derivables/cache-settings.d.ts +68 -0
- package/dist/types/cache/implementations/derivables/cache.d.ts +65 -36
- package/dist/types/collection/contracts/async-collection.contract.d.ts +1247 -666
- package/dist/types/collection/contracts/collection.contract.d.ts +1195 -638
- package/dist/types/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.d.ts +1 -1
- package/dist/types/collection/implementations/async-iterable-collection/async-iterable-collection.d.ts +190 -4
- package/dist/types/collection/implementations/iterable-collection/iterable-collection.d.ts +138 -1
- package/dist/types/collection/implementations/list-collection/list-collection.d.ts +138 -1
- package/dist/types/event-bus/contracts/_module.d.ts +2 -2
- package/dist/types/event-bus/contracts/_shared.d.ts +11 -0
- package/dist/types/event-bus/contracts/event-bus-adapter.contract.d.ts +4 -6
- package/dist/types/event-bus/contracts/event-bus-factory.contract.d.ts +37 -31
- package/dist/types/event-bus/contracts/event-bus.contract.d.ts +24 -32
- package/dist/types/event-bus/implementations/_shared/event-bus-adapter.test-suite.d.ts +6 -3
- package/dist/types/event-bus/implementations/_shared/event-bus.test-suite.d.ts +10 -7
- package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/_module.d.ts +2 -1
- package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.d.ts +28 -0
- package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.d.ts +48 -22
- package/dist/types/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.d.ts +4 -4
- package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.d.ts +2 -1
- package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.d.ts +36 -0
- package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.d.ts +43 -31
- package/dist/types/event-bus/implementations/derivables/_module.d.ts +3 -1
- package/dist/types/event-bus/implementations/derivables/event-bus-factory-settings.d.ts +70 -0
- package/dist/types/event-bus/implementations/derivables/event-bus-factory.d.ts +39 -22
- package/dist/types/event-bus/implementations/derivables/event-bus-settings.d.ts +58 -0
- package/dist/types/event-bus/implementations/derivables/event-bus.d.ts +34 -22
- package/dist/types/serde/contracts/_module.d.ts +4 -0
- package/dist/types/serde/contracts/deserializer.contract.d.ts +13 -0
- package/dist/types/serde/contracts/flexible-serde.contract.d.ts +56 -0
- package/dist/types/serde/contracts/serde.contract.d.ts +5 -36
- package/dist/types/serde/contracts/serializable.contract.d.ts +10 -0
- package/dist/types/serde/contracts/serializer.contract.d.ts +10 -0
- package/dist/types/serde/implementations/_module.d.ts +1 -0
- package/dist/types/serde/implementations/_shared/test-utilities/_module.d.ts +1 -0
- package/dist/types/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.d.ts +17 -0
- package/dist/types/serde/implementations/_shared/test-utilities/serde.test-suite.d.ts +2 -3
- package/dist/types/serde/implementations/no-op-serde/_module.d.ts +1 -0
- package/dist/types/serde/implementations/no-op-serde/no-op-serde.d.ts +13 -0
- package/dist/types/serde/implementations/super-json-serde/super-json-serde.d.ts +1 -1
- package/dist/types/utilities/contracts/_module.d.ts +1 -0
- package/dist/types/utilities/contracts/buildable.contract.d.ts +9 -0
- package/dist/types/utilities/errors.d.ts +3 -3
- package/dist/types/utilities/functions.d.ts +4 -0
- package/dist/types/utilities/time-span/time-span.d.ts +2 -2
- package/dist/types/utilities/types.d.ts +0 -1
- package/package.json +1 -1
|
@@ -1,19 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module EventBus
|
|
3
3
|
*/
|
|
4
|
-
import type { IGroupableEventBus,
|
|
5
|
-
|
|
6
|
-
* @group Derivables
|
|
7
|
-
*/
|
|
8
|
-
export type EventBusDrivers<TAdapters extends string = string> = Partial<Record<TAdapters, IEventBusAdapter>>;
|
|
9
|
-
/**
|
|
10
|
-
* @group Derivables
|
|
11
|
-
*/
|
|
12
|
-
export type EventBusFactorySettings<TAdapters extends string = string> = {
|
|
13
|
-
drivers: EventBusDrivers<TAdapters>;
|
|
14
|
-
defaultDriver?: NoInfer<TAdapters>;
|
|
15
|
-
rootGroup?: string;
|
|
16
|
-
};
|
|
4
|
+
import type { IGroupableEventBus, IEventBusFactory, BaseEvent } from "../../../event-bus/contracts/_module";
|
|
5
|
+
import { type EventBusFactorySettings, EventBusFactorySettingsBuilder } from "../../../event-bus/implementations/derivables/event-bus-factory-settings";
|
|
17
6
|
/**
|
|
18
7
|
* @group Derivables
|
|
19
8
|
* @example
|
|
@@ -22,22 +11,50 @@ export type EventBusFactorySettings<TAdapters extends string = string> = {
|
|
|
22
11
|
* import Redis from "ioredis"
|
|
23
12
|
*
|
|
24
13
|
* const eventBusFactory = new EventBusFactory({
|
|
25
|
-
*
|
|
26
|
-
* memory: new MemoryEventBusAdapter(),
|
|
14
|
+
* adapters: {
|
|
15
|
+
* memory: new MemoryEventBusAdapter({ rootGroup: "@global" }),
|
|
27
16
|
* redis: new RedisPubSubEventBusAdapter({
|
|
28
17
|
* dispatcherClient: new Redis(),
|
|
29
18
|
* listenerClient: new Redis(),
|
|
19
|
+
* serde: new SuperJsonSerde(),
|
|
20
|
+
* rootGroup: "@global"
|
|
30
21
|
* }),
|
|
31
22
|
* },
|
|
32
|
-
*
|
|
23
|
+
* defaultAdapter: "memory",
|
|
33
24
|
* });
|
|
34
25
|
* ```
|
|
35
26
|
*/
|
|
36
|
-
export declare class EventBusFactory<TAdapters extends string = string
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
27
|
+
export declare class EventBusFactory<TAdapters extends string = string> implements IEventBusFactory<TAdapters> {
|
|
28
|
+
/**
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* import { EventBusFactory, SuperJsonSerde. MemoryEventBusAdapter, RedisPubSubEventBusAdapter, EventBus, MemoryEventBusAdapter } from "@daiso-tech/core";
|
|
32
|
+
* import Redis from "ioredis";
|
|
33
|
+
*
|
|
34
|
+
* const cacheFactory = new EventBusFactory(
|
|
35
|
+
* EventBusFactory
|
|
36
|
+
* .settings()
|
|
37
|
+
* .setAdapter("memory", new MemoryEventBusAdapter({
|
|
38
|
+
* rootGroup: "@global"
|
|
39
|
+
* }))
|
|
40
|
+
* .setAdapter("redis", new RedisPubSubEventBusAdapter({
|
|
41
|
+
* dispatcherClient: new Redis("YOUR_REDIS_CONNECTION"),
|
|
42
|
+
* listenerClient: new Redis("YOUR_REDIS_CONNECTION")
|
|
43
|
+
* serde: new SuperJsonSerde(),
|
|
44
|
+
* rootGroup: "@global"
|
|
45
|
+
* }))
|
|
46
|
+
* .setDefaultAdapter("memory")
|
|
47
|
+
* .build()
|
|
48
|
+
* );
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
static settings<TAdapters extends string, TSettings extends EventBusFactorySettings<TAdapters>>(): EventBusFactorySettingsBuilder<TSettings>;
|
|
52
|
+
private readonly adapters;
|
|
53
|
+
private readonly defaultAdapter?;
|
|
54
|
+
private readonly retryAttempts?;
|
|
55
|
+
private readonly backoffPolicy?;
|
|
56
|
+
private readonly retryPolicy?;
|
|
57
|
+
private readonly timeout?;
|
|
40
58
|
constructor(settings: EventBusFactorySettings<TAdapters>);
|
|
41
|
-
use(
|
|
42
|
-
withType<TOutput extends BaseEvents = TEvents>(): IEventBusFactory<TAdapters, TOutput>;
|
|
59
|
+
use<TEvents extends BaseEvent = BaseEvent>(adapterName?: TAdapters | undefined): IGroupableEventBus<TEvents>;
|
|
43
60
|
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module EventBus
|
|
3
|
+
*/
|
|
4
|
+
import type { BackoffPolicy, RetryPolicy } from "../../../async/_module";
|
|
5
|
+
import { type IGroupableEventBus, type IEventBusAdapter } from "../../../event-bus/contracts/_module";
|
|
6
|
+
import type { IBuildable, TimeSpan } from "../../../utilities/_module";
|
|
7
|
+
/**
|
|
8
|
+
* @group Derivables
|
|
9
|
+
*/
|
|
10
|
+
export type EventBusSettings = {
|
|
11
|
+
adapter: IEventBusAdapter;
|
|
12
|
+
/**
|
|
13
|
+
* The default retry attempt to use in the returned <i>LazyPromise</i>.
|
|
14
|
+
*/
|
|
15
|
+
retryAttempts?: number | null;
|
|
16
|
+
/**
|
|
17
|
+
* The default backof policy to use in the returned <i>LazyPromise</i>.
|
|
18
|
+
*/
|
|
19
|
+
backoffPolicy?: BackoffPolicy | null;
|
|
20
|
+
/**
|
|
21
|
+
* The default retry policy to use in the returned <i>LazyPromise</i>.
|
|
22
|
+
*/
|
|
23
|
+
retryPolicy?: RetryPolicy | null;
|
|
24
|
+
/**
|
|
25
|
+
* The default timeout to use in the returned <i>LazyPromise</i>.
|
|
26
|
+
*/
|
|
27
|
+
timeout?: TimeSpan | null;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* The <i>EventBusSettingsBuilder</i> is an immutable builder class, meaning that each method invocation creates a new instance.
|
|
31
|
+
* @group Derivables
|
|
32
|
+
*/
|
|
33
|
+
export declare class EventBusSettingsBuilder<TSettings extends Partial<EventBusSettings>> implements IBuildable<EventBusSettings> {
|
|
34
|
+
private readonly settings;
|
|
35
|
+
constructor(settings?: TSettings);
|
|
36
|
+
setAdapter(adapter: IEventBusAdapter): EventBusSettingsBuilder<TSettings & {
|
|
37
|
+
adapter: IEventBusAdapter;
|
|
38
|
+
}>;
|
|
39
|
+
setEventBus(eventBus: IGroupableEventBus<any>): EventBusSettingsBuilder<TSettings & {
|
|
40
|
+
eventBus: IGroupableEventBus<any>;
|
|
41
|
+
}>;
|
|
42
|
+
setDefultTtl(time: TimeSpan): EventBusSettingsBuilder<TSettings & {
|
|
43
|
+
defaultTtl: TimeSpan;
|
|
44
|
+
}>;
|
|
45
|
+
setRetryAttempts(attempts: number | null): EventBusSettingsBuilder<TSettings & {
|
|
46
|
+
retryAttempts: number | null;
|
|
47
|
+
}>;
|
|
48
|
+
setBackoffPolicy(policy: BackoffPolicy | null): EventBusSettingsBuilder<TSettings & {
|
|
49
|
+
backoffPolicy: BackoffPolicy | null;
|
|
50
|
+
}>;
|
|
51
|
+
setRetryPolicy(policy: RetryPolicy | null): EventBusSettingsBuilder<TSettings & {
|
|
52
|
+
retryPolicy: RetryPolicy | null;
|
|
53
|
+
}>;
|
|
54
|
+
setTimeout(time: TimeSpan | null): EventBusSettingsBuilder<TSettings & {
|
|
55
|
+
timeout: TimeSpan | null;
|
|
56
|
+
}>;
|
|
57
|
+
build(this: EventBusSettingsBuilder<EventBusSettings>): EventBusSettings;
|
|
58
|
+
}
|
|
@@ -1,35 +1,47 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module EventBus
|
|
3
3
|
*/
|
|
4
|
-
import type { LazyPromiseSettings } from "../../../async/_module";
|
|
5
4
|
import { LazyPromise } from "../../../async/_module";
|
|
6
|
-
import type {
|
|
7
|
-
import { type IEventBus, type IGroupableEventBus, type
|
|
5
|
+
import type { EventClass, EventInstance, Unsubscribe } from "../../../event-bus/contracts/_module";
|
|
6
|
+
import { type IEventBus, type IGroupableEventBus, type Listener, type BaseEvent } from "../../../event-bus/contracts/_module";
|
|
8
7
|
import type { OneOrMore } from "../../../utilities/_module";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
*/
|
|
12
|
-
export type EventBusSettings = {
|
|
13
|
-
lazyPromiseSettings?: LazyPromiseSettings;
|
|
14
|
-
};
|
|
8
|
+
import type { EventBusSettings } from "../../../event-bus/implementations/derivables/event-bus-settings";
|
|
9
|
+
import { EventBusSettingsBuilder } from "../../../event-bus/implementations/derivables/event-bus-settings";
|
|
15
10
|
/**
|
|
16
11
|
* <i>EventBus</i> class can be derived from any <i>{@link IEventBusAdapter}</i>.
|
|
17
12
|
* @group Derivables
|
|
18
13
|
*/
|
|
19
|
-
export declare class EventBus<TEvents extends
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
14
|
+
export declare class EventBus<TEvents extends BaseEvent = BaseEvent> implements IGroupableEventBus<TEvents> {
|
|
15
|
+
/**
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* import { EventBus, MemoryEventBusAdapter } from "@daiso-tech/core";
|
|
19
|
+
*
|
|
20
|
+
* const cache = new EventBus(
|
|
21
|
+
* EventBus
|
|
22
|
+
* .settings()
|
|
23
|
+
* .setAdapter(new MemoryEventBusAdapter({ rootGroup: "@global" }))
|
|
24
|
+
* .build()
|
|
25
|
+
* );
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
static settings<TSettings extends Partial<EventBusSettings>>(): EventBusSettingsBuilder<TSettings>;
|
|
29
|
+
private readonly adapter;
|
|
30
|
+
private readonly retryAttempts;
|
|
31
|
+
private readonly backoffPolicy;
|
|
32
|
+
private readonly retryPolicy;
|
|
33
|
+
private readonly timeout;
|
|
34
|
+
constructor(settings: EventBusSettings);
|
|
23
35
|
private createLayPromise;
|
|
24
36
|
withGroup(group: OneOrMore<string>): IEventBus<TEvents>;
|
|
25
37
|
getGroup(): string;
|
|
26
|
-
addListener<
|
|
27
|
-
removeListener<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
38
|
+
addListener<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
39
|
+
removeListener<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
40
|
+
addListenerMany<TEventClass extends EventClass<TEvents>>(events: TEventClass[], listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
41
|
+
removeListenerMany<TEventClass extends EventClass<TEvents>>(events: TEventClass[], listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
42
|
+
listenOnce<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
43
|
+
subscribe<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<Unsubscribe>;
|
|
44
|
+
subscribeMany<TEventClass extends EventClass<TEvents>>(events: TEventClass[], listener: Listener<EventInstance<TEventClass>>): LazyPromise<Unsubscribe>;
|
|
45
|
+
dispatchMany(events: TEvents[]): LazyPromise<void>;
|
|
46
|
+
dispatch(event: TEvents): LazyPromise<void>;
|
|
35
47
|
}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
+
export * from "../../serde/contracts/deserializer.contract";
|
|
2
|
+
export * from "../../serde/contracts/flexible-serde.contract";
|
|
1
3
|
export * from "../../serde/contracts/serde.contract";
|
|
2
4
|
export * from "../../serde/contracts/serde.errors";
|
|
5
|
+
export * from "../../serde/contracts/serializable.contract";
|
|
6
|
+
export * from "../../serde/contracts/serializer.contract";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Serde
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* The <i>IDeserializer</i> contract defines a standard way to deserialize plain data, excluding support for custom classes.
|
|
6
|
+
* @group Contracts
|
|
7
|
+
*/
|
|
8
|
+
export type IDeserializer<TSerializedValue = unknown> = {
|
|
9
|
+
/**
|
|
10
|
+
* @throws {DeserializationError} {@link DeserializationError}
|
|
11
|
+
*/
|
|
12
|
+
deserialize<TValue>(serializedValue: TSerializedValue): TValue;
|
|
13
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Serde
|
|
3
|
+
*/
|
|
4
|
+
import type { ISerializable } from "../../serde/contracts/serializable.contract";
|
|
5
|
+
import type { ISerde } from "../../serde/contracts/serde.contract";
|
|
6
|
+
/**
|
|
7
|
+
* The <i>SerializableClass</i> contract defines standard way to make a class instance serializable and deserializable.
|
|
8
|
+
* @group Contracts
|
|
9
|
+
*/
|
|
10
|
+
export type SerializableClass<TSerializedValue> = {
|
|
11
|
+
new (...arguments_: any[]): ISerializable<TSerializedValue>;
|
|
12
|
+
deserialize(serializedValue: TSerializedValue): ISerializable<TSerializedValue>;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* The <i>IFlexibleSerde</i> contract defines a standard way to serialize and deserialize both plain data and custom classes.
|
|
16
|
+
* @group Contracts
|
|
17
|
+
*/
|
|
18
|
+
export type IFlexibleSerde<TSerializedValue = unknown> = ISerde<TSerializedValue> & {
|
|
19
|
+
/**
|
|
20
|
+
* The <i>registerClass</i> method is used for registering custom class for serialization and deserialization.
|
|
21
|
+
* The <i>class_</i> parameter must be of type <i>{@link SerializableClass}</i>.
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* import type { IFlexibleSerde } from "@daiso-tech/core";
|
|
25
|
+
*
|
|
26
|
+
* type SerializedUser = {
|
|
27
|
+
* name: string;
|
|
28
|
+
* age: number;
|
|
29
|
+
* };
|
|
30
|
+
*
|
|
31
|
+
* class User implements ISerializable<SerializedUser> {
|
|
32
|
+
* static deserialize(serializedUser: SerializedUser): User {
|
|
33
|
+
* return new User(serializedUser.name, serializedUser.age);
|
|
34
|
+
* }
|
|
35
|
+
*
|
|
36
|
+
* constructor(public readonly name: string, public readonly age: number) {}
|
|
37
|
+
*
|
|
38
|
+
* getInfo(): string {
|
|
39
|
+
* return `name: ${this.name}, age: ${this.age}`;
|
|
40
|
+
* }
|
|
41
|
+
* }
|
|
42
|
+
*
|
|
43
|
+
* function main(serde: IFlexibleSerde) {
|
|
44
|
+
* // You must register the class before trying to serialize or deserialize it.
|
|
45
|
+
* serde.registerClass(User);
|
|
46
|
+
*
|
|
47
|
+
* const user = serde.deserialize(serde.serialize(new User("Jacob", 50)));
|
|
48
|
+
*
|
|
49
|
+
* console.log(user.getInfo());
|
|
50
|
+
* // "name: Jacob, age: 50"
|
|
51
|
+
* }
|
|
52
|
+
*
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
registerClass<TSerializedClassInstance>(class_: SerializableClass<TSerializedClassInstance>): IFlexibleSerde<TSerializedValue>;
|
|
56
|
+
};
|
|
@@ -1,41 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @
|
|
3
|
-
*/
|
|
4
|
-
export type ISerializer<TSerializedValue = unknown> = {
|
|
5
|
-
/**
|
|
6
|
-
* @throws {SerializationError} {@link SerializationError}
|
|
7
|
-
*/
|
|
8
|
-
serialize<TValue>(value: TValue): TSerializedValue;
|
|
9
|
-
};
|
|
10
|
-
/**
|
|
11
|
-
* @group Contracts
|
|
12
|
-
*/
|
|
13
|
-
export type IDeserde<TSerializedValue = unknown> = {
|
|
14
|
-
/**
|
|
15
|
-
* @throws {DeserializationError} {@link DeserializationError}
|
|
16
|
-
*/
|
|
17
|
-
deserialize<TValue>(serializedValue: TSerializedValue): TValue;
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* @group Contracts
|
|
21
|
-
*/
|
|
22
|
-
export type ISerde<TSerializedValue = unknown> = ISerializer<TSerializedValue> & IDeserde<TSerializedValue>;
|
|
23
|
-
/**
|
|
24
|
-
* @group Contracts
|
|
25
|
-
*/
|
|
26
|
-
export type ISerializable<TSerializedValue> = {
|
|
27
|
-
serialize(): TSerializedValue;
|
|
28
|
-
};
|
|
29
|
-
/**
|
|
30
|
-
* @group Contracts
|
|
2
|
+
* @module Serde
|
|
31
3
|
*/
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
deserialize(serializedValue: TSerializedValue): ISerializable<TSerializedValue>;
|
|
35
|
-
};
|
|
4
|
+
import type { ISerializer } from "../../serde/contracts/serializer.contract";
|
|
5
|
+
import type { IDeserializer } from "../../serde/contracts/deserializer.contract";
|
|
36
6
|
/**
|
|
7
|
+
* The <i>ISerde</i> contract defines a standard way to serialize and deserialize plain data, excluding support for custom classes.
|
|
37
8
|
* @group Contracts
|
|
38
9
|
*/
|
|
39
|
-
export type
|
|
40
|
-
registerClass<TSerializedValue>(class_: SerializableClass<TSerializedValue>): void;
|
|
41
|
-
};
|
|
10
|
+
export type ISerde<TSerializedValue = unknown> = ISerializer<TSerializedValue> & IDeserializer<TSerializedValue>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The <i>ISerializer</i> contract defines a standard way to serialize plain data, excluding support for custom classes.
|
|
3
|
+
* @group Contracts
|
|
4
|
+
*/
|
|
5
|
+
export type ISerializer<TSerializedValue = unknown> = {
|
|
6
|
+
/**
|
|
7
|
+
* @throws {SerializationError} {@link SerializationError}
|
|
8
|
+
*/
|
|
9
|
+
serialize<TValue>(value: TValue): TSerializedValue;
|
|
10
|
+
};
|
|
@@ -3,3 +3,4 @@ export * from "../../serde/implementations/mongodb-serde/_module";
|
|
|
3
3
|
export * from "../../serde/implementations/redis-serde/_module";
|
|
4
4
|
export * from "../../serde/implementations/sql-serde/_module";
|
|
5
5
|
export * from "../../serde/implementations/super-json-serde/_module";
|
|
6
|
+
export * from "../../serde/implementations/no-op-serde/_module";
|
package/dist/types/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Serde
|
|
3
|
+
*/
|
|
4
|
+
import { type TestAPI, type ExpectStatic } from "vitest";
|
|
5
|
+
import type { IFlexibleSerde } from "../../../../serde/contracts/_module";
|
|
6
|
+
/**
|
|
7
|
+
* @group Utilities
|
|
8
|
+
*/
|
|
9
|
+
export type FlexibleSerdeSuiteSettings = {
|
|
10
|
+
expect: ExpectStatic;
|
|
11
|
+
test: TestAPI;
|
|
12
|
+
createAdapter: () => IFlexibleSerde;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* @group Utilities
|
|
16
|
+
*/
|
|
17
|
+
export declare function flexibleSerdeTestSuite(settings: FlexibleSerdeSuiteSettings): void;
|
|
@@ -2,15 +2,14 @@
|
|
|
2
2
|
* @module Serde
|
|
3
3
|
*/
|
|
4
4
|
import { type TestAPI, type ExpectStatic } from "vitest";
|
|
5
|
-
import {
|
|
6
|
-
import { type Promisable } from "../../../../utilities/_module";
|
|
5
|
+
import type { ISerde } from "../../../../serde/contracts/_module";
|
|
7
6
|
/**
|
|
8
7
|
* @group Utilities
|
|
9
8
|
*/
|
|
10
9
|
export type SerdeSuiteSettings = {
|
|
11
10
|
expect: ExpectStatic;
|
|
12
11
|
test: TestAPI;
|
|
13
|
-
createAdapter: () =>
|
|
12
|
+
createAdapter: () => ISerde;
|
|
14
13
|
};
|
|
15
14
|
/**
|
|
16
15
|
* @group Utilities
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../../../serde/implementations/no-op-serde/no-op-serde";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module EventBus
|
|
3
|
+
*/
|
|
4
|
+
import type { IFlexibleSerde, SerializableClass } from "../../../serde/contracts/_module";
|
|
5
|
+
/**
|
|
6
|
+
* This <i>NoOpSerde</i> will do nothing and is used for easily mocking {@link IFlexibleSerde} or {@link ISerde} for testing.
|
|
7
|
+
* @group Adapters
|
|
8
|
+
*/
|
|
9
|
+
export declare class NoOpSerde<TSerializedValue> implements IFlexibleSerde<TSerializedValue> {
|
|
10
|
+
serialize<TValue>(value: TValue): TSerializedValue;
|
|
11
|
+
deserialize<TValue>(serializedValue: TSerializedValue): TValue;
|
|
12
|
+
registerClass<TSerializedClassInstance>(_class: SerializableClass<TSerializedClassInstance>): IFlexibleSerde<TSerializedValue>;
|
|
13
|
+
}
|
|
@@ -19,7 +19,7 @@ export declare class SuperJsonSerde implements IFlexibleSerde<string> {
|
|
|
19
19
|
private registerFloat32Array;
|
|
20
20
|
private registerFloat64Array;
|
|
21
21
|
private registerAll;
|
|
22
|
-
registerClass<
|
|
22
|
+
registerClass<TSerializedClassInstance>(class_: SerializableClass<TSerializedClassInstance>): IFlexibleSerde<string>;
|
|
23
23
|
serialize<TValue>(value: TValue): string;
|
|
24
24
|
deserialize<TValue>(value: string): TValue;
|
|
25
25
|
}
|
|
@@ -10,12 +10,12 @@ export declare class FactoryError extends Error {
|
|
|
10
10
|
/**
|
|
11
11
|
* @group Errors
|
|
12
12
|
*/
|
|
13
|
-
export declare class
|
|
13
|
+
export declare class DefaultAdapterNotDefinedError extends FactoryError {
|
|
14
14
|
constructor(factoryName: string);
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
17
|
* @group Errors
|
|
18
18
|
*/
|
|
19
|
-
export declare class
|
|
20
|
-
constructor(
|
|
19
|
+
export declare class UnregisteredAdapterError extends FactoryError {
|
|
20
|
+
constructor(adapterName: string);
|
|
21
21
|
}
|
|
@@ -23,3 +23,7 @@ export declare function isObjectEmpty(object: Record<string | number | symbol, a
|
|
|
23
23
|
* @internal
|
|
24
24
|
*/
|
|
25
25
|
export declare function simplifyGroupName(name: OneOrMore<string>): string;
|
|
26
|
+
/**
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
export declare function getConstructorName(instance: object): string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module Utilities
|
|
3
3
|
*/
|
|
4
|
-
import type { ISerializable } from "../../_module";
|
|
4
|
+
import type { ISerializable } from "../../serde/contracts/_module";
|
|
5
5
|
/**
|
|
6
6
|
* @group Time utilities
|
|
7
7
|
*/
|
|
@@ -20,7 +20,7 @@ export declare class TimeSpan implements ISerializable<ISerializedTimeSpan> {
|
|
|
20
20
|
private static hourInMilliseconds;
|
|
21
21
|
private static dayInMilliseconds;
|
|
22
22
|
static deserialize(serializedValue: ISerializedTimeSpan): TimeSpan;
|
|
23
|
-
constructor(
|
|
23
|
+
private constructor();
|
|
24
24
|
serialize(): ISerializedTimeSpan;
|
|
25
25
|
static fromMilliseconds(milliseconds: number): TimeSpan;
|
|
26
26
|
static fromSeconds(seconds: number): TimeSpan;
|