synapse-storage 3.0.2 → 3.0.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/api.cjs +1 -0
- package/dist/api.d.cts +365 -0
- package/dist/api.d.ts +365 -0
- package/dist/api.js +1 -0
- package/dist/chunk-22J2S57D.cjs +1 -0
- package/dist/chunk-4USKKL5R.js +1 -0
- package/dist/chunk-5X65PSGD.js +1 -0
- package/dist/chunk-635Q6YJZ.cjs +1 -0
- package/dist/chunk-6RNZVHSR.js +1 -0
- package/dist/chunk-FW5NGLPP.cjs +1 -0
- package/dist/chunk-IPUPRMZK.js +1 -0
- package/dist/chunk-NMDHQXMS.cjs +1 -0
- package/dist/chunk-S7X7IDBT.js +1 -0
- package/dist/chunk-UFBCZ25Y.cjs +1 -0
- package/dist/chunk-VSIVOWZF.cjs +1 -0
- package/dist/chunk-WC5TDS6C.cjs +1 -0
- package/dist/chunk-WQNH3LVB.js +1 -0
- package/dist/chunk-ZE2EJX2Y.js +1 -0
- package/dist/core.cjs +1 -0
- package/dist/core.d.cts +397 -0
- package/dist/{core/storage/modules/plugin/plugin.interface.d.ts → core.d.ts} +203 -7
- package/dist/core.js +1 -0
- package/dist/dispatcher.module-CdpmkplA.d.cts +363 -0
- package/dist/dispatcher.module-jd8U_ZEs.d.ts +363 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.cts +10 -0
- package/dist/index.d.ts +10 -10
- package/dist/index.js +1 -14
- package/dist/react.cjs +1 -0
- package/dist/react.d.cts +74 -0
- package/dist/react.d.ts +74 -0
- package/dist/react.js +1 -0
- package/dist/reactive.cjs +1 -0
- package/dist/reactive.d.cts +35 -0
- package/dist/reactive.d.ts +35 -0
- package/dist/reactive.js +1 -0
- package/dist/{core/selector/selector.interface.d.ts → selector.interface-CA5y-kD_.d.cts} +7 -35
- package/dist/selector.interface-CA5y-kD_.d.ts +63 -0
- package/dist/storage.interface-Dl8SLUd1.d.cts +128 -0
- package/dist/storage.interface-Dl8SLUd1.d.ts +128 -0
- package/dist/utils.cjs +1 -0
- package/dist/utils.d.cts +92 -0
- package/dist/utils.d.ts +92 -0
- package/dist/utils.js +1 -0
- package/package.json +54 -17
- package/dist/_utils/chunk.util.d.ts +0 -8
- package/dist/_utils/chunk.util.d.ts.map +0 -1
- package/dist/_utils/chunk.util.js +0 -21
- package/dist/_utils/chunk.util.js.map +0 -1
- package/dist/_utils/deepMerge.util.d.ts +0 -2
- package/dist/_utils/deepMerge.util.d.ts.map +0 -1
- package/dist/_utils/deepMerge.util.js +0 -16
- package/dist/_utils/deepMerge.util.js.map +0 -1
- package/dist/_utils/flatMap.util.d.ts +0 -10
- package/dist/_utils/flatMap.util.d.ts.map +0 -1
- package/dist/_utils/flatMap.util.js +0 -23
- package/dist/_utils/flatMap.util.js.map +0 -1
- package/dist/_utils/index.d.ts +0 -4
- package/dist/_utils/index.d.ts.map +0 -1
- package/dist/_utils/index.js +0 -4
- package/dist/_utils/index.js.map +0 -1
- package/dist/api/api.module.d.ts +0 -38
- package/dist/api/api.module.d.ts.map +0 -1
- package/dist/api/api.module.js +0 -82
- package/dist/api/api.module.js.map +0 -1
- package/dist/api/components/endpoint.d.ts +0 -26
- package/dist/api/components/endpoint.d.ts.map +0 -1
- package/dist/api/components/endpoint.js +0 -253
- package/dist/api/components/endpoint.js.map +0 -1
- package/dist/api/components/query-storage.d.ts +0 -84
- package/dist/api/components/query-storage.d.ts.map +0 -1
- package/dist/api/components/query-storage.js +0 -221
- package/dist/api/components/query-storage.js.map +0 -1
- package/dist/api/example.d.ts +0 -83
- package/dist/api/example.d.ts.map +0 -1
- package/dist/api/example.js +0 -85
- package/dist/api/example.js.map +0 -1
- package/dist/api/index.d.ts +0 -4
- package/dist/api/index.d.ts.map +0 -1
- package/dist/api/index.js +0 -6
- package/dist/api/index.js.map +0 -1
- package/dist/api/types/api.interface.d.ts +0 -108
- package/dist/api/types/api.interface.d.ts.map +0 -1
- package/dist/api/types/api.interface.js +0 -19
- package/dist/api/types/api.interface.js.map +0 -1
- package/dist/api/types/endpoint.interface.d.ts +0 -116
- package/dist/api/types/endpoint.interface.d.ts.map +0 -1
- package/dist/api/types/endpoint.interface.js +0 -2
- package/dist/api/types/endpoint.interface.js.map +0 -1
- package/dist/api/types/query.interface.d.ts +0 -87
- package/dist/api/types/query.interface.d.ts.map +0 -1
- package/dist/api/types/query.interface.js +0 -2
- package/dist/api/types/query.interface.js.map +0 -1
- package/dist/api/utils/api-helpers.d.ts +0 -22
- package/dist/api/utils/api-helpers.d.ts.map +0 -1
- package/dist/api/utils/api-helpers.js +0 -44
- package/dist/api/utils/api-helpers.js.map +0 -1
- package/dist/api/utils/create-header-context.d.ts +0 -10
- package/dist/api/utils/create-header-context.d.ts.map +0 -1
- package/dist/api/utils/create-header-context.js +0 -36
- package/dist/api/utils/create-header-context.js.map +0 -1
- package/dist/api/utils/endpoint-headers.d.ts +0 -23
- package/dist/api/utils/endpoint-headers.d.ts.map +0 -1
- package/dist/api/utils/endpoint-headers.js +0 -57
- package/dist/api/utils/endpoint-headers.js.map +0 -1
- package/dist/api/utils/fetch-base-query.d.ts +0 -9
- package/dist/api/utils/fetch-base-query.d.ts.map +0 -1
- package/dist/api/utils/fetch-base-query.js +0 -181
- package/dist/api/utils/fetch-base-query.js.map +0 -1
- package/dist/api/utils/file-utils.d.ts +0 -43
- package/dist/api/utils/file-utils.d.ts.map +0 -1
- package/dist/api/utils/file-utils.js +0 -108
- package/dist/api/utils/file-utils.js.map +0 -1
- package/dist/api/utils/get-cacheable-headers.d.ts +0 -8
- package/dist/api/utils/get-cacheable-headers.d.ts.map +0 -1
- package/dist/api/utils/get-cacheable-headers.js +0 -21
- package/dist/api/utils/get-cacheable-headers.js.map +0 -1
- package/dist/core/index.d.ts +0 -3
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -3
- package/dist/core/index.js.map +0 -1
- package/dist/core/selector/index.d.ts +0 -3
- package/dist/core/selector/index.d.ts.map +0 -1
- package/dist/core/selector/index.js +0 -2
- package/dist/core/selector/index.js.map +0 -1
- package/dist/core/selector/selector.interface.d.ts.map +0 -1
- package/dist/core/selector/selector.interface.js +0 -2
- package/dist/core/selector/selector.interface.js.map +0 -1
- package/dist/core/selector/selector.module.d.ts +0 -29
- package/dist/core/selector/selector.module.d.ts.map +0 -1
- package/dist/core/selector/selector.module.js +0 -467
- package/dist/core/selector/selector.module.js.map +0 -1
- package/dist/core/storage/adapters/base-storage.service.d.ts +0 -65
- package/dist/core/storage/adapters/base-storage.service.d.ts.map +0 -1
- package/dist/core/storage/adapters/base-storage.service.js +0 -660
- package/dist/core/storage/adapters/base-storage.service.js.map +0 -1
- package/dist/core/storage/adapters/indexed-DB.service.d.ts +0 -63
- package/dist/core/storage/adapters/indexed-DB.service.d.ts.map +0 -1
- package/dist/core/storage/adapters/indexed-DB.service.js +0 -595
- package/dist/core/storage/adapters/indexed-DB.service.js.map +0 -1
- package/dist/core/storage/adapters/indexed-DB.service.old.d.ts +0 -38
- package/dist/core/storage/adapters/indexed-DB.service.old.d.ts.map +0 -1
- package/dist/core/storage/adapters/indexed-DB.service.old.js +0 -318
- package/dist/core/storage/adapters/indexed-DB.service.old.js.map +0 -1
- package/dist/core/storage/adapters/local-storage.service.d.ts +0 -21
- package/dist/core/storage/adapters/local-storage.service.d.ts.map +0 -1
- package/dist/core/storage/adapters/local-storage.service.js +0 -99
- package/dist/core/storage/adapters/local-storage.service.js.map +0 -1
- package/dist/core/storage/adapters/memory-storage.service.d.ts +0 -22
- package/dist/core/storage/adapters/memory-storage.service.d.ts.map +0 -1
- package/dist/core/storage/adapters/memory-storage.service.js +0 -99
- package/dist/core/storage/adapters/memory-storage.service.js.map +0 -1
- package/dist/core/storage/adapters/path.utils.d.ts +0 -5
- package/dist/core/storage/adapters/path.utils.d.ts.map +0 -1
- package/dist/core/storage/adapters/path.utils.js +0 -35
- package/dist/core/storage/adapters/path.utils.js.map +0 -1
- package/dist/core/storage/index.d.ts +0 -11
- package/dist/core/storage/index.d.ts.map +0 -1
- package/dist/core/storage/index.js +0 -12
- package/dist/core/storage/index.js.map +0 -1
- package/dist/core/storage/middlewares/broadcast.middleware.d.ts +0 -9
- package/dist/core/storage/middlewares/broadcast.middleware.d.ts.map +0 -1
- package/dist/core/storage/middlewares/broadcast.middleware.js +0 -115
- package/dist/core/storage/middlewares/broadcast.middleware.js.map +0 -1
- package/dist/core/storage/middlewares/index.d.ts +0 -4
- package/dist/core/storage/middlewares/index.d.ts.map +0 -1
- package/dist/core/storage/middlewares/index.js +0 -3
- package/dist/core/storage/middlewares/index.js.map +0 -1
- package/dist/core/storage/middlewares/storage-batching.middleware.d.ts +0 -7
- package/dist/core/storage/middlewares/storage-batching.middleware.d.ts.map +0 -1
- package/dist/core/storage/middlewares/storage-batching.middleware.js +0 -36
- package/dist/core/storage/middlewares/storage-batching.middleware.js.map +0 -1
- package/dist/core/storage/middlewares/storage-shallow-compare.middleware.d.ts +0 -7
- package/dist/core/storage/middlewares/storage-shallow-compare.middleware.d.ts.map +0 -1
- package/dist/core/storage/middlewares/storage-shallow-compare.middleware.js +0 -46
- package/dist/core/storage/middlewares/storage-shallow-compare.middleware.js.map +0 -1
- package/dist/core/storage/modules/plugin/plugin.interface.d.ts.map +0 -1
- package/dist/core/storage/modules/plugin/plugin.interface.js +0 -2
- package/dist/core/storage/modules/plugin/plugin.interface.js.map +0 -1
- package/dist/core/storage/modules/plugin/plugin.service.d.ts +0 -25
- package/dist/core/storage/modules/plugin/plugin.service.d.ts.map +0 -1
- package/dist/core/storage/modules/plugin/plugin.service.js +0 -186
- package/dist/core/storage/modules/plugin/plugin.service.js.map +0 -1
- package/dist/core/storage/storage.interface.d.ts +0 -70
- package/dist/core/storage/storage.interface.d.ts.map +0 -1
- package/dist/core/storage/storage.interface.js +0 -10
- package/dist/core/storage/storage.interface.js.map +0 -1
- package/dist/core/storage/utils/batch.utils.d.ts +0 -33
- package/dist/core/storage/utils/batch.utils.d.ts.map +0 -1
- package/dist/core/storage/utils/batch.utils.js +0 -88
- package/dist/core/storage/utils/batch.utils.js.map +0 -1
- package/dist/core/storage/utils/broadcast.util.d.ts +0 -48
- package/dist/core/storage/utils/broadcast.util.d.ts.map +0 -1
- package/dist/core/storage/utils/broadcast.util.js +0 -162
- package/dist/core/storage/utils/broadcast.util.js.map +0 -1
- package/dist/core/storage/utils/cache.util.d.ts +0 -33
- package/dist/core/storage/utils/cache.util.d.ts.map +0 -1
- package/dist/core/storage/utils/cache.util.js +0 -47
- package/dist/core/storage/utils/cache.util.js.map +0 -1
- package/dist/core/storage/utils/middleware-module.d.ts +0 -46
- package/dist/core/storage/utils/middleware-module.d.ts.map +0 -1
- package/dist/core/storage/utils/middleware-module.js +0 -109
- package/dist/core/storage/utils/middleware-module.js.map +0 -1
- package/dist/core/storage/utils/storage-key.d.ts +0 -11
- package/dist/core/storage/utils/storage-key.d.ts.map +0 -1
- package/dist/core/storage/utils/storage-key.js +0 -21
- package/dist/core/storage/utils/storage-key.js.map +0 -1
- package/dist/core/storage/utils/storage.utils.d.ts +0 -17
- package/dist/core/storage/utils/storage.utils.d.ts.map +0 -1
- package/dist/core/storage/utils/storage.utils.js +0 -57
- package/dist/core/storage/utils/storage.utils.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/react/hooks/index.d.ts +0 -3
- package/dist/react/hooks/index.d.ts.map +0 -1
- package/dist/react/hooks/index.js +0 -3
- package/dist/react/hooks/index.js.map +0 -1
- package/dist/react/hooks/useSelector.d.ts +0 -22
- package/dist/react/hooks/useSelector.d.ts.map +0 -1
- package/dist/react/hooks/useSelector.js +0 -104
- package/dist/react/hooks/useSelector.js.map +0 -1
- package/dist/react/hooks/useStorageSubscribe.d.ts +0 -12
- package/dist/react/hooks/useStorageSubscribe.d.ts.map +0 -1
- package/dist/react/hooks/useStorageSubscribe.js +0 -49
- package/dist/react/hooks/useStorageSubscribe.js.map +0 -1
- package/dist/react/index.d.ts +0 -3
- package/dist/react/index.d.ts.map +0 -1
- package/dist/react/index.js +0 -3
- package/dist/react/index.js.map +0 -1
- package/dist/react/utils/createSynapseCtx.d.ts +0 -40
- package/dist/react/utils/createSynapseCtx.d.ts.map +0 -1
- package/dist/react/utils/createSynapseCtx.js +0 -125
- package/dist/react/utils/createSynapseCtx.js.map +0 -1
- package/dist/react/utils/index.d.ts +0 -2
- package/dist/react/utils/index.d.ts.map +0 -1
- package/dist/react/utils/index.js +0 -2
- package/dist/react/utils/index.js.map +0 -1
- package/dist/reactive/dispatcher/dispatcher.module.d.ts +0 -195
- package/dist/reactive/dispatcher/dispatcher.module.d.ts.map +0 -1
- package/dist/reactive/dispatcher/dispatcher.module.js +0 -288
- package/dist/reactive/dispatcher/dispatcher.module.js.map +0 -1
- package/dist/reactive/dispatcher/index.d.ts +0 -3
- package/dist/reactive/dispatcher/index.d.ts.map +0 -1
- package/dist/reactive/dispatcher/index.js +0 -3
- package/dist/reactive/dispatcher/index.js.map +0 -1
- package/dist/reactive/dispatcher/middlewares/index.d.ts +0 -2
- package/dist/reactive/dispatcher/middlewares/index.d.ts.map +0 -1
- package/dist/reactive/dispatcher/middlewares/index.js +0 -2
- package/dist/reactive/dispatcher/middlewares/index.js.map +0 -1
- package/dist/reactive/dispatcher/middlewares/logger.middleware.d.ts +0 -31
- package/dist/reactive/dispatcher/middlewares/logger.middleware.d.ts.map +0 -1
- package/dist/reactive/dispatcher/middlewares/logger.middleware.js +0 -126
- package/dist/reactive/dispatcher/middlewares/logger.middleware.js.map +0 -1
- package/dist/reactive/effects/effects.module.d.ts +0 -150
- package/dist/reactive/effects/effects.module.d.ts.map +0 -1
- package/dist/reactive/effects/effects.module.js +0 -277
- package/dist/reactive/effects/effects.module.js.map +0 -1
- package/dist/reactive/effects/index.d.ts +0 -2
- package/dist/reactive/effects/index.d.ts.map +0 -1
- package/dist/reactive/effects/index.js +0 -2
- package/dist/reactive/effects/index.js.map +0 -1
- package/dist/reactive/effects/utils/chunkRequestConsistent.d.ts +0 -12
- package/dist/reactive/effects/utils/chunkRequestConsistent.d.ts.map +0 -1
- package/dist/reactive/effects/utils/chunkRequestConsistent.js +0 -16
- package/dist/reactive/effects/utils/chunkRequestConsistent.js.map +0 -1
- package/dist/reactive/effects/utils/chunkRequestParallel.d.ts +0 -12
- package/dist/reactive/effects/utils/chunkRequestParallel.d.ts.map +0 -1
- package/dist/reactive/effects/utils/chunkRequestParallel.js +0 -13
- package/dist/reactive/effects/utils/chunkRequestParallel.js.map +0 -1
- package/dist/reactive/effects/utils/index.d.ts +0 -3
- package/dist/reactive/effects/utils/index.d.ts.map +0 -1
- package/dist/reactive/effects/utils/index.js +0 -3
- package/dist/reactive/effects/utils/index.js.map +0 -1
- package/dist/reactive/index.d.ts +0 -3
- package/dist/reactive/index.d.ts.map +0 -1
- package/dist/reactive/index.js +0 -3
- package/dist/reactive/index.js.map +0 -1
- package/dist/utils/createSynapse.d.ts +0 -92
- package/dist/utils/createSynapse.d.ts.map +0 -1
- package/dist/utils/createSynapse.js +0 -79
- package/dist/utils/createSynapse.js.map +0 -1
- package/dist/utils/index.d.ts +0 -2
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -2
- package/dist/utils/index.js.map +0 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { a as EnhancedMiddleware } from './dispatcher.module-jd8U_ZEs.js';
|
|
2
|
+
export { A as Action, b as ActionDefinition, f as ActionsResult, d as ActionsSetup, c as ActionsSetupWithUtils, C as CreateDispatcherType, g as DispatchActions, D as DispatchFunction, k as Dispatcher, p as DispatcherActions, j as DispatcherMiddleware, i as DispatcherMiddlewareAPI, o as Effect, n as EffectBase, x as EffectsModule, E as EnhancedMiddlewareAPI, m as ExternalStates, e as ExtractResultType, T as TypedAction, V as ValidateConfig, q as ValidateMapRequestUtils, h as WatcherActions, W as WatcherFunction, B as combineEffects, l as createDispatcher, z as createEffect, y as createEffectBase, r as ofType, s as ofTypes, t as ofTypesWaitAll, u as selectorMap, v as selectorObject, w as validateMap } from './dispatcher.module-jd8U_ZEs.js';
|
|
3
|
+
import 'rxjs';
|
|
4
|
+
import './storage.interface-Dl8SLUd1.js';
|
|
5
|
+
|
|
6
|
+
interface LoggerTranslations {
|
|
7
|
+
action: string;
|
|
8
|
+
prevState: string;
|
|
9
|
+
nextState: string;
|
|
10
|
+
duration: string;
|
|
11
|
+
error: string;
|
|
12
|
+
diff: string;
|
|
13
|
+
changesCount: string;
|
|
14
|
+
showFullState: string;
|
|
15
|
+
}
|
|
16
|
+
interface LoggerColors {
|
|
17
|
+
title: string;
|
|
18
|
+
prevState: string;
|
|
19
|
+
fullState: string;
|
|
20
|
+
action: string;
|
|
21
|
+
nextState: string;
|
|
22
|
+
error: string;
|
|
23
|
+
diff: string;
|
|
24
|
+
}
|
|
25
|
+
interface LoggerOptions {
|
|
26
|
+
collapsed?: boolean;
|
|
27
|
+
duration?: boolean;
|
|
28
|
+
diff?: boolean;
|
|
29
|
+
showFullState?: boolean;
|
|
30
|
+
translations?: Partial<LoggerTranslations>;
|
|
31
|
+
colors?: Partial<LoggerColors>;
|
|
32
|
+
}
|
|
33
|
+
declare const loggerDispatcherMiddleware: <State extends Record<string, any>>(options?: LoggerOptions) => EnhancedMiddleware<State>;
|
|
34
|
+
|
|
35
|
+
export { EnhancedMiddleware, loggerDispatcherMiddleware };
|
package/dist/reactive.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{a as Dispatcher,j as EffectsModule,m as combineEffects,b as createDispatcher,l as createEffect,k as createEffectBase,c as loggerDispatcherMiddleware,d as ofType,e as ofTypes,f as ofTypesWaitAll,g as selectorMap,h as selectorObject,i as validateMap}from'./chunk-IPUPRMZK.js';import'./chunk-5X65PSGD.js';
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
interface Selector<T, R> {
|
|
2
2
|
(state: T): R;
|
|
3
3
|
}
|
|
4
|
-
|
|
4
|
+
interface SelectorOptions<T> {
|
|
5
5
|
equals?: (a: T, b: T) => boolean;
|
|
6
6
|
name?: string;
|
|
7
7
|
}
|
|
8
|
-
|
|
8
|
+
interface Subscriber<T> {
|
|
9
9
|
notify: (value: T) => void | Promise<void>;
|
|
10
10
|
}
|
|
11
|
-
|
|
11
|
+
interface SelectorAPI<T> {
|
|
12
12
|
select: () => Promise<T>;
|
|
13
13
|
subscribe: (subscriber: Subscriber<T>) => VoidFunction;
|
|
14
14
|
getId: () => string;
|
|
@@ -17,7 +17,7 @@ export interface SelectorAPI<T> {
|
|
|
17
17
|
* Интерфейс для модуля селекторов
|
|
18
18
|
* Определяет контракт для работы с селекторами, который должен реализовывать SelectorModule
|
|
19
19
|
*/
|
|
20
|
-
|
|
20
|
+
interface ISelectorModule<TStore extends Record<string, any>> {
|
|
21
21
|
/**
|
|
22
22
|
* Имя связанного хранилища
|
|
23
23
|
*/
|
|
@@ -59,33 +59,5 @@ export interface ISelectorModule<TStore extends Record<string, any>> {
|
|
|
59
59
|
*/
|
|
60
60
|
destroy(): void;
|
|
61
61
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
* Позволяет создавать набор связанных селекторов
|
|
65
|
-
*/
|
|
66
|
-
export interface ISelectorCreator<TStore extends Record<string, any>, TSelectors, TExternalSelectors = Record<string, any>> {
|
|
67
|
-
/**
|
|
68
|
-
* Создает набор селекторов
|
|
69
|
-
*
|
|
70
|
-
* @param selectorModule Модуль селекторов
|
|
71
|
-
* @param externalSelectors Внешние селекторы (опционально)
|
|
72
|
-
* @returns Объект с селекторами
|
|
73
|
-
*
|
|
74
|
-
* @example
|
|
75
|
-
* const createUserSelectors: ISelectorCreator<UserStore, UserSelectors> =
|
|
76
|
-
* (selectorModule, externalSelectors) => {
|
|
77
|
-
* const isActive = selectorModule.createSelector(
|
|
78
|
-
* (state) => state.user.isActive
|
|
79
|
-
* );
|
|
80
|
-
*
|
|
81
|
-
* return { isActive };
|
|
82
|
-
* };
|
|
83
|
-
*/
|
|
84
|
-
(selectorModule: ISelectorModule<TStore>, externalSelectors?: TExternalSelectors): TSelectors;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Тип для функции, создающей селекторы
|
|
88
|
-
* Более простая версия ISelectorCreator, если не нужен полный интерфейс
|
|
89
|
-
*/
|
|
90
|
-
export type SelectorCreatorFunction<TStore extends Record<string, any> = Record<string, any>, TSelectors = any, TExternalSelectors = Record<string, any>> = (selectorModule: ISelectorModule<TStore>, externalSelectors?: TExternalSelectors) => TSelectors;
|
|
91
|
-
//# sourceMappingURL=selector.interface.d.ts.map
|
|
62
|
+
|
|
63
|
+
export type { ISelectorModule as I, SelectorAPI as S, Selector as a, SelectorOptions as b };
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
interface Selector<T, R> {
|
|
2
|
+
(state: T): R;
|
|
3
|
+
}
|
|
4
|
+
interface SelectorOptions<T> {
|
|
5
|
+
equals?: (a: T, b: T) => boolean;
|
|
6
|
+
name?: string;
|
|
7
|
+
}
|
|
8
|
+
interface Subscriber<T> {
|
|
9
|
+
notify: (value: T) => void | Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
interface SelectorAPI<T> {
|
|
12
|
+
select: () => Promise<T>;
|
|
13
|
+
subscribe: (subscriber: Subscriber<T>) => VoidFunction;
|
|
14
|
+
getId: () => string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Интерфейс для модуля селекторов
|
|
18
|
+
* Определяет контракт для работы с селекторами, который должен реализовывать SelectorModule
|
|
19
|
+
*/
|
|
20
|
+
interface ISelectorModule<TStore extends Record<string, any>> {
|
|
21
|
+
/**
|
|
22
|
+
* Имя связанного хранилища
|
|
23
|
+
*/
|
|
24
|
+
readonly storageName: string;
|
|
25
|
+
/**
|
|
26
|
+
* Создает простой селектор на основе функции выбора
|
|
27
|
+
*
|
|
28
|
+
* @param selector Функция, извлекающая данные из состояния
|
|
29
|
+
* @param options Опции селектора
|
|
30
|
+
* @returns API селектора
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* const isActive = selectorModule.createSelector(
|
|
34
|
+
* (state) => state.user.isActive,
|
|
35
|
+
* { name: 'userIsActive' }
|
|
36
|
+
* );
|
|
37
|
+
*/
|
|
38
|
+
createSelector<T>(selector: Selector<TStore, T>, options?: SelectorOptions<T>): SelectorAPI<T>;
|
|
39
|
+
/**
|
|
40
|
+
* Создает комбинированный селектор на основе других селекторов
|
|
41
|
+
*
|
|
42
|
+
* @param dependencies Массив селекторов, от которых зависит новый селектор
|
|
43
|
+
* @param resultFn Функция, комбинирующая результаты зависимостей
|
|
44
|
+
* @param options Опции селектора
|
|
45
|
+
* @returns API селектора
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* const userWithStatus = selectorModule.createSelector(
|
|
49
|
+
* [userSelector, statusSelector],
|
|
50
|
+
* (user, status) => ({ ...user, status }),
|
|
51
|
+
* { name: 'userWithStatus' }
|
|
52
|
+
* );
|
|
53
|
+
*/
|
|
54
|
+
createSelector<Deps extends unknown[], T>(dependencies: {
|
|
55
|
+
[K in keyof Deps]: SelectorAPI<Deps[K]>;
|
|
56
|
+
}, resultFn: (...args: Deps) => T, options?: SelectorOptions<T>): SelectorAPI<T>;
|
|
57
|
+
/**
|
|
58
|
+
* Освобождает ресурсы, связанные с модулем селекторов
|
|
59
|
+
*/
|
|
60
|
+
destroy(): void;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export type { ISelectorModule as I, SelectorAPI as S, Selector as a, SelectorOptions as b };
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
declare class StorageKey {
|
|
2
|
+
private readonly value;
|
|
3
|
+
private readonly isRawKey;
|
|
4
|
+
constructor(value: string, isRawKey?: boolean);
|
|
5
|
+
toString(): string;
|
|
6
|
+
toJSON(): string;
|
|
7
|
+
valueOf(): string;
|
|
8
|
+
isUnparseable(): boolean;
|
|
9
|
+
}
|
|
10
|
+
type StorageKeyType = string | StorageKey;
|
|
11
|
+
|
|
12
|
+
interface IndexedDBConfig {
|
|
13
|
+
dbName?: string;
|
|
14
|
+
dbVersion?: number;
|
|
15
|
+
storeName?: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
type StorageActionType = 'get' | 'set' | 'delete' | 'clear' | 'init' | 'keys' | 'update';
|
|
19
|
+
type StorageAction = {
|
|
20
|
+
type: StorageActionType;
|
|
21
|
+
key?: StorageKeyType;
|
|
22
|
+
value?: any;
|
|
23
|
+
metadata?: Record<string, any>;
|
|
24
|
+
source?: string;
|
|
25
|
+
timestamp?: number;
|
|
26
|
+
};
|
|
27
|
+
type MiddlewareAPI = {
|
|
28
|
+
dispatch: (action: StorageAction) => Promise<any>;
|
|
29
|
+
getState: () => Promise<Record<string, any>>;
|
|
30
|
+
storage: {
|
|
31
|
+
doGet: (key: StorageKeyType) => Promise<any>;
|
|
32
|
+
doSet: (key: StorageKeyType, value: any) => Promise<void>;
|
|
33
|
+
doUpdate: (updates: Array<{
|
|
34
|
+
key: StorageKeyType;
|
|
35
|
+
value: any;
|
|
36
|
+
}>) => Promise<void>;
|
|
37
|
+
doDelete: (key: StorageKeyType) => Promise<boolean>;
|
|
38
|
+
doClear: () => Promise<void>;
|
|
39
|
+
doKeys: () => Promise<string[]>;
|
|
40
|
+
notifySubscribers: (key: StorageKeyType, value: any) => void;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
type NextFunction = (action: StorageAction) => Promise<any>;
|
|
44
|
+
type SetupEventsFunction = (api: MiddlewareAPI) => void;
|
|
45
|
+
type Middleware = {
|
|
46
|
+
name: string;
|
|
47
|
+
setup?: SetupEventsFunction;
|
|
48
|
+
cleanup?: () => Promise<void> | void;
|
|
49
|
+
reducer: (api: MiddlewareAPI) => (next: NextFunction) => (action: StorageAction) => Promise<any>;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
interface BatchingMiddlewareOptions {
|
|
53
|
+
batchSize?: number;
|
|
54
|
+
batchDelay?: number;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
interface ShallowCompareMiddlewareOptions {
|
|
58
|
+
segments?: string[];
|
|
59
|
+
comparator?: <T>(prev: T, next: T) => boolean;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
interface IStorage<T extends Record<string, any> = any> {
|
|
63
|
+
name: string;
|
|
64
|
+
get<R>(key: StorageKeyType): Promise<R | undefined>;
|
|
65
|
+
getState(): Promise<T>;
|
|
66
|
+
set<R>(key: StorageKeyType, value: R): Promise<void>;
|
|
67
|
+
update(updater: (state: T) => void): Promise<void>;
|
|
68
|
+
has(key: StorageKeyType): Promise<boolean>;
|
|
69
|
+
delete(key: StorageKeyType): Promise<void>;
|
|
70
|
+
clear(): Promise<void>;
|
|
71
|
+
keys(): Promise<string[]>;
|
|
72
|
+
destroy(): Promise<void>;
|
|
73
|
+
subscribeToAll(callback: (event: {
|
|
74
|
+
type: string;
|
|
75
|
+
changedPaths?: string[];
|
|
76
|
+
key?: StorageKeyType[] | StorageKeyType;
|
|
77
|
+
value?: any;
|
|
78
|
+
}) => void): VoidFunction;
|
|
79
|
+
initialize(): Promise<this>;
|
|
80
|
+
subscribe(key: StorageKeyType, callback: (value: any) => void): VoidFunction;
|
|
81
|
+
subscribe<R>(pathSelector: (state: T) => R, callback: (value: R) => void): VoidFunction;
|
|
82
|
+
}
|
|
83
|
+
declare enum StorageEvents {
|
|
84
|
+
STORAGE_UPDATE = "storage:update",
|
|
85
|
+
STORAGE_DELETE = "storage:delete",
|
|
86
|
+
STORAGE_PATCH = "storage:patch",
|
|
87
|
+
STORAGE_SELECT = "storage:select",
|
|
88
|
+
STORAGE_CLEAR = "storage:clear",
|
|
89
|
+
STORAGE_DESTROY = "storage:destroy"
|
|
90
|
+
}
|
|
91
|
+
interface StorageEvent<T = any> {
|
|
92
|
+
type: string;
|
|
93
|
+
payload?: T;
|
|
94
|
+
metadata?: Record<string, any>;
|
|
95
|
+
}
|
|
96
|
+
interface IEventEmitter {
|
|
97
|
+
emit(event: StorageEvent): Promise<void>;
|
|
98
|
+
}
|
|
99
|
+
interface ILogger {
|
|
100
|
+
debug(message: string, meta?: Record<string, any>): void;
|
|
101
|
+
info(message: string, meta?: Record<string, any>): void;
|
|
102
|
+
warn(message: string, meta?: Record<string, any>): void;
|
|
103
|
+
error(message: string, meta?: Record<string, any>): void;
|
|
104
|
+
}
|
|
105
|
+
interface DefaultMiddlewares {
|
|
106
|
+
batching: (options?: BatchingMiddlewareOptions) => Middleware;
|
|
107
|
+
shallowCompare: (options?: ShallowCompareMiddlewareOptions) => Middleware;
|
|
108
|
+
}
|
|
109
|
+
type GetDefaultMiddleware = () => DefaultMiddlewares;
|
|
110
|
+
type ConfigureMiddlewares = (getDefaultMiddleware: GetDefaultMiddleware) => Middleware[];
|
|
111
|
+
interface StorageConfig {
|
|
112
|
+
name: string;
|
|
113
|
+
initialState?: Record<string, any>;
|
|
114
|
+
middlewares?: ConfigureMiddlewares;
|
|
115
|
+
}
|
|
116
|
+
type StorageType = 'memory' | 'localStorage' | 'indexedDB';
|
|
117
|
+
interface MemoryStorageConfig extends StorageConfig {
|
|
118
|
+
type: 'memory';
|
|
119
|
+
}
|
|
120
|
+
interface LocalStorageConfig extends StorageConfig {
|
|
121
|
+
type: 'localStorage';
|
|
122
|
+
}
|
|
123
|
+
interface IndexedDBStorageConfig extends StorageConfig {
|
|
124
|
+
type: 'indexedDB';
|
|
125
|
+
options: IndexedDBConfig;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
export { type BatchingMiddlewareOptions as B, type ConfigureMiddlewares as C, type DefaultMiddlewares as D, type GetDefaultMiddleware as G, type IStorage as I, type LocalStorageConfig as L, type Middleware as M, type NextFunction as N, type ShallowCompareMiddlewareOptions as S, type MiddlewareAPI as a, type StorageAction as b, type StorageKeyType as c, StorageEvents as d, type StorageEvent as e, type IEventEmitter as f, type ILogger as g, type StorageConfig as h, type StorageType as i, type MemoryStorageConfig as j, type IndexedDBStorageConfig as k, StorageKey as l };
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
declare class StorageKey {
|
|
2
|
+
private readonly value;
|
|
3
|
+
private readonly isRawKey;
|
|
4
|
+
constructor(value: string, isRawKey?: boolean);
|
|
5
|
+
toString(): string;
|
|
6
|
+
toJSON(): string;
|
|
7
|
+
valueOf(): string;
|
|
8
|
+
isUnparseable(): boolean;
|
|
9
|
+
}
|
|
10
|
+
type StorageKeyType = string | StorageKey;
|
|
11
|
+
|
|
12
|
+
interface IndexedDBConfig {
|
|
13
|
+
dbName?: string;
|
|
14
|
+
dbVersion?: number;
|
|
15
|
+
storeName?: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
type StorageActionType = 'get' | 'set' | 'delete' | 'clear' | 'init' | 'keys' | 'update';
|
|
19
|
+
type StorageAction = {
|
|
20
|
+
type: StorageActionType;
|
|
21
|
+
key?: StorageKeyType;
|
|
22
|
+
value?: any;
|
|
23
|
+
metadata?: Record<string, any>;
|
|
24
|
+
source?: string;
|
|
25
|
+
timestamp?: number;
|
|
26
|
+
};
|
|
27
|
+
type MiddlewareAPI = {
|
|
28
|
+
dispatch: (action: StorageAction) => Promise<any>;
|
|
29
|
+
getState: () => Promise<Record<string, any>>;
|
|
30
|
+
storage: {
|
|
31
|
+
doGet: (key: StorageKeyType) => Promise<any>;
|
|
32
|
+
doSet: (key: StorageKeyType, value: any) => Promise<void>;
|
|
33
|
+
doUpdate: (updates: Array<{
|
|
34
|
+
key: StorageKeyType;
|
|
35
|
+
value: any;
|
|
36
|
+
}>) => Promise<void>;
|
|
37
|
+
doDelete: (key: StorageKeyType) => Promise<boolean>;
|
|
38
|
+
doClear: () => Promise<void>;
|
|
39
|
+
doKeys: () => Promise<string[]>;
|
|
40
|
+
notifySubscribers: (key: StorageKeyType, value: any) => void;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
type NextFunction = (action: StorageAction) => Promise<any>;
|
|
44
|
+
type SetupEventsFunction = (api: MiddlewareAPI) => void;
|
|
45
|
+
type Middleware = {
|
|
46
|
+
name: string;
|
|
47
|
+
setup?: SetupEventsFunction;
|
|
48
|
+
cleanup?: () => Promise<void> | void;
|
|
49
|
+
reducer: (api: MiddlewareAPI) => (next: NextFunction) => (action: StorageAction) => Promise<any>;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
interface BatchingMiddlewareOptions {
|
|
53
|
+
batchSize?: number;
|
|
54
|
+
batchDelay?: number;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
interface ShallowCompareMiddlewareOptions {
|
|
58
|
+
segments?: string[];
|
|
59
|
+
comparator?: <T>(prev: T, next: T) => boolean;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
interface IStorage<T extends Record<string, any> = any> {
|
|
63
|
+
name: string;
|
|
64
|
+
get<R>(key: StorageKeyType): Promise<R | undefined>;
|
|
65
|
+
getState(): Promise<T>;
|
|
66
|
+
set<R>(key: StorageKeyType, value: R): Promise<void>;
|
|
67
|
+
update(updater: (state: T) => void): Promise<void>;
|
|
68
|
+
has(key: StorageKeyType): Promise<boolean>;
|
|
69
|
+
delete(key: StorageKeyType): Promise<void>;
|
|
70
|
+
clear(): Promise<void>;
|
|
71
|
+
keys(): Promise<string[]>;
|
|
72
|
+
destroy(): Promise<void>;
|
|
73
|
+
subscribeToAll(callback: (event: {
|
|
74
|
+
type: string;
|
|
75
|
+
changedPaths?: string[];
|
|
76
|
+
key?: StorageKeyType[] | StorageKeyType;
|
|
77
|
+
value?: any;
|
|
78
|
+
}) => void): VoidFunction;
|
|
79
|
+
initialize(): Promise<this>;
|
|
80
|
+
subscribe(key: StorageKeyType, callback: (value: any) => void): VoidFunction;
|
|
81
|
+
subscribe<R>(pathSelector: (state: T) => R, callback: (value: R) => void): VoidFunction;
|
|
82
|
+
}
|
|
83
|
+
declare enum StorageEvents {
|
|
84
|
+
STORAGE_UPDATE = "storage:update",
|
|
85
|
+
STORAGE_DELETE = "storage:delete",
|
|
86
|
+
STORAGE_PATCH = "storage:patch",
|
|
87
|
+
STORAGE_SELECT = "storage:select",
|
|
88
|
+
STORAGE_CLEAR = "storage:clear",
|
|
89
|
+
STORAGE_DESTROY = "storage:destroy"
|
|
90
|
+
}
|
|
91
|
+
interface StorageEvent<T = any> {
|
|
92
|
+
type: string;
|
|
93
|
+
payload?: T;
|
|
94
|
+
metadata?: Record<string, any>;
|
|
95
|
+
}
|
|
96
|
+
interface IEventEmitter {
|
|
97
|
+
emit(event: StorageEvent): Promise<void>;
|
|
98
|
+
}
|
|
99
|
+
interface ILogger {
|
|
100
|
+
debug(message: string, meta?: Record<string, any>): void;
|
|
101
|
+
info(message: string, meta?: Record<string, any>): void;
|
|
102
|
+
warn(message: string, meta?: Record<string, any>): void;
|
|
103
|
+
error(message: string, meta?: Record<string, any>): void;
|
|
104
|
+
}
|
|
105
|
+
interface DefaultMiddlewares {
|
|
106
|
+
batching: (options?: BatchingMiddlewareOptions) => Middleware;
|
|
107
|
+
shallowCompare: (options?: ShallowCompareMiddlewareOptions) => Middleware;
|
|
108
|
+
}
|
|
109
|
+
type GetDefaultMiddleware = () => DefaultMiddlewares;
|
|
110
|
+
type ConfigureMiddlewares = (getDefaultMiddleware: GetDefaultMiddleware) => Middleware[];
|
|
111
|
+
interface StorageConfig {
|
|
112
|
+
name: string;
|
|
113
|
+
initialState?: Record<string, any>;
|
|
114
|
+
middlewares?: ConfigureMiddlewares;
|
|
115
|
+
}
|
|
116
|
+
type StorageType = 'memory' | 'localStorage' | 'indexedDB';
|
|
117
|
+
interface MemoryStorageConfig extends StorageConfig {
|
|
118
|
+
type: 'memory';
|
|
119
|
+
}
|
|
120
|
+
interface LocalStorageConfig extends StorageConfig {
|
|
121
|
+
type: 'localStorage';
|
|
122
|
+
}
|
|
123
|
+
interface IndexedDBStorageConfig extends StorageConfig {
|
|
124
|
+
type: 'indexedDB';
|
|
125
|
+
options: IndexedDBConfig;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
export { type BatchingMiddlewareOptions as B, type ConfigureMiddlewares as C, type DefaultMiddlewares as D, type GetDefaultMiddleware as G, type IStorage as I, type LocalStorageConfig as L, type Middleware as M, type NextFunction as N, type ShallowCompareMiddlewareOptions as S, type MiddlewareAPI as a, type StorageAction as b, type StorageKeyType as c, StorageEvents as d, type StorageEvent as e, type IEventEmitter as f, type ILogger as g, type StorageConfig as h, type StorageType as i, type MemoryStorageConfig as j, type IndexedDBStorageConfig as k, StorageKey as l };
|
package/dist/utils.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';var chunkWC5TDS6C_cjs=require('./chunk-WC5TDS6C.cjs');require('./chunk-VSIVOWZF.cjs'),require('./chunk-UFBCZ25Y.cjs'),require('./chunk-635Q6YJZ.cjs'),require('./chunk-NMDHQXMS.cjs');Object.defineProperty(exports,"createSynapse",{enumerable:true,get:function(){return chunkWC5TDS6C_cjs.a}});
|
package/dist/utils.d.cts
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { I as ISelectorModule } from './selector.interface-CA5y-kD_.cjs';
|
|
3
|
+
import { I as IStorage } from './storage.interface-Dl8SLUd1.cjs';
|
|
4
|
+
import { m as ExternalStates, o as Effect } from './dispatcher.module-CdpmkplA.cjs';
|
|
5
|
+
|
|
6
|
+
type ExtractDispatchType<T> = T extends {
|
|
7
|
+
dispatch: infer D;
|
|
8
|
+
} ? D : never;
|
|
9
|
+
type StorageCreatorFunction<T extends Record<string, any>> = () => Promise<IStorage<T>>;
|
|
10
|
+
/**
|
|
11
|
+
* Базовая конфигурация хранилища
|
|
12
|
+
*/
|
|
13
|
+
type BaseSynapseConfig<TStore extends Record<string, any>, TSelectors = any, TExternalSelectors extends Record<string, any> = Record<string, any>> = ({
|
|
14
|
+
storage: IStorage<TStore>;
|
|
15
|
+
createStorageFn?: undefined;
|
|
16
|
+
} | {
|
|
17
|
+
storage?: undefined;
|
|
18
|
+
createStorageFn: StorageCreatorFunction<TStore>;
|
|
19
|
+
}) & {
|
|
20
|
+
externalSelectors?: TExternalSelectors;
|
|
21
|
+
createSelectorsFn?: (selectorModule: ISelectorModule<TStore>, externalSelectors: TExternalSelectors) => TSelectors;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Конфигурация с dispatcher и effects
|
|
25
|
+
*/
|
|
26
|
+
type CreateSynapseConfigWithEffects<TStore extends Record<string, any>, TSelectors = any, TDispatcher = any, TApi extends Record<string, any> = Record<string, never>, TConfig extends Record<string, any> = Record<string, never>, TExternalSelectors extends Record<string, any> = Record<string, any>> = BaseSynapseConfig<TStore, TSelectors, TExternalSelectors> & {
|
|
27
|
+
createDispatcherFn: (storage: IStorage<TStore>) => TDispatcher;
|
|
28
|
+
createEffectConfig: (dispatcher: TDispatcher) => {
|
|
29
|
+
dispatchers: Record<string, any>;
|
|
30
|
+
api?: TApi;
|
|
31
|
+
config?: TConfig;
|
|
32
|
+
externalStates?: ExternalStates;
|
|
33
|
+
};
|
|
34
|
+
effects?: Effect<TStore, any, TApi, TConfig, any>[];
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Конфигурация только с dispatcher
|
|
38
|
+
*/
|
|
39
|
+
type CreateSynapseConfigWithDispatcher<TStore extends Record<string, any>, TSelectors = any, TDispatcher = any, TExternalSelectors extends Record<string, any> = Record<string, any>> = BaseSynapseConfig<TStore, TSelectors, TExternalSelectors> & {
|
|
40
|
+
createDispatcherFn: (storage: IStorage<TStore>) => TDispatcher;
|
|
41
|
+
createEffectConfig?: never;
|
|
42
|
+
effects?: never;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Конфигурация без dispatcher
|
|
46
|
+
*/
|
|
47
|
+
type CreateSynapseConfigBasic<TStore extends Record<string, any>, TSelectors = any, TExternalSelectors extends Record<string, any> = Record<string, any>> = BaseSynapseConfig<TStore, TSelectors, TExternalSelectors> & {
|
|
48
|
+
createDispatcherFn?: never;
|
|
49
|
+
createEffectConfig?: never;
|
|
50
|
+
effects?: never;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Результат с dispatcher и effects
|
|
54
|
+
*/
|
|
55
|
+
interface SynapseStoreWithEffects<TStore extends Record<string, any>, TStorage extends IStorage<TStore>, TSelectors, TActions> {
|
|
56
|
+
storage: TStorage;
|
|
57
|
+
selectors: TSelectors;
|
|
58
|
+
actions: TActions;
|
|
59
|
+
state$: Observable<TStore>;
|
|
60
|
+
dispatcher: any;
|
|
61
|
+
destroy: () => Promise<void>;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Результат только с dispatcher
|
|
65
|
+
*/
|
|
66
|
+
interface SynapseStoreWithDispatcher<TStore extends Record<string, any>, TStorage extends IStorage<TStore>, TSelectors, TActions> {
|
|
67
|
+
storage: TStorage;
|
|
68
|
+
selectors: TSelectors;
|
|
69
|
+
actions: TActions;
|
|
70
|
+
dispatcher: any;
|
|
71
|
+
destroy: () => Promise<void>;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Результат без dispatcher
|
|
75
|
+
*/
|
|
76
|
+
interface SynapseStoreBasic<TStore extends Record<string, any>, TStorage extends IStorage<TStore>, TSelectors> {
|
|
77
|
+
storage: TStorage;
|
|
78
|
+
selectors: TSelectors;
|
|
79
|
+
destroy: () => Promise<void>;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Union-тип для всех возможных результатов createSynapse
|
|
83
|
+
*/
|
|
84
|
+
type AnySynapseStore<TStore extends Record<string, any> = any, TStorage extends IStorage<TStore> = IStorage<any>, TSelectors = any, TActions = any> = SynapseStoreWithEffects<TStore, TStorage, TSelectors, TActions> | SynapseStoreWithDispatcher<TStore, TStorage, TSelectors, TActions> | SynapseStoreBasic<TStore, TStorage, TSelectors>;
|
|
85
|
+
/**
|
|
86
|
+
* Перегрузки функции createSynapse
|
|
87
|
+
*/
|
|
88
|
+
declare function createSynapse<TStore extends Record<string, any>, TSelectors = any, TDispatcher = any, TApi extends Record<string, any> = Record<string, never>, TConfig extends Record<string, any> = Record<string, never>, TExternalSelectors extends Record<string, any> = Record<string, any>, TStorage extends IStorage<TStore> = IStorage<TStore>>(config: CreateSynapseConfigWithEffects<TStore, TSelectors, TDispatcher, TApi, TConfig, TExternalSelectors>): Promise<SynapseStoreWithEffects<TStore, TStorage, TSelectors, ExtractDispatchType<TDispatcher>>>;
|
|
89
|
+
declare function createSynapse<TStore extends Record<string, any>, TSelectors = any, TDispatcher = any, TExternalSelectors extends Record<string, any> = Record<string, any>, TStorage extends IStorage<TStore> = IStorage<TStore>>(config: CreateSynapseConfigWithDispatcher<TStore, TSelectors, TDispatcher, TExternalSelectors>): Promise<SynapseStoreWithDispatcher<TStore, TStorage, TSelectors, ExtractDispatchType<TDispatcher>>>;
|
|
90
|
+
declare function createSynapse<TStore extends Record<string, any>, TSelectors = any, TExternalSelectors extends Record<string, any> = Record<string, any>, TStorage extends IStorage<TStore> = IStorage<TStore>>(config: CreateSynapseConfigBasic<TStore, TSelectors, TExternalSelectors>): Promise<SynapseStoreBasic<TStore, TStorage, TSelectors>>;
|
|
91
|
+
|
|
92
|
+
export { type AnySynapseStore, type SynapseStoreBasic, type SynapseStoreWithDispatcher, type SynapseStoreWithEffects, createSynapse };
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { I as ISelectorModule } from './selector.interface-CA5y-kD_.js';
|
|
3
|
+
import { I as IStorage } from './storage.interface-Dl8SLUd1.js';
|
|
4
|
+
import { m as ExternalStates, o as Effect } from './dispatcher.module-jd8U_ZEs.js';
|
|
5
|
+
|
|
6
|
+
type ExtractDispatchType<T> = T extends {
|
|
7
|
+
dispatch: infer D;
|
|
8
|
+
} ? D : never;
|
|
9
|
+
type StorageCreatorFunction<T extends Record<string, any>> = () => Promise<IStorage<T>>;
|
|
10
|
+
/**
|
|
11
|
+
* Базовая конфигурация хранилища
|
|
12
|
+
*/
|
|
13
|
+
type BaseSynapseConfig<TStore extends Record<string, any>, TSelectors = any, TExternalSelectors extends Record<string, any> = Record<string, any>> = ({
|
|
14
|
+
storage: IStorage<TStore>;
|
|
15
|
+
createStorageFn?: undefined;
|
|
16
|
+
} | {
|
|
17
|
+
storage?: undefined;
|
|
18
|
+
createStorageFn: StorageCreatorFunction<TStore>;
|
|
19
|
+
}) & {
|
|
20
|
+
externalSelectors?: TExternalSelectors;
|
|
21
|
+
createSelectorsFn?: (selectorModule: ISelectorModule<TStore>, externalSelectors: TExternalSelectors) => TSelectors;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Конфигурация с dispatcher и effects
|
|
25
|
+
*/
|
|
26
|
+
type CreateSynapseConfigWithEffects<TStore extends Record<string, any>, TSelectors = any, TDispatcher = any, TApi extends Record<string, any> = Record<string, never>, TConfig extends Record<string, any> = Record<string, never>, TExternalSelectors extends Record<string, any> = Record<string, any>> = BaseSynapseConfig<TStore, TSelectors, TExternalSelectors> & {
|
|
27
|
+
createDispatcherFn: (storage: IStorage<TStore>) => TDispatcher;
|
|
28
|
+
createEffectConfig: (dispatcher: TDispatcher) => {
|
|
29
|
+
dispatchers: Record<string, any>;
|
|
30
|
+
api?: TApi;
|
|
31
|
+
config?: TConfig;
|
|
32
|
+
externalStates?: ExternalStates;
|
|
33
|
+
};
|
|
34
|
+
effects?: Effect<TStore, any, TApi, TConfig, any>[];
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Конфигурация только с dispatcher
|
|
38
|
+
*/
|
|
39
|
+
type CreateSynapseConfigWithDispatcher<TStore extends Record<string, any>, TSelectors = any, TDispatcher = any, TExternalSelectors extends Record<string, any> = Record<string, any>> = BaseSynapseConfig<TStore, TSelectors, TExternalSelectors> & {
|
|
40
|
+
createDispatcherFn: (storage: IStorage<TStore>) => TDispatcher;
|
|
41
|
+
createEffectConfig?: never;
|
|
42
|
+
effects?: never;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Конфигурация без dispatcher
|
|
46
|
+
*/
|
|
47
|
+
type CreateSynapseConfigBasic<TStore extends Record<string, any>, TSelectors = any, TExternalSelectors extends Record<string, any> = Record<string, any>> = BaseSynapseConfig<TStore, TSelectors, TExternalSelectors> & {
|
|
48
|
+
createDispatcherFn?: never;
|
|
49
|
+
createEffectConfig?: never;
|
|
50
|
+
effects?: never;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Результат с dispatcher и effects
|
|
54
|
+
*/
|
|
55
|
+
interface SynapseStoreWithEffects<TStore extends Record<string, any>, TStorage extends IStorage<TStore>, TSelectors, TActions> {
|
|
56
|
+
storage: TStorage;
|
|
57
|
+
selectors: TSelectors;
|
|
58
|
+
actions: TActions;
|
|
59
|
+
state$: Observable<TStore>;
|
|
60
|
+
dispatcher: any;
|
|
61
|
+
destroy: () => Promise<void>;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Результат только с dispatcher
|
|
65
|
+
*/
|
|
66
|
+
interface SynapseStoreWithDispatcher<TStore extends Record<string, any>, TStorage extends IStorage<TStore>, TSelectors, TActions> {
|
|
67
|
+
storage: TStorage;
|
|
68
|
+
selectors: TSelectors;
|
|
69
|
+
actions: TActions;
|
|
70
|
+
dispatcher: any;
|
|
71
|
+
destroy: () => Promise<void>;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Результат без dispatcher
|
|
75
|
+
*/
|
|
76
|
+
interface SynapseStoreBasic<TStore extends Record<string, any>, TStorage extends IStorage<TStore>, TSelectors> {
|
|
77
|
+
storage: TStorage;
|
|
78
|
+
selectors: TSelectors;
|
|
79
|
+
destroy: () => Promise<void>;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Union-тип для всех возможных результатов createSynapse
|
|
83
|
+
*/
|
|
84
|
+
type AnySynapseStore<TStore extends Record<string, any> = any, TStorage extends IStorage<TStore> = IStorage<any>, TSelectors = any, TActions = any> = SynapseStoreWithEffects<TStore, TStorage, TSelectors, TActions> | SynapseStoreWithDispatcher<TStore, TStorage, TSelectors, TActions> | SynapseStoreBasic<TStore, TStorage, TSelectors>;
|
|
85
|
+
/**
|
|
86
|
+
* Перегрузки функции createSynapse
|
|
87
|
+
*/
|
|
88
|
+
declare function createSynapse<TStore extends Record<string, any>, TSelectors = any, TDispatcher = any, TApi extends Record<string, any> = Record<string, never>, TConfig extends Record<string, any> = Record<string, never>, TExternalSelectors extends Record<string, any> = Record<string, any>, TStorage extends IStorage<TStore> = IStorage<TStore>>(config: CreateSynapseConfigWithEffects<TStore, TSelectors, TDispatcher, TApi, TConfig, TExternalSelectors>): Promise<SynapseStoreWithEffects<TStore, TStorage, TSelectors, ExtractDispatchType<TDispatcher>>>;
|
|
89
|
+
declare function createSynapse<TStore extends Record<string, any>, TSelectors = any, TDispatcher = any, TExternalSelectors extends Record<string, any> = Record<string, any>, TStorage extends IStorage<TStore> = IStorage<TStore>>(config: CreateSynapseConfigWithDispatcher<TStore, TSelectors, TDispatcher, TExternalSelectors>): Promise<SynapseStoreWithDispatcher<TStore, TStorage, TSelectors, ExtractDispatchType<TDispatcher>>>;
|
|
90
|
+
declare function createSynapse<TStore extends Record<string, any>, TSelectors = any, TExternalSelectors extends Record<string, any> = Record<string, any>, TStorage extends IStorage<TStore> = IStorage<TStore>>(config: CreateSynapseConfigBasic<TStore, TSelectors, TExternalSelectors>): Promise<SynapseStoreBasic<TStore, TStorage, TSelectors>>;
|
|
91
|
+
|
|
92
|
+
export { type AnySynapseStore, type SynapseStoreBasic, type SynapseStoreWithDispatcher, type SynapseStoreWithEffects, createSynapse };
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{a as createSynapse}from'./chunk-WQNH3LVB.js';import'./chunk-6RNZVHSR.js';import'./chunk-IPUPRMZK.js';import'./chunk-ZE2EJX2Y.js';import'./chunk-5X65PSGD.js';
|