synapse-storage 2.1.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/README.md +1038 -0
- package/dist/_examples/_example5.d.ts +1 -0
- package/dist/_examples/_example5.d.ts.map +1 -0
- package/dist/_examples/_example5.js +184 -0
- package/dist/_examples/_example5.js.map +1 -0
- package/dist/_examples/_example6.d.ts +1 -0
- package/dist/_examples/_example6.d.ts.map +1 -0
- package/dist/_examples/_example6.js +168 -0
- package/dist/_examples/_example6.js.map +1 -0
- package/dist/_examples/example1.d.ts +1 -0
- package/dist/_examples/example1.d.ts.map +1 -0
- package/dist/_examples/example1.js +240 -0
- package/dist/_examples/example1.js.map +1 -0
- package/dist/_examples/example2.d.ts +1 -0
- package/dist/_examples/example2.d.ts.map +1 -0
- package/dist/_examples/example2.js +81 -0
- package/dist/_examples/example2.js.map +1 -0
- package/dist/_examples/example3.d.ts +1 -0
- package/dist/_examples/example3.d.ts.map +1 -0
- package/dist/_examples/example3.js +99 -0
- package/dist/_examples/example3.js.map +1 -0
- package/dist/_examples/example4.d.ts +1 -0
- package/dist/_examples/example4.d.ts.map +1 -0
- package/dist/_examples/example4.js +172 -0
- package/dist/_examples/example4.js.map +1 -0
- package/dist/_examples/example5.d.ts +1 -0
- package/dist/_examples/example5.d.ts.map +1 -0
- package/dist/_examples/example5.js +184 -0
- package/dist/_examples/example5.js.map +1 -0
- package/dist/_examples/example6.d.ts +1 -0
- package/dist/_examples/example6.d.ts.map +1 -0
- package/dist/_examples/example6.js +168 -0
- package/dist/_examples/example6.js.map +1 -0
- package/dist/_examples/plugins.d.ts +1 -0
- package/dist/_examples/plugins.d.ts.map +1 -0
- package/dist/_examples/plugins.js +176 -0
- package/dist/_examples/plugins.js.map +1 -0
- package/dist/_examples/pokemons/PokemonList.d.ts +5 -0
- package/dist/_examples/pokemons/PokemonList.d.ts.map +1 -0
- package/dist/_examples/pokemons/PokemonList.js +166 -0
- package/dist/_examples/pokemons/PokemonList.js.map +1 -0
- package/dist/_examples/pokemons/api.d.ts +8 -0
- package/dist/_examples/pokemons/api.d.ts.map +1 -0
- package/dist/_examples/pokemons/api.js +45 -0
- package/dist/_examples/pokemons/api.js.map +1 -0
- package/dist/_examples/pokemons/app.config.d.ts +15 -0
- package/dist/_examples/pokemons/app.config.d.ts.map +1 -0
- package/dist/_examples/pokemons/app.config.js +15 -0
- package/dist/_examples/pokemons/app.config.js.map +1 -0
- package/dist/_examples/pokemons/dispatchers/pokemon.dispatcher.d.ts +9 -0
- package/dist/_examples/pokemons/dispatchers/pokemon.dispatcher.d.ts.map +1 -0
- package/dist/_examples/pokemons/dispatchers/pokemon.dispatcher.js +122 -0
- package/dist/_examples/pokemons/dispatchers/pokemon.dispatcher.js.map +1 -0
- package/dist/_examples/pokemons/effects/pokemon.effects.d.ts +16 -0
- package/dist/_examples/pokemons/effects/pokemon.effects.d.ts.map +1 -0
- package/dist/_examples/pokemons/effects/pokemon.effects.js +39 -0
- package/dist/_examples/pokemons/effects/pokemon.effects.js.map +1 -0
- package/dist/_examples/pokemons/middlewares/pokenon.middlewares.d.ts +4 -0
- package/dist/_examples/pokemons/middlewares/pokenon.middlewares.d.ts.map +1 -0
- package/dist/_examples/pokemons/middlewares/pokenon.middlewares.js +27 -0
- package/dist/_examples/pokemons/middlewares/pokenon.middlewares.js.map +1 -0
- package/dist/_examples/pokemons/pokemon.dispatcher.d.ts +9 -0
- package/dist/_examples/pokemons/pokemon.dispatcher.d.ts.map +1 -0
- package/dist/_examples/pokemons/pokemon.dispatcher.js +122 -0
- package/dist/_examples/pokemons/pokemon.dispatcher.js.map +1 -0
- package/dist/_examples/pokemons/pokemon.effects.d.ts +5 -0
- package/dist/_examples/pokemons/pokemon.effects.d.ts.map +1 -0
- package/dist/_examples/pokemons/pokemon.effects.js +39 -0
- package/dist/_examples/pokemons/pokemon.effects.js.map +1 -0
- package/dist/_examples/pokemons/pokemon.selectors.d.ts +5 -0
- package/dist/_examples/pokemons/pokemon.selectors.d.ts.map +1 -0
- package/dist/_examples/pokemons/pokemon.selectors.js +10 -0
- package/dist/_examples/pokemons/pokemon.selectors.js.map +1 -0
- package/dist/_examples/pokemons/pokemon.storage.d.ts +3 -0
- package/dist/_examples/pokemons/pokemon.storage.d.ts.map +1 -0
- package/dist/_examples/pokemons/pokemon.storage.js +14 -0
- package/dist/_examples/pokemons/pokemon.storage.js.map +1 -0
- package/dist/_examples/pokemons/pokemon1.selectors.d.ts +5 -0
- package/dist/_examples/pokemons/pokemon1.selectors.d.ts.map +1 -0
- package/dist/_examples/pokemons/pokemon1.selectors.js +8 -0
- package/dist/_examples/pokemons/pokemon1.selectors.js.map +1 -0
- package/dist/_examples/pokemons/pokenon.middlewares.d.ts +4 -0
- package/dist/_examples/pokemons/pokenon.middlewares.d.ts.map +1 -0
- package/dist/_examples/pokemons/pokenon.middlewares.js +27 -0
- package/dist/_examples/pokemons/pokenon.middlewares.js.map +1 -0
- package/dist/_examples/pokemons/selectors/pokemon.selectors.d.ts +5 -0
- package/dist/_examples/pokemons/selectors/pokemon.selectors.d.ts.map +1 -0
- package/dist/_examples/pokemons/selectors/pokemon.selectors.js +10 -0
- package/dist/_examples/pokemons/selectors/pokemon.selectors.js.map +1 -0
- package/dist/_examples/pokemons/selectors/pokemon1.selectors.d.ts +5 -0
- package/dist/_examples/pokemons/selectors/pokemon1.selectors.d.ts.map +1 -0
- package/dist/_examples/pokemons/selectors/pokemon1.selectors.js +8 -0
- package/dist/_examples/pokemons/selectors/pokemon1.selectors.js.map +1 -0
- package/dist/_examples/pokemons/storages/pokemon.storage.d.ts +3 -0
- package/dist/_examples/pokemons/storages/pokemon.storage.d.ts.map +1 -0
- package/dist/_examples/pokemons/storages/pokemon.storage.js +14 -0
- package/dist/_examples/pokemons/storages/pokemon.storage.js.map +1 -0
- package/dist/_examples/pokemons/store.d.ts +1 -0
- package/dist/_examples/pokemons/store.d.ts.map +1 -0
- package/dist/_examples/pokemons/store.js +2 -0
- package/dist/_examples/pokemons/store.js.map +1 -0
- package/dist/_examples/pokemons/store1.d.ts +23 -0
- package/dist/_examples/pokemons/store1.d.ts.map +1 -0
- package/dist/_examples/pokemons/store1.js +35 -0
- package/dist/_examples/pokemons/store1.js.map +1 -0
- package/dist/_examples/pokemons/store2.d.ts +23 -0
- package/dist/_examples/pokemons/store2.d.ts.map +1 -0
- package/dist/_examples/pokemons/store2.js +34 -0
- package/dist/_examples/pokemons/store2.js.map +1 -0
- package/dist/_examples/pokemons/types.d.ts +26 -0
- package/dist/_examples/pokemons/types.d.ts.map +1 -0
- package/dist/_examples/pokemons/types.js +2 -0
- package/dist/_examples/pokemons/types.js.map +1 -0
- package/dist/_utils/chunk.util.d.ts +8 -0
- package/dist/_utils/chunk.util.d.ts.map +1 -0
- package/dist/_utils/chunk.util.js +21 -0
- package/dist/_utils/chunk.util.js.map +1 -0
- package/dist/_utils/deepMerge.util.d.ts +2 -0
- package/dist/_utils/deepMerge.util.d.ts.map +1 -0
- package/dist/_utils/deepMerge.util.js +16 -0
- package/dist/_utils/deepMerge.util.js.map +1 -0
- package/dist/_utils/flatMap.util.d.ts +10 -0
- package/dist/_utils/flatMap.util.d.ts.map +1 -0
- package/dist/_utils/flatMap.util.js +23 -0
- package/dist/_utils/flatMap.util.js.map +1 -0
- package/dist/_utils/index.d.ts +4 -0
- package/dist/_utils/index.d.ts.map +1 -0
- package/dist/_utils/index.js +4 -0
- package/dist/_utils/index.js.map +1 -0
- package/dist/api/api.module.d.ts +38 -0
- package/dist/api/api.module.d.ts.map +1 -0
- package/dist/api/api.module.js +82 -0
- package/dist/api/api.module.js.map +1 -0
- package/dist/api/components/endpoint.d.ts +26 -0
- package/dist/api/components/endpoint.d.ts.map +1 -0
- package/dist/api/components/endpoint.js +253 -0
- package/dist/api/components/endpoint.js.map +1 -0
- package/dist/api/components/query-storage.d.ts +84 -0
- package/dist/api/components/query-storage.d.ts.map +1 -0
- package/dist/api/components/query-storage.js +221 -0
- package/dist/api/components/query-storage.js.map +1 -0
- package/dist/api/example.d.ts +83 -0
- package/dist/api/example.d.ts.map +1 -0
- package/dist/api/example.js +85 -0
- package/dist/api/example.js.map +1 -0
- package/dist/api/index.d.ts +4 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +6 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/types/api.interface.d.ts +108 -0
- package/dist/api/types/api.interface.d.ts.map +1 -0
- package/dist/api/types/api.interface.js +19 -0
- package/dist/api/types/api.interface.js.map +1 -0
- package/dist/api/types/endpoint.interface.d.ts +116 -0
- package/dist/api/types/endpoint.interface.d.ts.map +1 -0
- package/dist/api/types/endpoint.interface.js +2 -0
- package/dist/api/types/endpoint.interface.js.map +1 -0
- package/dist/api/types/query.interface.d.ts +87 -0
- package/dist/api/types/query.interface.d.ts.map +1 -0
- package/dist/api/types/query.interface.js +2 -0
- package/dist/api/types/query.interface.js.map +1 -0
- package/dist/api/utils/api-helpers.d.ts +22 -0
- package/dist/api/utils/api-helpers.d.ts.map +1 -0
- package/dist/api/utils/api-helpers.js +44 -0
- package/dist/api/utils/api-helpers.js.map +1 -0
- package/dist/api/utils/create-header-context.d.ts +10 -0
- package/dist/api/utils/create-header-context.d.ts.map +1 -0
- package/dist/api/utils/create-header-context.js +36 -0
- package/dist/api/utils/create-header-context.js.map +1 -0
- package/dist/api/utils/endpoint-headers.d.ts +23 -0
- package/dist/api/utils/endpoint-headers.d.ts.map +1 -0
- package/dist/api/utils/endpoint-headers.js +57 -0
- package/dist/api/utils/endpoint-headers.js.map +1 -0
- package/dist/api/utils/fetch-base-query.d.ts +9 -0
- package/dist/api/utils/fetch-base-query.d.ts.map +1 -0
- package/dist/api/utils/fetch-base-query.js +181 -0
- package/dist/api/utils/fetch-base-query.js.map +1 -0
- package/dist/api/utils/file-utils.d.ts +43 -0
- package/dist/api/utils/file-utils.d.ts.map +1 -0
- package/dist/api/utils/file-utils.js +108 -0
- package/dist/api/utils/file-utils.js.map +1 -0
- package/dist/api/utils/get-cacheable-headers.d.ts +8 -0
- package/dist/api/utils/get-cacheable-headers.d.ts.map +1 -0
- package/dist/api/utils/get-cacheable-headers.js +21 -0
- package/dist/api/utils/get-cacheable-headers.js.map +1 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +3 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/selector/index.d.ts +3 -0
- package/dist/core/selector/index.d.ts.map +1 -0
- package/dist/core/selector/index.js +2 -0
- package/dist/core/selector/index.js.map +1 -0
- package/dist/core/selector/selector.interface.d.ts +91 -0
- package/dist/core/selector/selector.interface.d.ts.map +1 -0
- package/dist/core/selector/selector.interface.js +2 -0
- package/dist/core/selector/selector.interface.js.map +1 -0
- package/dist/core/selector/selector.module.d.ts +29 -0
- package/dist/core/selector/selector.module.d.ts.map +1 -0
- package/dist/core/selector/selector.module.js +467 -0
- package/dist/core/selector/selector.module.js.map +1 -0
- package/dist/core/storage/adapters/base-storage.service.d.ts +65 -0
- package/dist/core/storage/adapters/base-storage.service.d.ts.map +1 -0
- package/dist/core/storage/adapters/base-storage.service.js +660 -0
- package/dist/core/storage/adapters/base-storage.service.js.map +1 -0
- package/dist/core/storage/adapters/idb.d.ts +52 -0
- package/dist/core/storage/adapters/idb.d.ts.map +1 -0
- package/dist/core/storage/adapters/idb.js +528 -0
- package/dist/core/storage/adapters/idb.js.map +1 -0
- package/dist/core/storage/adapters/indexed-DB.service.d.ts +63 -0
- package/dist/core/storage/adapters/indexed-DB.service.d.ts.map +1 -0
- package/dist/core/storage/adapters/indexed-DB.service.js +595 -0
- package/dist/core/storage/adapters/indexed-DB.service.js.map +1 -0
- package/dist/core/storage/adapters/indexed-DB.service.old.d.ts +38 -0
- package/dist/core/storage/adapters/indexed-DB.service.old.d.ts.map +1 -0
- package/dist/core/storage/adapters/indexed-DB.service.old.js +318 -0
- package/dist/core/storage/adapters/indexed-DB.service.old.js.map +1 -0
- package/dist/core/storage/adapters/indexed-DB.service1.d.ts +38 -0
- package/dist/core/storage/adapters/indexed-DB.service1.d.ts.map +1 -0
- package/dist/core/storage/adapters/indexed-DB.service1.js +318 -0
- package/dist/core/storage/adapters/indexed-DB.service1.js.map +1 -0
- package/dist/core/storage/adapters/indexed-DB.service2.d.ts +61 -0
- package/dist/core/storage/adapters/indexed-DB.service2.d.ts.map +1 -0
- package/dist/core/storage/adapters/indexed-DB.service2.js +596 -0
- package/dist/core/storage/adapters/indexed-DB.service2.js.map +1 -0
- package/dist/core/storage/adapters/local-storage.service.d.ts +21 -0
- package/dist/core/storage/adapters/local-storage.service.d.ts.map +1 -0
- package/dist/core/storage/adapters/local-storage.service.js +99 -0
- package/dist/core/storage/adapters/local-storage.service.js.map +1 -0
- package/dist/core/storage/adapters/memory-storage.service.d.ts +22 -0
- package/dist/core/storage/adapters/memory-storage.service.d.ts.map +1 -0
- package/dist/core/storage/adapters/memory-storage.service.js +99 -0
- package/dist/core/storage/adapters/memory-storage.service.js.map +1 -0
- package/dist/core/storage/adapters/path.utils.d.ts +5 -0
- package/dist/core/storage/adapters/path.utils.d.ts.map +1 -0
- package/dist/core/storage/adapters/path.utils.js +35 -0
- package/dist/core/storage/adapters/path.utils.js.map +1 -0
- package/dist/core/storage/factory/createSynapseStorage.factory.d.ts +1 -0
- package/dist/core/storage/factory/createSynapseStorage.factory.d.ts.map +1 -0
- package/dist/core/storage/factory/createSynapseStorage.factory.js +2 -0
- package/dist/core/storage/factory/createSynapseStorage.factory.js.map +1 -0
- package/dist/core/storage/factory/index.d.ts +2 -0
- package/dist/core/storage/factory/index.d.ts.map +1 -0
- package/dist/core/storage/factory/index.js +2 -0
- package/dist/core/storage/factory/index.js.map +1 -0
- package/dist/core/storage/index.d.ts +11 -0
- package/dist/core/storage/index.d.ts.map +1 -0
- package/dist/core/storage/index.js +12 -0
- package/dist/core/storage/index.js.map +1 -0
- package/dist/core/storage/middlewares/broadcast.middleware.d.ts +9 -0
- package/dist/core/storage/middlewares/broadcast.middleware.d.ts.map +1 -0
- package/dist/core/storage/middlewares/broadcast.middleware.js +115 -0
- package/dist/core/storage/middlewares/broadcast.middleware.js.map +1 -0
- package/dist/core/storage/middlewares/index.d.ts +4 -0
- package/dist/core/storage/middlewares/index.d.ts.map +1 -0
- package/dist/core/storage/middlewares/index.js +3 -0
- package/dist/core/storage/middlewares/index.js.map +1 -0
- package/dist/core/storage/middlewares/storage-batching.middleware.d.ts +7 -0
- package/dist/core/storage/middlewares/storage-batching.middleware.d.ts.map +1 -0
- package/dist/core/storage/middlewares/storage-batching.middleware.js +36 -0
- package/dist/core/storage/middlewares/storage-batching.middleware.js.map +1 -0
- package/dist/core/storage/middlewares/storage-shallow-compare.middleware.d.ts +7 -0
- package/dist/core/storage/middlewares/storage-shallow-compare.middleware.d.ts.map +1 -0
- package/dist/core/storage/middlewares/storage-shallow-compare.middleware.js +46 -0
- package/dist/core/storage/middlewares/storage-shallow-compare.middleware.js.map +1 -0
- package/dist/core/storage/modules/plugin/plugin.interface.d.ts +201 -0
- package/dist/core/storage/modules/plugin/plugin.interface.d.ts.map +1 -0
- package/dist/core/storage/modules/plugin/plugin.interface.js +2 -0
- package/dist/core/storage/modules/plugin/plugin.interface.js.map +1 -0
- package/dist/core/storage/modules/plugin/plugin.service.d.ts +25 -0
- package/dist/core/storage/modules/plugin/plugin.service.d.ts.map +1 -0
- package/dist/core/storage/modules/plugin/plugin.service.js +186 -0
- package/dist/core/storage/modules/plugin/plugin.service.js.map +1 -0
- package/dist/core/storage/storage.interface.d.ts +70 -0
- package/dist/core/storage/storage.interface.d.ts.map +1 -0
- package/dist/core/storage/storage.interface.js +10 -0
- package/dist/core/storage/storage.interface.js.map +1 -0
- package/dist/core/storage/utils/batch.utils.d.ts +33 -0
- package/dist/core/storage/utils/batch.utils.d.ts.map +1 -0
- package/dist/core/storage/utils/batch.utils.js +88 -0
- package/dist/core/storage/utils/batch.utils.js.map +1 -0
- package/dist/core/storage/utils/broadcast.util.d.ts +48 -0
- package/dist/core/storage/utils/broadcast.util.d.ts.map +1 -0
- package/dist/core/storage/utils/broadcast.util.js +162 -0
- package/dist/core/storage/utils/broadcast.util.js.map +1 -0
- package/dist/core/storage/utils/cache.util.d.ts +33 -0
- package/dist/core/storage/utils/cache.util.d.ts.map +1 -0
- package/dist/core/storage/utils/cache.util.js +47 -0
- package/dist/core/storage/utils/cache.util.js.map +1 -0
- package/dist/core/storage/utils/middleware-module.d.ts +46 -0
- package/dist/core/storage/utils/middleware-module.d.ts.map +1 -0
- package/dist/core/storage/utils/middleware-module.js +109 -0
- package/dist/core/storage/utils/middleware-module.js.map +1 -0
- package/dist/core/storage/utils/storage-key.d.ts +11 -0
- package/dist/core/storage/utils/storage-key.d.ts.map +1 -0
- package/dist/core/storage/utils/storage-key.js +21 -0
- package/dist/core/storage/utils/storage-key.js.map +1 -0
- package/dist/core/storage/utils/storage.utils.d.ts +17 -0
- package/dist/core/storage/utils/storage.utils.d.ts.map +1 -0
- package/dist/core/storage/utils/storage.utils.js +57 -0
- package/dist/core/storage/utils/storage.utils.js.map +1 -0
- package/dist/examples/_example5.d.ts +1 -0
- package/dist/examples/_example5.d.ts.map +1 -0
- package/dist/examples/_example5.js +184 -0
- package/dist/examples/_example5.js.map +1 -0
- package/dist/examples/_example6.d.ts +1 -0
- package/dist/examples/_example6.d.ts.map +1 -0
- package/dist/examples/_example6.js +168 -0
- package/dist/examples/_example6.js.map +1 -0
- package/dist/examples/plugins.d.ts +1 -0
- package/dist/examples/plugins.d.ts.map +1 -0
- package/dist/examples/plugins.js +176 -0
- package/dist/examples/plugins.js.map +1 -0
- package/dist/examples/pokemons/PokemonList.d.ts +2 -0
- package/dist/examples/pokemons/PokemonList.d.ts.map +1 -0
- package/dist/examples/pokemons/PokemonList.js +110 -0
- package/dist/examples/pokemons/PokemonList.js.map +1 -0
- package/dist/examples/pokemons/api.d.ts +22 -0
- package/dist/examples/pokemons/api.d.ts.map +1 -0
- package/dist/examples/pokemons/api.js +43 -0
- package/dist/examples/pokemons/api.js.map +1 -0
- package/dist/examples/pokemons/app.config.d.ts +15 -0
- package/dist/examples/pokemons/app.config.d.ts.map +1 -0
- package/dist/examples/pokemons/app.config.js +15 -0
- package/dist/examples/pokemons/app.config.js.map +1 -0
- package/dist/examples/pokemons/dispatchers/pokemon.dispatcher.js +128 -0
- package/dist/examples/pokemons/dispatchers/pokemon.dispatcher.js.map +1 -0
- package/dist/examples/pokemons/effects/pokemon.effects.d.ts +16 -0
- package/dist/examples/pokemons/effects/pokemon.effects.d.ts.map +1 -0
- package/dist/examples/pokemons/effects/pokemon.effects.js +51 -0
- package/dist/examples/pokemons/effects/pokemon.effects.js.map +1 -0
- package/dist/examples/pokemons/middlewares/pokenon.middlewares.d.ts +4 -0
- package/dist/examples/pokemons/middlewares/pokenon.middlewares.d.ts.map +1 -0
- package/dist/examples/pokemons/middlewares/pokenon.middlewares.js +28 -0
- package/dist/examples/pokemons/middlewares/pokenon.middlewares.js.map +1 -0
- package/dist/examples/pokemons/selectors/pokemon.selectors.d.ts +13 -0
- package/dist/examples/pokemons/selectors/pokemon.selectors.d.ts.map +1 -0
- package/dist/examples/pokemons/selectors/pokemon.selectors.js +7 -0
- package/dist/examples/pokemons/selectors/pokemon.selectors.js.map +1 -0
- package/dist/examples/pokemons/storages/pokemon.storage.d.ts +5 -0
- package/dist/examples/pokemons/storages/pokemon.storage.d.ts.map +1 -0
- package/dist/examples/pokemons/storages/pokemon.storage.js +13 -0
- package/dist/examples/pokemons/storages/pokemon.storage.js.map +1 -0
- package/dist/examples/pokemons/store.d.ts +35 -0
- package/dist/examples/pokemons/store.d.ts.map +1 -0
- package/dist/examples/pokemons/store.js +21 -0
- package/dist/examples/pokemons/store.js.map +1 -0
- package/dist/examples/pokemons/types.d.ts +26 -0
- package/dist/examples/pokemons/types.d.ts.map +1 -0
- package/dist/examples/pokemons/types.js +2 -0
- package/dist/examples/pokemons/types.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/react/hooks/index.d.ts +3 -0
- package/dist/react/hooks/index.d.ts.map +1 -0
- package/dist/react/hooks/index.js +3 -0
- package/dist/react/hooks/index.js.map +1 -0
- package/dist/react/hooks/useSelector.d.ts +22 -0
- package/dist/react/hooks/useSelector.d.ts.map +1 -0
- package/dist/react/hooks/useSelector.js +104 -0
- package/dist/react/hooks/useSelector.js.map +1 -0
- package/dist/react/hooks/useStorageSubscribe.d.ts +12 -0
- package/dist/react/hooks/useStorageSubscribe.d.ts.map +1 -0
- package/dist/react/hooks/useStorageSubscribe.js +49 -0
- package/dist/react/hooks/useStorageSubscribe.js.map +1 -0
- package/dist/react/index.d.ts +3 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +3 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/utils/createSynapse.d.ts +47 -0
- package/dist/react/utils/createSynapse.d.ts.map +1 -0
- package/dist/react/utils/createSynapse.js +83 -0
- package/dist/react/utils/createSynapse.js.map +1 -0
- package/dist/react/utils/createSynapseContext.d.ts +29 -0
- package/dist/react/utils/createSynapseContext.d.ts.map +1 -0
- package/dist/react/utils/createSynapseContext.js +112 -0
- package/dist/react/utils/createSynapseContext.js.map +1 -0
- package/dist/react/utils/createSynapseCtx.d.ts +30 -0
- package/dist/react/utils/createSynapseCtx.d.ts.map +1 -0
- package/dist/react/utils/createSynapseCtx.js +124 -0
- package/dist/react/utils/createSynapseCtx.js.map +1 -0
- package/dist/react/utils/index.d.ts +2 -0
- package/dist/react/utils/index.d.ts.map +1 -0
- package/dist/react/utils/index.js +2 -0
- package/dist/react/utils/index.js.map +1 -0
- package/dist/reactive/dispatcher/dispatcher.module.d.ts +195 -0
- package/dist/reactive/dispatcher/dispatcher.module.d.ts.map +1 -0
- package/dist/reactive/dispatcher/dispatcher.module.js +288 -0
- package/dist/reactive/dispatcher/dispatcher.module.js.map +1 -0
- package/dist/reactive/dispatcher/index.d.ts +3 -0
- package/dist/reactive/dispatcher/index.d.ts.map +1 -0
- package/dist/reactive/dispatcher/index.js +3 -0
- package/dist/reactive/dispatcher/index.js.map +1 -0
- package/dist/reactive/dispatcher/middlewares/index.d.ts +2 -0
- package/dist/reactive/dispatcher/middlewares/index.d.ts.map +1 -0
- package/dist/reactive/dispatcher/middlewares/index.js +2 -0
- package/dist/reactive/dispatcher/middlewares/index.js.map +1 -0
- package/dist/reactive/dispatcher/middlewares/logger.middleware.d.ts +31 -0
- package/dist/reactive/dispatcher/middlewares/logger.middleware.d.ts.map +1 -0
- package/dist/reactive/dispatcher/middlewares/logger.middleware.js +126 -0
- package/dist/reactive/dispatcher/middlewares/logger.middleware.js.map +1 -0
- package/dist/reactive/effects/effects.module.d.ts +140 -0
- package/dist/reactive/effects/effects.module.d.ts.map +1 -0
- package/dist/reactive/effects/effects.module.js +263 -0
- package/dist/reactive/effects/effects.module.js.map +1 -0
- package/dist/reactive/effects/index.d.ts +2 -0
- package/dist/reactive/effects/index.d.ts.map +1 -0
- package/dist/reactive/effects/index.js +2 -0
- package/dist/reactive/effects/index.js.map +1 -0
- package/dist/reactive/effects/utils/chunkRequestConsistent.d.ts +12 -0
- package/dist/reactive/effects/utils/chunkRequestConsistent.d.ts.map +1 -0
- package/dist/reactive/effects/utils/chunkRequestConsistent.js +16 -0
- package/dist/reactive/effects/utils/chunkRequestConsistent.js.map +1 -0
- package/dist/reactive/effects/utils/chunkRequestParallel.d.ts +12 -0
- package/dist/reactive/effects/utils/chunkRequestParallel.d.ts.map +1 -0
- package/dist/reactive/effects/utils/chunkRequestParallel.js +13 -0
- package/dist/reactive/effects/utils/chunkRequestParallel.js.map +1 -0
- package/dist/reactive/effects/utils/index.d.ts +3 -0
- package/dist/reactive/effects/utils/index.d.ts.map +1 -0
- package/dist/reactive/effects/utils/index.js +3 -0
- package/dist/reactive/effects/utils/index.js.map +1 -0
- package/dist/reactive/index.d.ts +3 -0
- package/dist/reactive/index.d.ts.map +1 -0
- package/dist/reactive/index.js +3 -0
- package/dist/reactive/index.js.map +1 -0
- package/dist/utils/chunk.util.d.ts +8 -0
- package/dist/utils/chunk.util.d.ts.map +1 -0
- package/dist/utils/chunk.util.js +21 -0
- package/dist/utils/chunk.util.js.map +1 -0
- package/dist/utils/createSynapse.d.ts +52 -0
- package/dist/utils/createSynapse.d.ts.map +1 -0
- package/dist/utils/createSynapse.js +87 -0
- package/dist/utils/createSynapse.js.map +1 -0
- package/dist/utils/deepMerge.util.d.ts +2 -0
- package/dist/utils/deepMerge.util.d.ts.map +1 -0
- package/dist/utils/deepMerge.util.js +16 -0
- package/dist/utils/deepMerge.util.js.map +1 -0
- package/dist/utils/flatMap.util.d.ts +10 -0
- package/dist/utils/flatMap.util.d.ts.map +1 -0
- package/dist/utils/flatMap.util.js +23 -0
- package/dist/utils/flatMap.util.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +111 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export const shallowCompareMiddleware = (options = {}) => {
|
|
2
|
+
const { comparator = (prev, next) => {
|
|
3
|
+
if (prev === next)
|
|
4
|
+
return true;
|
|
5
|
+
if (typeof prev !== 'object' || typeof next !== 'object' || prev === null || next === null) {
|
|
6
|
+
return prev === next;
|
|
7
|
+
}
|
|
8
|
+
const keysA = Object.keys(prev);
|
|
9
|
+
const keysB = Object.keys(next);
|
|
10
|
+
if (keysA.length !== keysB.length)
|
|
11
|
+
return false;
|
|
12
|
+
return keysA.every((key) => Object.prototype.hasOwnProperty.call(next, key) && prev[key] === next[key]);
|
|
13
|
+
}, segments = [], } = options;
|
|
14
|
+
// Кэш последних значений
|
|
15
|
+
const valueCache = new Map();
|
|
16
|
+
return {
|
|
17
|
+
name: 'shallow-compare',
|
|
18
|
+
setup: (api) => { },
|
|
19
|
+
reducer: (api) => (next) => async (action) => {
|
|
20
|
+
// Пропускаем действия кроме set
|
|
21
|
+
if (action.type !== 'set' || (segments.length && !segments.includes(action.metadata?.segment ?? 'default'))) {
|
|
22
|
+
return next(action);
|
|
23
|
+
}
|
|
24
|
+
const cacheKey = action.key;
|
|
25
|
+
const prevValue = valueCache.get(cacheKey);
|
|
26
|
+
const nextValue = action.value;
|
|
27
|
+
// Если значения равны, пропускаем операцию
|
|
28
|
+
if (prevValue !== undefined && comparator(prevValue, nextValue)) {
|
|
29
|
+
console.log('ShallowCompare: значения идентичны, пропускаем операцию', { key: cacheKey, value: nextValue });
|
|
30
|
+
// Добавляем специальный флаг в метаданные, чтобы BaseStorage знал, что значение не изменилось
|
|
31
|
+
return {
|
|
32
|
+
...prevValue,
|
|
33
|
+
__metadata: {
|
|
34
|
+
valueNotChanged: true, // Этот флаг будет проверяться в BaseStorage перед notifySubscribers
|
|
35
|
+
originalValue: prevValue,
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
// Иначе обновляем кэш и продолжаем
|
|
40
|
+
const result = await next(action);
|
|
41
|
+
valueCache.set(cacheKey, nextValue);
|
|
42
|
+
return result;
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=storage-shallow-compare.middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-shallow-compare.middleware.js","sourceRoot":"","sources":["../../../../src/core/storage/middlewares/storage-shallow-compare.middleware.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,UAA2C,EAAE,EAAc,EAAE;IACpG,MAAM,EACJ,UAAU,GAAG,CAAC,IAAS,EAAE,IAAS,EAAE,EAAE;QACpC,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QAE9B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAC3F,OAAO,IAAI,KAAK,IAAI,CAAA;QACtB,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAE/B,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;YAAE,OAAO,KAAK,CAAA;QAE/C,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACzG,CAAC,EACD,QAAQ,GAAG,EAAE,GACd,GAAG,OAAO,CAAA;IAEX,yBAAyB;IACzB,MAAM,UAAU,GAAG,IAAI,GAAG,EAA4B,CAAA;IAEtD,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,CAAC,GAAkB,EAAE,EAAE,GAAE,CAAC;QACjC,OAAO,EAAE,CAAC,GAAkB,EAAE,EAAE,CAAC,CAAC,IAAkB,EAAE,EAAE,CAAC,KAAK,EAAE,MAAqB,EAAE,EAAE;YACvF,gCAAgC;YAChC,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC;gBAC5G,OAAO,IAAI,CAAC,MAAM,CAAC,CAAA;YACrB,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAI,CAAA;YAC5B,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAA;YAE9B,2CAA2C;YAC3C,IAAI,SAAS,KAAK,SAAS,IAAI,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;gBAChE,OAAO,CAAC,GAAG,CAAC,yDAAyD,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;gBAE3G,8FAA8F;gBAC9F,OAAO;oBACL,GAAG,SAAS;oBACZ,UAAU,EAAE;wBACV,eAAe,EAAE,IAAI,EAAE,oEAAoE;wBAC3F,aAAa,EAAE,SAAS;qBACzB;iBACF,CAAA;YACH,CAAC;YAED,mCAAmC;YACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAA;YACjC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;YACnC,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { StorageKeyType } from '../../utils/storage-key';
|
|
2
|
+
/**
|
|
3
|
+
* Контекст выполнения для плагинов
|
|
4
|
+
* Содержит информацию о текущей операции и хранилище
|
|
5
|
+
*/
|
|
6
|
+
export interface PluginContext {
|
|
7
|
+
/** Имя хранилища, к которому применяется плагин */
|
|
8
|
+
storageName: string;
|
|
9
|
+
/** Временная метка выполнения операции (timestamp) */
|
|
10
|
+
timestamp: number;
|
|
11
|
+
/** Дополнительные метаданные операции (могут быть предоставлены хранилищем или другими плагинами) */
|
|
12
|
+
metadata?: Record<string, any>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Базовый интерфейс для всех плагинов
|
|
16
|
+
* Определяет основные свойства и методы жизненного цикла
|
|
17
|
+
*/
|
|
18
|
+
export interface IPlugin {
|
|
19
|
+
/** Уникальное имя плагина */
|
|
20
|
+
name: string;
|
|
21
|
+
/**
|
|
22
|
+
* Метод инициализации плагина
|
|
23
|
+
* Вызывается при добавлении плагина в хранилище или при инициализации хранилища
|
|
24
|
+
*/
|
|
25
|
+
initialize?(): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Метод уничтожения плагина
|
|
28
|
+
* Вызывается при удалении плагина из хранилища или при уничтожении хранилища
|
|
29
|
+
* Используется для освобождения ресурсов и очистки состояния
|
|
30
|
+
*/
|
|
31
|
+
destroy?(): Promise<void>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Интерфейс плагина для хранилища данных
|
|
35
|
+
* Определяет хуки для различных операций хранилища
|
|
36
|
+
*/
|
|
37
|
+
export interface IStoragePlugin extends IPlugin {
|
|
38
|
+
/**
|
|
39
|
+
* Вызывается перед установкой значения в хранилище
|
|
40
|
+
* Позволяет изменить значение до его сохранения
|
|
41
|
+
*
|
|
42
|
+
* @param value Значение, которое будет сохранено
|
|
43
|
+
* @param context Контекст выполнения операции
|
|
44
|
+
* @returns Модифицированное значение для сохранения
|
|
45
|
+
*/
|
|
46
|
+
onBeforeSet?<T>(value: T, context: PluginContext): Promise<T>;
|
|
47
|
+
/**
|
|
48
|
+
* Вызывается после установки значения в хранилище
|
|
49
|
+
* Позволяет выполнить дополнительные действия или модифицировать результат
|
|
50
|
+
*
|
|
51
|
+
* @param key Ключ, по которому было сохранено значение
|
|
52
|
+
* @param value Сохраненное значение
|
|
53
|
+
* @param context Контекст выполнения операции
|
|
54
|
+
* @returns Финальное значение (может быть модифицировано)
|
|
55
|
+
*/
|
|
56
|
+
onAfterSet?<T>(key: StorageKeyType, value: T, context: PluginContext): Promise<T>;
|
|
57
|
+
/**
|
|
58
|
+
* Вызывается перед получением значения из хранилища
|
|
59
|
+
* Позволяет модифицировать запрашиваемый ключ
|
|
60
|
+
*
|
|
61
|
+
* @param key Ключ, по которому запрашивается значение
|
|
62
|
+
* @param context Контекст выполнения операции
|
|
63
|
+
* @returns Возможно модифицированный ключ для запроса
|
|
64
|
+
*/
|
|
65
|
+
onBeforeGet?(key: StorageKeyType, context: PluginContext): Promise<StorageKeyType>;
|
|
66
|
+
/**
|
|
67
|
+
* Вызывается после получения значения из хранилища
|
|
68
|
+
* Позволяет модифицировать полученное значение
|
|
69
|
+
*
|
|
70
|
+
* @param key Ключ, по которому было запрошено значение
|
|
71
|
+
* @param value Полученное значение (undefined, если значение не найдено)
|
|
72
|
+
* @param context Контекст выполнения операции
|
|
73
|
+
* @returns Финальное значение (может быть модифицировано)
|
|
74
|
+
*/
|
|
75
|
+
onAfterGet?<T>(key: StorageKeyType, value: T | undefined, context: PluginContext): Promise<T | undefined>;
|
|
76
|
+
/**
|
|
77
|
+
* Вызывается перед удалением значения из хранилища
|
|
78
|
+
* Позволяет разрешить или запретить удаление
|
|
79
|
+
*
|
|
80
|
+
* @param key Ключ, по которому будет удалено значение
|
|
81
|
+
* @param context Контекст выполнения операции
|
|
82
|
+
* @returns Булево значение, разрешающее (true) или запрещающее (false) удаление
|
|
83
|
+
*/
|
|
84
|
+
onBeforeDelete?(key: StorageKeyType, context: PluginContext): Promise<boolean>;
|
|
85
|
+
/**
|
|
86
|
+
* Вызывается после удаления значения из хранилища
|
|
87
|
+
* Позволяет выполнить дополнительные действия после удаления
|
|
88
|
+
*
|
|
89
|
+
* @param key Ключ, по которому было удалено значение
|
|
90
|
+
* @param context Контекст выполнения операции
|
|
91
|
+
*/
|
|
92
|
+
onAfterDelete?(key: StorageKeyType, context: PluginContext): Promise<void>;
|
|
93
|
+
/**
|
|
94
|
+
* Вызывается перед очисткой хранилища
|
|
95
|
+
* Позволяет выполнить дополнительные действия перед удалением всех данных
|
|
96
|
+
*
|
|
97
|
+
* @param context Контекст выполнения операции
|
|
98
|
+
*/
|
|
99
|
+
onClear?(context: PluginContext): Promise<void>;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Исполнитель плагинов
|
|
103
|
+
* Отвечает за выполнение хуков плагинов в определенной последовательности
|
|
104
|
+
*/
|
|
105
|
+
export interface IPluginExecutor {
|
|
106
|
+
/**
|
|
107
|
+
* Выполняет хуки onBeforeSet всех зарегистрированных плагинов
|
|
108
|
+
*
|
|
109
|
+
* @param value Исходное значение
|
|
110
|
+
* @param metadata Дополнительные метаданные
|
|
111
|
+
* @returns Модифицированное значение после прохождения всех плагинов
|
|
112
|
+
*/
|
|
113
|
+
executeBeforeSet<T>(value: T, metadata?: Record<string, any>): Promise<T>;
|
|
114
|
+
/**
|
|
115
|
+
* Выполняет хуки onAfterSet всех зарегистрированных плагинов
|
|
116
|
+
*
|
|
117
|
+
* @param key Ключ, по которому было сохранено значение
|
|
118
|
+
* @param value Сохраненное значение
|
|
119
|
+
* @param metadata Дополнительные метаданные
|
|
120
|
+
* @returns Финальное значение после прохождения всех плагинов
|
|
121
|
+
*/
|
|
122
|
+
executeAfterSet<T>(key: StorageKeyType, value: T, metadata?: Record<string, any>): Promise<T>;
|
|
123
|
+
/**
|
|
124
|
+
* Выполняет хуки onBeforeGet всех зарегистрированных плагинов
|
|
125
|
+
*
|
|
126
|
+
* @param key Исходный ключ
|
|
127
|
+
* @param metadata Дополнительные метаданные
|
|
128
|
+
* @returns Модифицированный ключ после прохождения всех плагинов
|
|
129
|
+
*/
|
|
130
|
+
executeBeforeGet(key: StorageKeyType, metadata?: Record<string, any>): Promise<StorageKeyType>;
|
|
131
|
+
/**
|
|
132
|
+
* Выполняет хуки onAfterGet всех зарегистрированных плагинов
|
|
133
|
+
*
|
|
134
|
+
* @param key Ключ, по которому было запрошено значение
|
|
135
|
+
* @param value Полученное значение
|
|
136
|
+
* @param metadata Дополнительные метаданные
|
|
137
|
+
* @returns Финальное значение после прохождения всех плагинов
|
|
138
|
+
*/
|
|
139
|
+
executeAfterGet<T>(key: StorageKeyType, value: T | undefined, metadata?: Record<string, any>): Promise<T | undefined>;
|
|
140
|
+
/**
|
|
141
|
+
* Выполняет хуки onBeforeDelete всех зарегистрированных плагинов
|
|
142
|
+
*
|
|
143
|
+
* @param key Ключ, по которому будет удалено значение
|
|
144
|
+
* @param metadata Дополнительные метаданные
|
|
145
|
+
* @returns Результат проверки всех плагинов (false если хотя бы один плагин запретил удаление)
|
|
146
|
+
*/
|
|
147
|
+
executeBeforeDelete(key: StorageKeyType, metadata?: Record<string, any>): Promise<boolean>;
|
|
148
|
+
/**
|
|
149
|
+
* Выполняет хуки onAfterDelete всех зарегистрированных плагинов
|
|
150
|
+
*
|
|
151
|
+
* @param key Ключ, по которому было удалено значение
|
|
152
|
+
* @param metadata Дополнительные метаданные
|
|
153
|
+
*/
|
|
154
|
+
executeAfterDelete(key: StorageKeyType, metadata?: Record<string, any>): Promise<void>;
|
|
155
|
+
/**
|
|
156
|
+
* Выполняет хуки onClear всех зарегистрированных плагинов
|
|
157
|
+
*
|
|
158
|
+
* @param metadata Дополнительные метаданные
|
|
159
|
+
*/
|
|
160
|
+
executeOnClear(metadata?: Record<string, any>): Promise<void>;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Менеджер плагинов
|
|
164
|
+
* Отвечает за регистрацию, получение и удаление плагинов
|
|
165
|
+
*/
|
|
166
|
+
export interface IPluginManager<T extends IPlugin> {
|
|
167
|
+
/**
|
|
168
|
+
* Добавляет плагин в менеджер
|
|
169
|
+
*
|
|
170
|
+
* @param plugin Экземпляр плагина
|
|
171
|
+
*/
|
|
172
|
+
add(plugin: T): Promise<void>;
|
|
173
|
+
/**
|
|
174
|
+
* Удаляет плагин из менеджера по имени
|
|
175
|
+
*
|
|
176
|
+
* @param name Имя плагина
|
|
177
|
+
*/
|
|
178
|
+
remove(name: string): Promise<void>;
|
|
179
|
+
/**
|
|
180
|
+
* Получает плагин по имени
|
|
181
|
+
*
|
|
182
|
+
* @param name Имя плагина
|
|
183
|
+
* @returns Экземпляр плагина или undefined, если плагин не найден
|
|
184
|
+
*/
|
|
185
|
+
get(name: string): T | undefined;
|
|
186
|
+
/**
|
|
187
|
+
* Получает все зарегистрированные плагины
|
|
188
|
+
*
|
|
189
|
+
* @returns Массив всех плагинов
|
|
190
|
+
*/
|
|
191
|
+
getAll(): T[];
|
|
192
|
+
/**
|
|
193
|
+
* Инициализирует все зарегистрированные плагины
|
|
194
|
+
*/
|
|
195
|
+
initialize(): Promise<void>;
|
|
196
|
+
/**
|
|
197
|
+
* Уничтожает все зарегистрированные плагины
|
|
198
|
+
*/
|
|
199
|
+
destroy(): Promise<void>;
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=plugin.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.interface.d.ts","sourceRoot":"","sources":["../../../../../src/core/storage/modules/plugin/plugin.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.interface.js","sourceRoot":"","sources":["../../../../../src/core/storage/modules/plugin/plugin.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ILogger } from '../../storage.interface';
|
|
2
|
+
import { StorageKeyType } from '../../utils/storage-key';
|
|
3
|
+
import { IPluginExecutor, IPluginManager, IStoragePlugin } from './plugin.interface';
|
|
4
|
+
export declare class StoragePluginModule implements IPluginManager<IStoragePlugin>, IPluginExecutor {
|
|
5
|
+
protected readonly parentExecutor?: IPluginExecutor | undefined;
|
|
6
|
+
protected readonly logger?: ILogger | undefined;
|
|
7
|
+
protected readonly storageName: string;
|
|
8
|
+
private plugins;
|
|
9
|
+
constructor(parentExecutor?: IPluginExecutor | undefined, logger?: ILogger | undefined, storageName?: string);
|
|
10
|
+
private createContext;
|
|
11
|
+
add(plugin: IStoragePlugin): Promise<void>;
|
|
12
|
+
remove(name: string): Promise<void>;
|
|
13
|
+
get(name: string): IStoragePlugin | undefined;
|
|
14
|
+
getAll(): IStoragePlugin[];
|
|
15
|
+
initialize(): Promise<void>;
|
|
16
|
+
destroy(): Promise<void>;
|
|
17
|
+
executeBeforeSet<T>(value: T, metadata?: Record<string, any>): Promise<T>;
|
|
18
|
+
executeAfterSet<T>(key: StorageKeyType, value: T, metadata?: Record<string, any>): Promise<T>;
|
|
19
|
+
executeBeforeGet(key: StorageKeyType, metadata?: Record<string, any>): Promise<StorageKeyType>;
|
|
20
|
+
executeAfterGet<T>(key: StorageKeyType, value: T | undefined, metadata?: Record<string, any>): Promise<T | undefined>;
|
|
21
|
+
executeBeforeDelete(key: StorageKeyType, metadata?: Record<string, any>): Promise<boolean>;
|
|
22
|
+
executeAfterDelete(key: StorageKeyType, metadata?: Record<string, any>): Promise<void>;
|
|
23
|
+
executeOnClear(metadata?: Record<string, any>): Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=plugin.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.service.d.ts","sourceRoot":"","sources":["../../../../../src/core/storage/modules/plugin/plugin.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAiB,MAAM,oBAAoB,CAAA;AAEnG,qBAAa,mBAAoB,YAAW,cAAc,CAAC,cAAc,CAAC,EAAE,eAAe;IAIvF,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,eAAe;IACnD,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO;IACnC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM;IALxC,OAAO,CAAC,OAAO,CAAoC;gBAG9B,cAAc,CAAC,EAAE,eAAe,YAAA,EAChC,MAAM,CAAC,EAAE,OAAO,YAAA,EAChB,WAAW,GAAE,MAAkB;IAGpD,OAAO,CAAC,aAAa;IAQR,GAAG,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAe1C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASzC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI7C,MAAM,IAAI,cAAc,EAAE;IAIpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAsBzE,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAsB7F,gBAAgB,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAsB9F,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAsBrH,mBAAmB,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAsB1F,kBAAkB,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBtF,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAkB3E"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
export class StoragePluginModule {
|
|
2
|
+
parentExecutor;
|
|
3
|
+
logger;
|
|
4
|
+
storageName;
|
|
5
|
+
plugins = new Map();
|
|
6
|
+
constructor(parentExecutor, logger, storageName = 'default') {
|
|
7
|
+
this.parentExecutor = parentExecutor;
|
|
8
|
+
this.logger = logger;
|
|
9
|
+
this.storageName = storageName;
|
|
10
|
+
}
|
|
11
|
+
createContext(metadata) {
|
|
12
|
+
return {
|
|
13
|
+
storageName: this.storageName,
|
|
14
|
+
timestamp: Date.now(),
|
|
15
|
+
metadata,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
async add(plugin) {
|
|
19
|
+
if (this.plugins.has(plugin.name)) {
|
|
20
|
+
this.logger?.warn(`Плагин ${plugin.name} уже был зарегистрирован`);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
await plugin.initialize?.();
|
|
25
|
+
this.plugins.set(plugin.name, plugin);
|
|
26
|
+
this.logger?.info('Плагин добавлен', { name: plugin.name });
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
throw error;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
async remove(name) {
|
|
33
|
+
const plugin = this.plugins.get(name);
|
|
34
|
+
if (plugin) {
|
|
35
|
+
await plugin.destroy?.();
|
|
36
|
+
this.plugins.delete(name);
|
|
37
|
+
this.logger?.info('Плагин удален', { name });
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
get(name) {
|
|
41
|
+
return this.plugins.get(name);
|
|
42
|
+
}
|
|
43
|
+
getAll() {
|
|
44
|
+
return Array.from(this.plugins.values());
|
|
45
|
+
}
|
|
46
|
+
async initialize() {
|
|
47
|
+
for (const plugin of this.plugins.values()) {
|
|
48
|
+
await plugin.initialize?.();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
async destroy() {
|
|
52
|
+
await Promise.all(Array.from(this.plugins.values()).map((plugin) => plugin.destroy?.() ?? Promise.resolve()));
|
|
53
|
+
this.plugins.clear();
|
|
54
|
+
}
|
|
55
|
+
async executeBeforeSet(value, metadata) {
|
|
56
|
+
let result = value;
|
|
57
|
+
const context = this.createContext(metadata);
|
|
58
|
+
if (this.parentExecutor) {
|
|
59
|
+
result = await this.parentExecutor.executeBeforeSet(result, context);
|
|
60
|
+
}
|
|
61
|
+
for (const plugin of this.plugins.values()) {
|
|
62
|
+
if (plugin.onBeforeSet) {
|
|
63
|
+
try {
|
|
64
|
+
result = await plugin.onBeforeSet(result, context);
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
this.logger?.error(`Ошибка в плагине ${plugin.name} onBeforeSet`, { error });
|
|
68
|
+
throw error;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return result;
|
|
73
|
+
}
|
|
74
|
+
async executeAfterSet(key, value, metadata) {
|
|
75
|
+
let result = value;
|
|
76
|
+
const context = this.createContext(metadata);
|
|
77
|
+
if (this.parentExecutor) {
|
|
78
|
+
result = await this.parentExecutor.executeAfterSet(key, result, context);
|
|
79
|
+
}
|
|
80
|
+
for (const plugin of this.plugins.values()) {
|
|
81
|
+
if (plugin.onAfterSet) {
|
|
82
|
+
try {
|
|
83
|
+
result = await plugin.onAfterSet(key, result, context);
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
this.logger?.error(`Ошибка в плагине ${plugin.name} onAfterSet`, { key, error });
|
|
87
|
+
throw error;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return result;
|
|
92
|
+
}
|
|
93
|
+
async executeBeforeGet(key, metadata) {
|
|
94
|
+
let processedKey = key;
|
|
95
|
+
const context = this.createContext(metadata);
|
|
96
|
+
if (this.parentExecutor) {
|
|
97
|
+
processedKey = await this.parentExecutor.executeBeforeGet(processedKey, context);
|
|
98
|
+
}
|
|
99
|
+
for (const plugin of this.plugins.values()) {
|
|
100
|
+
if (plugin.onBeforeGet) {
|
|
101
|
+
try {
|
|
102
|
+
processedKey = await plugin.onBeforeGet(processedKey, context);
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
this.logger?.error(`Ошибка в плагине ${plugin.name} onBeforeGet`, { key, error });
|
|
106
|
+
throw error;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return processedKey;
|
|
111
|
+
}
|
|
112
|
+
async executeAfterGet(key, value, metadata) {
|
|
113
|
+
let result = value;
|
|
114
|
+
const context = this.createContext(metadata);
|
|
115
|
+
if (this.parentExecutor) {
|
|
116
|
+
result = await this.parentExecutor.executeAfterGet(key, result, context);
|
|
117
|
+
}
|
|
118
|
+
console.log('executeAfterGet', key, value, metadata);
|
|
119
|
+
for (const plugin of this.plugins.values()) {
|
|
120
|
+
if (plugin.onAfterGet) {
|
|
121
|
+
try {
|
|
122
|
+
result = await plugin.onAfterGet(key, result, context);
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
this.logger?.error(`Ошибка в плагине ${plugin.name} onAfterGet`, { key, error });
|
|
126
|
+
throw error;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return result;
|
|
131
|
+
}
|
|
132
|
+
async executeBeforeDelete(key, metadata) {
|
|
133
|
+
let canDelete = true;
|
|
134
|
+
const context = this.createContext(metadata);
|
|
135
|
+
if (this.parentExecutor) {
|
|
136
|
+
canDelete = await this.parentExecutor.executeBeforeDelete(key, context);
|
|
137
|
+
}
|
|
138
|
+
for (const plugin of this.plugins.values()) {
|
|
139
|
+
if (plugin.onBeforeDelete) {
|
|
140
|
+
try {
|
|
141
|
+
canDelete = (await plugin.onBeforeDelete(key, context)) && canDelete;
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
this.logger?.error(`Ошибка в плагине ${plugin.name} onBeforeDelete`, { key, error });
|
|
145
|
+
throw error;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return canDelete;
|
|
150
|
+
}
|
|
151
|
+
async executeAfterDelete(key, metadata) {
|
|
152
|
+
const context = this.createContext(metadata);
|
|
153
|
+
if (this.parentExecutor) {
|
|
154
|
+
await this.parentExecutor.executeAfterDelete(key, context);
|
|
155
|
+
}
|
|
156
|
+
for (const plugin of this.plugins.values()) {
|
|
157
|
+
if (plugin.onAfterDelete) {
|
|
158
|
+
try {
|
|
159
|
+
await plugin.onAfterDelete(key, context);
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
this.logger?.error(`Ошибка в плагине ${plugin.name} onAfterDelete`, { key, error });
|
|
163
|
+
throw error;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
async executeOnClear(metadata) {
|
|
169
|
+
const context = this.createContext(metadata);
|
|
170
|
+
if (this.parentExecutor) {
|
|
171
|
+
await this.parentExecutor.executeOnClear(context);
|
|
172
|
+
}
|
|
173
|
+
for (const plugin of this.plugins.values()) {
|
|
174
|
+
if (plugin.onClear) {
|
|
175
|
+
try {
|
|
176
|
+
await plugin.onClear(context);
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
this.logger?.error(`Ошибка в плагине ${plugin.name} onClear`, { error });
|
|
180
|
+
throw error;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=plugin.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.service.js","sourceRoot":"","sources":["../../../../../src/core/storage/modules/plugin/plugin.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { IndexedDBConfig } from './adapters/indexed-DB.service.old';
|
|
2
|
+
import { BatchingMiddlewareOptions, ShallowCompareMiddlewareOptions } from './middlewares';
|
|
3
|
+
import { Middleware } from './utils/middleware-module';
|
|
4
|
+
import { StorageKeyType } from './utils/storage-key';
|
|
5
|
+
export interface IStorage<T extends Record<string, any> = any> {
|
|
6
|
+
name: string;
|
|
7
|
+
get<R>(key: StorageKeyType): Promise<R | undefined>;
|
|
8
|
+
getState(): Promise<T>;
|
|
9
|
+
set<R>(key: StorageKeyType, value: R): Promise<void>;
|
|
10
|
+
update(updater: (state: T) => void): Promise<void>;
|
|
11
|
+
has(key: StorageKeyType): Promise<boolean>;
|
|
12
|
+
delete(key: StorageKeyType): Promise<void>;
|
|
13
|
+
clear(): Promise<void>;
|
|
14
|
+
keys(): Promise<string[]>;
|
|
15
|
+
destroy(): Promise<void>;
|
|
16
|
+
subscribeToAll(callback: (event: {
|
|
17
|
+
type: string;
|
|
18
|
+
changedPaths?: string[];
|
|
19
|
+
key?: StorageKeyType[] | StorageKeyType;
|
|
20
|
+
value?: any;
|
|
21
|
+
}) => void): VoidFunction;
|
|
22
|
+
initialize(): Promise<this>;
|
|
23
|
+
subscribe(key: StorageKeyType, callback: (value: any) => void): VoidFunction;
|
|
24
|
+
subscribe<R>(pathSelector: (state: T) => R, callback: (value: R) => void): VoidFunction;
|
|
25
|
+
}
|
|
26
|
+
export declare enum StorageEvents {
|
|
27
|
+
STORAGE_UPDATE = "storage:update",
|
|
28
|
+
STORAGE_DELETE = "storage:delete",
|
|
29
|
+
STORAGE_PATCH = "storage:patch",
|
|
30
|
+
STORAGE_SELECT = "storage:select",
|
|
31
|
+
STORAGE_CLEAR = "storage:clear",
|
|
32
|
+
STORAGE_DESTROY = "storage:destroy"
|
|
33
|
+
}
|
|
34
|
+
export interface StorageEvent<T = any> {
|
|
35
|
+
type: string;
|
|
36
|
+
payload?: T;
|
|
37
|
+
metadata?: Record<string, any>;
|
|
38
|
+
}
|
|
39
|
+
export interface IEventEmitter {
|
|
40
|
+
emit(event: StorageEvent): Promise<void>;
|
|
41
|
+
}
|
|
42
|
+
export interface ILogger {
|
|
43
|
+
debug(message: string, meta?: Record<string, any>): void;
|
|
44
|
+
info(message: string, meta?: Record<string, any>): void;
|
|
45
|
+
warn(message: string, meta?: Record<string, any>): void;
|
|
46
|
+
error(message: string, meta?: Record<string, any>): void;
|
|
47
|
+
}
|
|
48
|
+
export interface DefaultMiddlewares {
|
|
49
|
+
batching: (options?: BatchingMiddlewareOptions) => Middleware;
|
|
50
|
+
shallowCompare: (options?: ShallowCompareMiddlewareOptions) => Middleware;
|
|
51
|
+
}
|
|
52
|
+
export type GetDefaultMiddleware = () => DefaultMiddlewares;
|
|
53
|
+
export type ConfigureMiddlewares = (getDefaultMiddleware: GetDefaultMiddleware) => Middleware[];
|
|
54
|
+
export interface StorageConfig {
|
|
55
|
+
name: string;
|
|
56
|
+
initialState?: Record<string, any>;
|
|
57
|
+
middlewares?: ConfigureMiddlewares;
|
|
58
|
+
}
|
|
59
|
+
export type StorageType = 'memory' | 'localStorage' | 'indexedDB';
|
|
60
|
+
export interface MemoryStorageConfig extends StorageConfig {
|
|
61
|
+
type: 'memory';
|
|
62
|
+
}
|
|
63
|
+
export interface LocalStorageConfig extends StorageConfig {
|
|
64
|
+
type: 'localStorage';
|
|
65
|
+
}
|
|
66
|
+
export interface IndexedDBStorageConfig extends StorageConfig {
|
|
67
|
+
type: 'indexedDB';
|
|
68
|
+
options: IndexedDBConfig;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=storage.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.interface.d.ts","sourceRoot":"","sources":["../../../src/core/storage/storage.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export var StorageEvents;
|
|
2
|
+
(function (StorageEvents) {
|
|
3
|
+
StorageEvents["STORAGE_UPDATE"] = "storage:update";
|
|
4
|
+
StorageEvents["STORAGE_DELETE"] = "storage:delete";
|
|
5
|
+
StorageEvents["STORAGE_PATCH"] = "storage:patch";
|
|
6
|
+
StorageEvents["STORAGE_SELECT"] = "storage:select";
|
|
7
|
+
StorageEvents["STORAGE_CLEAR"] = "storage:clear";
|
|
8
|
+
StorageEvents["STORAGE_DESTROY"] = "storage:destroy";
|
|
9
|
+
})(StorageEvents || (StorageEvents = {}));
|
|
10
|
+
//# sourceMappingURL=storage.interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.interface.js","sourceRoot":"","sources":["../../../src/core/storage/storage.interface.ts"],"names":[],"mappings":"AAuBA,MAAM,CAAN,IAAY,aAOX;AAPD,WAAY,aAAa;IACvB,kDAAiC,CAAA;IACjC,kDAAiC,CAAA;IACjC,gDAA+B,CAAA;IAC/B,kDAAiC,CAAA;IACjC,gDAA+B,CAAA;IAC/B,oDAAmC,CAAA;AACrC,CAAC,EAPW,aAAa,KAAb,aAAa,QAOxB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { StorageAction } from './middleware-module';
|
|
2
|
+
import { StorageKeyType } from './storage-key';
|
|
3
|
+
export interface BatchOptions<T> {
|
|
4
|
+
batchSize?: number;
|
|
5
|
+
batchDelay?: number;
|
|
6
|
+
onBatch?: (items: T[]) => Promise<void>;
|
|
7
|
+
getSegmentKey?: (item: T) => StorageKeyType;
|
|
8
|
+
shouldBatch?: (item: T) => boolean;
|
|
9
|
+
mergeItems?: (items: T[]) => T[];
|
|
10
|
+
}
|
|
11
|
+
export interface BatchQueueItem<T extends StorageAction> {
|
|
12
|
+
action: T;
|
|
13
|
+
baseOperation: () => Promise<any>;
|
|
14
|
+
resolve: (value: any) => void;
|
|
15
|
+
reject: (error: any) => void;
|
|
16
|
+
}
|
|
17
|
+
export declare class BatchProcessor<T extends StorageAction> {
|
|
18
|
+
private readonly options;
|
|
19
|
+
private queues;
|
|
20
|
+
private timeouts;
|
|
21
|
+
constructor(options: BatchOptions<T>);
|
|
22
|
+
add(action: T, baseOperation: () => Promise<any>): Promise<any>;
|
|
23
|
+
private addToQueue;
|
|
24
|
+
private processBatch;
|
|
25
|
+
private clearSegmentTimeout;
|
|
26
|
+
private setSegmentTimeout;
|
|
27
|
+
flush(): Promise<void>;
|
|
28
|
+
clear(): void;
|
|
29
|
+
getState(): {
|
|
30
|
+
[segment: string]: number;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=batch.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.utils.d.ts","sourceRoot":"","sources":["../../../../src/core/storage/utils/batch.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAEvC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,cAAc,CAAA;IAE3C,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAA;IAElC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAA;CACjC;AAED,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,aAAa;IACrD,MAAM,EAAE,CAAC,CAAA;IACT,aAAa,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;IACjC,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA;IAC7B,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA;CAC7B;AAED,qBAAa,cAAc,CAAC,CAAC,SAAS,aAAa;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IAEnD,OAAO,CAAC,MAAM,CAAiD;IAE/D,OAAO,CAAC,QAAQ,CAA4C;gBAEhD,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IAWvB,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAW5E,OAAO,CAAC,UAAU;YAiBJ,YAAY;IAqB1B,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,iBAAiB;IAQZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B,KAAK,IAAI,IAAI;IAMb,QAAQ,IAAI;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;CAOjD"}
|