synapse-storage 2.1.0 → 3.0.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 +32 -13
- package/dist/_utils/index.js +3 -3
- package/dist/api/api.module.js +3 -3
- package/dist/api/example.js +2 -2
- package/dist/api/index.js +5 -5
- package/dist/api/utils/endpoint-headers.js +1 -1
- package/dist/api/utils/fetch-base-query.js +1 -1
- package/dist/core/index.js +2 -2
- package/dist/core/selector/index.js +1 -1
- package/dist/core/storage/adapters/base-storage.service.js +1 -1
- package/dist/core/storage/adapters/indexed-DB.service.js +2 -2
- package/dist/core/storage/adapters/indexed-DB.service.old.js +2 -2
- package/dist/core/storage/adapters/local-storage.service.js +2 -2
- package/dist/core/storage/adapters/memory-storage.service.js +2 -2
- package/dist/core/storage/index.js +9 -9
- package/dist/core/storage/middlewares/index.js +1 -1
- package/dist/core/storage/utils/cache.util.js +1 -1
- package/dist/index.js +5 -9
- package/dist/index.js.map +1 -1
- package/dist/react/hooks/index.js +2 -2
- package/dist/react/index.js +2 -2
- package/dist/react/utils/createSynapseCtx.d.ts +23 -13
- package/dist/react/utils/createSynapseCtx.d.ts.map +1 -1
- package/dist/react/utils/createSynapseCtx.js +11 -10
- package/dist/react/utils/createSynapseCtx.js.map +1 -1
- package/dist/react/utils/index.js +1 -1
- package/dist/reactive/dispatcher/index.js +2 -2
- package/dist/reactive/dispatcher/middlewares/index.js +1 -1
- package/dist/reactive/effects/effects.module.d.ts +13 -3
- package/dist/reactive/effects/effects.module.d.ts.map +1 -1
- package/dist/reactive/effects/effects.module.js +22 -8
- package/dist/reactive/effects/effects.module.js.map +1 -1
- package/dist/reactive/effects/index.js +1 -1
- package/dist/reactive/effects/utils/index.js +2 -2
- package/dist/reactive/index.js +2 -2
- package/dist/utils/createSynapse.d.ts +58 -18
- package/dist/utils/createSynapse.d.ts.map +1 -1
- package/dist/utils/createSynapse.js +4 -12
- package/dist/utils/createSynapse.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/_examples/_example5.d.ts +0 -1
- package/dist/_examples/_example5.d.ts.map +0 -1
- package/dist/_examples/_example5.js +0 -184
- package/dist/_examples/_example5.js.map +0 -1
- package/dist/_examples/_example6.d.ts +0 -1
- package/dist/_examples/_example6.d.ts.map +0 -1
- package/dist/_examples/_example6.js +0 -168
- package/dist/_examples/_example6.js.map +0 -1
- package/dist/_examples/example1.d.ts +0 -1
- package/dist/_examples/example1.d.ts.map +0 -1
- package/dist/_examples/example1.js +0 -240
- package/dist/_examples/example1.js.map +0 -1
- package/dist/_examples/example2.d.ts +0 -1
- package/dist/_examples/example2.d.ts.map +0 -1
- package/dist/_examples/example2.js +0 -81
- package/dist/_examples/example2.js.map +0 -1
- package/dist/_examples/example3.d.ts +0 -1
- package/dist/_examples/example3.d.ts.map +0 -1
- package/dist/_examples/example3.js +0 -99
- package/dist/_examples/example3.js.map +0 -1
- package/dist/_examples/example4.d.ts +0 -1
- package/dist/_examples/example4.d.ts.map +0 -1
- package/dist/_examples/example4.js +0 -172
- package/dist/_examples/example4.js.map +0 -1
- package/dist/_examples/example5.d.ts +0 -1
- package/dist/_examples/example5.d.ts.map +0 -1
- package/dist/_examples/example5.js +0 -184
- package/dist/_examples/example5.js.map +0 -1
- package/dist/_examples/example6.d.ts +0 -1
- package/dist/_examples/example6.d.ts.map +0 -1
- package/dist/_examples/example6.js +0 -168
- package/dist/_examples/example6.js.map +0 -1
- package/dist/_examples/plugins.d.ts +0 -1
- package/dist/_examples/plugins.d.ts.map +0 -1
- package/dist/_examples/plugins.js +0 -176
- package/dist/_examples/plugins.js.map +0 -1
- package/dist/_examples/pokemons/PokemonList.d.ts +0 -5
- package/dist/_examples/pokemons/PokemonList.d.ts.map +0 -1
- package/dist/_examples/pokemons/PokemonList.js +0 -166
- package/dist/_examples/pokemons/PokemonList.js.map +0 -1
- package/dist/_examples/pokemons/api.d.ts +0 -8
- package/dist/_examples/pokemons/api.d.ts.map +0 -1
- package/dist/_examples/pokemons/api.js +0 -45
- package/dist/_examples/pokemons/api.js.map +0 -1
- package/dist/_examples/pokemons/app.config.d.ts +0 -15
- package/dist/_examples/pokemons/app.config.d.ts.map +0 -1
- package/dist/_examples/pokemons/app.config.js +0 -15
- package/dist/_examples/pokemons/app.config.js.map +0 -1
- package/dist/_examples/pokemons/dispatchers/pokemon.dispatcher.d.ts +0 -9
- package/dist/_examples/pokemons/dispatchers/pokemon.dispatcher.d.ts.map +0 -1
- package/dist/_examples/pokemons/dispatchers/pokemon.dispatcher.js +0 -122
- package/dist/_examples/pokemons/dispatchers/pokemon.dispatcher.js.map +0 -1
- package/dist/_examples/pokemons/effects/pokemon.effects.d.ts +0 -16
- package/dist/_examples/pokemons/effects/pokemon.effects.d.ts.map +0 -1
- package/dist/_examples/pokemons/effects/pokemon.effects.js +0 -39
- package/dist/_examples/pokemons/effects/pokemon.effects.js.map +0 -1
- package/dist/_examples/pokemons/middlewares/pokenon.middlewares.d.ts +0 -4
- package/dist/_examples/pokemons/middlewares/pokenon.middlewares.d.ts.map +0 -1
- package/dist/_examples/pokemons/middlewares/pokenon.middlewares.js +0 -27
- package/dist/_examples/pokemons/middlewares/pokenon.middlewares.js.map +0 -1
- package/dist/_examples/pokemons/pokemon.dispatcher.d.ts +0 -9
- package/dist/_examples/pokemons/pokemon.dispatcher.d.ts.map +0 -1
- package/dist/_examples/pokemons/pokemon.dispatcher.js +0 -122
- package/dist/_examples/pokemons/pokemon.dispatcher.js.map +0 -1
- package/dist/_examples/pokemons/pokemon.effects.d.ts +0 -5
- package/dist/_examples/pokemons/pokemon.effects.d.ts.map +0 -1
- package/dist/_examples/pokemons/pokemon.effects.js +0 -39
- package/dist/_examples/pokemons/pokemon.effects.js.map +0 -1
- package/dist/_examples/pokemons/pokemon.selectors.d.ts +0 -5
- package/dist/_examples/pokemons/pokemon.selectors.d.ts.map +0 -1
- package/dist/_examples/pokemons/pokemon.selectors.js +0 -10
- package/dist/_examples/pokemons/pokemon.selectors.js.map +0 -1
- package/dist/_examples/pokemons/pokemon.storage.d.ts +0 -3
- package/dist/_examples/pokemons/pokemon.storage.d.ts.map +0 -1
- package/dist/_examples/pokemons/pokemon.storage.js +0 -14
- package/dist/_examples/pokemons/pokemon.storage.js.map +0 -1
- package/dist/_examples/pokemons/pokemon1.selectors.d.ts +0 -5
- package/dist/_examples/pokemons/pokemon1.selectors.d.ts.map +0 -1
- package/dist/_examples/pokemons/pokemon1.selectors.js +0 -8
- package/dist/_examples/pokemons/pokemon1.selectors.js.map +0 -1
- package/dist/_examples/pokemons/pokenon.middlewares.d.ts +0 -4
- package/dist/_examples/pokemons/pokenon.middlewares.d.ts.map +0 -1
- package/dist/_examples/pokemons/pokenon.middlewares.js +0 -27
- package/dist/_examples/pokemons/pokenon.middlewares.js.map +0 -1
- package/dist/_examples/pokemons/selectors/pokemon.selectors.d.ts +0 -5
- package/dist/_examples/pokemons/selectors/pokemon.selectors.d.ts.map +0 -1
- package/dist/_examples/pokemons/selectors/pokemon.selectors.js +0 -10
- package/dist/_examples/pokemons/selectors/pokemon.selectors.js.map +0 -1
- package/dist/_examples/pokemons/selectors/pokemon1.selectors.d.ts +0 -5
- package/dist/_examples/pokemons/selectors/pokemon1.selectors.d.ts.map +0 -1
- package/dist/_examples/pokemons/selectors/pokemon1.selectors.js +0 -8
- package/dist/_examples/pokemons/selectors/pokemon1.selectors.js.map +0 -1
- package/dist/_examples/pokemons/storages/pokemon.storage.d.ts +0 -3
- package/dist/_examples/pokemons/storages/pokemon.storage.d.ts.map +0 -1
- package/dist/_examples/pokemons/storages/pokemon.storage.js +0 -14
- package/dist/_examples/pokemons/storages/pokemon.storage.js.map +0 -1
- package/dist/_examples/pokemons/store.d.ts +0 -1
- package/dist/_examples/pokemons/store.d.ts.map +0 -1
- package/dist/_examples/pokemons/store.js +0 -2
- package/dist/_examples/pokemons/store.js.map +0 -1
- package/dist/_examples/pokemons/store1.d.ts +0 -23
- package/dist/_examples/pokemons/store1.d.ts.map +0 -1
- package/dist/_examples/pokemons/store1.js +0 -35
- package/dist/_examples/pokemons/store1.js.map +0 -1
- package/dist/_examples/pokemons/store2.d.ts +0 -23
- package/dist/_examples/pokemons/store2.d.ts.map +0 -1
- package/dist/_examples/pokemons/store2.js +0 -34
- package/dist/_examples/pokemons/store2.js.map +0 -1
- package/dist/_examples/pokemons/types.d.ts +0 -26
- package/dist/_examples/pokemons/types.d.ts.map +0 -1
- package/dist/_examples/pokemons/types.js +0 -2
- package/dist/_examples/pokemons/types.js.map +0 -1
- package/dist/core/storage/adapters/idb.d.ts +0 -52
- package/dist/core/storage/adapters/idb.d.ts.map +0 -1
- package/dist/core/storage/adapters/idb.js +0 -528
- package/dist/core/storage/adapters/idb.js.map +0 -1
- package/dist/core/storage/adapters/indexed-DB.service1.d.ts +0 -38
- package/dist/core/storage/adapters/indexed-DB.service1.d.ts.map +0 -1
- package/dist/core/storage/adapters/indexed-DB.service1.js +0 -318
- package/dist/core/storage/adapters/indexed-DB.service1.js.map +0 -1
- package/dist/core/storage/adapters/indexed-DB.service2.d.ts +0 -61
- package/dist/core/storage/adapters/indexed-DB.service2.d.ts.map +0 -1
- package/dist/core/storage/adapters/indexed-DB.service2.js +0 -596
- package/dist/core/storage/adapters/indexed-DB.service2.js.map +0 -1
- package/dist/core/storage/factory/createSynapseStorage.factory.d.ts +0 -1
- package/dist/core/storage/factory/createSynapseStorage.factory.d.ts.map +0 -1
- package/dist/core/storage/factory/createSynapseStorage.factory.js +0 -2
- package/dist/core/storage/factory/createSynapseStorage.factory.js.map +0 -1
- package/dist/core/storage/factory/index.d.ts +0 -2
- package/dist/core/storage/factory/index.d.ts.map +0 -1
- package/dist/core/storage/factory/index.js +0 -2
- package/dist/core/storage/factory/index.js.map +0 -1
- package/dist/examples/_example5.d.ts +0 -1
- package/dist/examples/_example5.d.ts.map +0 -1
- package/dist/examples/_example5.js +0 -184
- package/dist/examples/_example5.js.map +0 -1
- package/dist/examples/_example6.d.ts +0 -1
- package/dist/examples/_example6.d.ts.map +0 -1
- package/dist/examples/_example6.js +0 -168
- package/dist/examples/_example6.js.map +0 -1
- package/dist/examples/plugins.d.ts +0 -1
- package/dist/examples/plugins.d.ts.map +0 -1
- package/dist/examples/plugins.js +0 -176
- package/dist/examples/plugins.js.map +0 -1
- package/dist/examples/pokemons/PokemonList.d.ts +0 -2
- package/dist/examples/pokemons/PokemonList.d.ts.map +0 -1
- package/dist/examples/pokemons/PokemonList.js +0 -110
- package/dist/examples/pokemons/PokemonList.js.map +0 -1
- package/dist/examples/pokemons/api.d.ts +0 -22
- package/dist/examples/pokemons/api.d.ts.map +0 -1
- package/dist/examples/pokemons/api.js +0 -43
- package/dist/examples/pokemons/api.js.map +0 -1
- package/dist/examples/pokemons/app.config.d.ts +0 -15
- package/dist/examples/pokemons/app.config.d.ts.map +0 -1
- package/dist/examples/pokemons/app.config.js +0 -15
- package/dist/examples/pokemons/app.config.js.map +0 -1
- package/dist/examples/pokemons/dispatchers/pokemon.dispatcher.js +0 -128
- package/dist/examples/pokemons/dispatchers/pokemon.dispatcher.js.map +0 -1
- package/dist/examples/pokemons/effects/pokemon.effects.d.ts +0 -16
- package/dist/examples/pokemons/effects/pokemon.effects.d.ts.map +0 -1
- package/dist/examples/pokemons/effects/pokemon.effects.js +0 -51
- package/dist/examples/pokemons/effects/pokemon.effects.js.map +0 -1
- package/dist/examples/pokemons/middlewares/pokenon.middlewares.d.ts +0 -4
- package/dist/examples/pokemons/middlewares/pokenon.middlewares.d.ts.map +0 -1
- package/dist/examples/pokemons/middlewares/pokenon.middlewares.js +0 -28
- package/dist/examples/pokemons/middlewares/pokenon.middlewares.js.map +0 -1
- package/dist/examples/pokemons/selectors/pokemon.selectors.d.ts +0 -13
- package/dist/examples/pokemons/selectors/pokemon.selectors.d.ts.map +0 -1
- package/dist/examples/pokemons/selectors/pokemon.selectors.js +0 -7
- package/dist/examples/pokemons/selectors/pokemon.selectors.js.map +0 -1
- package/dist/examples/pokemons/storages/pokemon.storage.d.ts +0 -5
- package/dist/examples/pokemons/storages/pokemon.storage.d.ts.map +0 -1
- package/dist/examples/pokemons/storages/pokemon.storage.js +0 -13
- package/dist/examples/pokemons/storages/pokemon.storage.js.map +0 -1
- package/dist/examples/pokemons/store.d.ts +0 -35
- package/dist/examples/pokemons/store.d.ts.map +0 -1
- package/dist/examples/pokemons/store.js +0 -21
- package/dist/examples/pokemons/store.js.map +0 -1
- package/dist/examples/pokemons/types.d.ts +0 -26
- package/dist/examples/pokemons/types.d.ts.map +0 -1
- package/dist/examples/pokemons/types.js +0 -2
- package/dist/examples/pokemons/types.js.map +0 -1
- package/dist/react/utils/createSynapse.d.ts +0 -47
- package/dist/react/utils/createSynapse.d.ts.map +0 -1
- package/dist/react/utils/createSynapse.js +0 -83
- package/dist/react/utils/createSynapse.js.map +0 -1
- package/dist/react/utils/createSynapseContext.d.ts +0 -29
- package/dist/react/utils/createSynapseContext.d.ts.map +0 -1
- package/dist/react/utils/createSynapseContext.js +0 -112
- package/dist/react/utils/createSynapseContext.js.map +0 -1
- 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/reactive/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './dispatcher';
|
|
2
|
-
export * from './effects';
|
|
1
|
+
export * from './dispatcher/index.js';
|
|
2
|
+
export * from './effects/index.js';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
-
import {
|
|
2
|
+
import { ISelectorModule, IStorage } from '../core';
|
|
3
3
|
import { Effect, ExternalStates } from '../reactive';
|
|
4
4
|
export type ExtractPromiseType<T> = T extends Promise<infer U> ? U : T;
|
|
5
5
|
export type ExtractStorageType<T> = T extends IStorage<infer U> ? U : never;
|
|
@@ -8,9 +8,9 @@ export type ExtractDispatchType<T> = T extends {
|
|
|
8
8
|
} ? D : never;
|
|
9
9
|
export type StorageCreatorFunction<T extends Record<string, any>> = () => Promise<IStorage<T>>;
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
11
|
+
* Базовая конфигурация хранилища
|
|
12
12
|
*/
|
|
13
|
-
|
|
13
|
+
type BaseSynapseConfig<TStore extends Record<string, any>, TSelectors = any, TExternalSelectors extends Record<string, any> = Record<string, any>> = ({
|
|
14
14
|
storage: IStorage<TStore>;
|
|
15
15
|
createStorageFn?: undefined;
|
|
16
16
|
} | {
|
|
@@ -19,34 +19,74 @@ export type CreateSynapseConfig<TStore extends Record<string, any>, TSelectors =
|
|
|
19
19
|
}) & {
|
|
20
20
|
externalSelectors?: TExternalSelectors;
|
|
21
21
|
createSelectorsFn?: (selectorModule: ISelectorModule<TStore>, externalSelectors: TExternalSelectors) => TSelectors;
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Конфигурация с dispatcher и effects
|
|
25
|
+
*/
|
|
26
|
+
export 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) => {
|
|
24
29
|
dispatchers: Record<string, any>;
|
|
25
|
-
externalStates?: TExternalStates;
|
|
26
30
|
api?: TApi;
|
|
27
31
|
config?: TConfig;
|
|
32
|
+
externalStates?: ExternalStates;
|
|
28
33
|
};
|
|
29
|
-
effects?: Effect<TStore, any, TApi, TConfig>[];
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
34
|
+
effects?: Effect<TStore, any, TApi, TConfig, any>[];
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Конфигурация только с dispatcher
|
|
38
|
+
*/
|
|
39
|
+
export 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;
|
|
33
43
|
};
|
|
34
44
|
/**
|
|
35
|
-
*
|
|
45
|
+
* Конфигурация без dispatcher
|
|
36
46
|
*/
|
|
37
|
-
export
|
|
47
|
+
export 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
|
+
export interface SynapseStoreWithEffects<TStore extends Record<string, any>, TStorage extends IStorage<TStore>, TSelectors, TActions> {
|
|
38
56
|
storage: TStorage;
|
|
39
57
|
selectors: TSelectors;
|
|
40
58
|
actions: TActions;
|
|
41
59
|
state$: Observable<TStore>;
|
|
60
|
+
dispatcher: any;
|
|
42
61
|
destroy: () => Promise<void>;
|
|
43
|
-
dispatcher: TDispatcher;
|
|
44
62
|
}
|
|
45
63
|
/**
|
|
46
|
-
*
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
64
|
+
* Результат только с dispatcher
|
|
65
|
+
*/
|
|
66
|
+
export 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
|
+
export 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
|
+
export 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
|
|
50
87
|
*/
|
|
51
|
-
export 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>,
|
|
88
|
+
export 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
|
+
export 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
|
+
export 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
|
+
export {};
|
|
52
92
|
//# sourceMappingURL=createSynapse.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSynapse.d.ts","sourceRoot":"","sources":["../../src/utils/createSynapse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAEjC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"createSynapse.d.ts","sourceRoot":"","sources":["../../src/utils/createSynapse.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
2
1
|
import { SelectorModule } from '../core';
|
|
3
2
|
import { EffectsModule } from '../reactive';
|
|
4
|
-
|
|
5
|
-
* Создает хранилище Synapse
|
|
6
|
-
*
|
|
7
|
-
* @param config Конфигурация для создания хранилища
|
|
8
|
-
* @returns Promise, который разрешается в SynapseStore
|
|
9
|
-
*/
|
|
3
|
+
// Основная реализация
|
|
10
4
|
export async function createSynapse(config) {
|
|
11
5
|
// Создаем и инициализируем хранилище
|
|
12
6
|
const storageInstance = (config.createStorageFn ? await config.createStorageFn() : config.storage);
|
|
@@ -15,9 +9,6 @@ export async function createSynapse(config) {
|
|
|
15
9
|
const result = {
|
|
16
10
|
storage: storageInstance,
|
|
17
11
|
selectors: {},
|
|
18
|
-
actions: {},
|
|
19
|
-
state$: new Observable(),
|
|
20
|
-
dispatcher: undefined,
|
|
21
12
|
destroy: async () => {
|
|
22
13
|
for (const callback of cleanupCallbacks) {
|
|
23
14
|
await callback();
|
|
@@ -31,7 +22,7 @@ export async function createSynapse(config) {
|
|
|
31
22
|
// Создаем модуль селекторов
|
|
32
23
|
if (config.createSelectorsFn) {
|
|
33
24
|
try {
|
|
34
|
-
selectorModule = new SelectorModule(storageInstance
|
|
25
|
+
selectorModule = new SelectorModule(storageInstance);
|
|
35
26
|
const externalSelectors = config.externalSelectors || {};
|
|
36
27
|
result.selectors = config.createSelectorsFn(selectorModule, externalSelectors);
|
|
37
28
|
if (typeof selectorModule.destroy === 'function') {
|
|
@@ -60,10 +51,11 @@ export async function createSynapse(config) {
|
|
|
60
51
|
const { dispatchers, api, config: effectConfig, externalStates } = config.createEffectConfig(dispatcher);
|
|
61
52
|
// Получаем внешние состояния из конфигурации эффектов
|
|
62
53
|
const effectExternalStates = externalStates || {};
|
|
63
|
-
// Создаем модуль эффектов
|
|
54
|
+
// Создаем модуль эффектов с внешними состояниями
|
|
64
55
|
effectsModule = new EffectsModule(storageInstance, effectExternalStates, dispatchers, api, effectConfig);
|
|
65
56
|
// Добавляем эффекты
|
|
66
57
|
if (Array.isArray(config.effects)) {
|
|
58
|
+
// @ts-ignore
|
|
67
59
|
config.effects.forEach((effect) => {
|
|
68
60
|
if (effectsModule)
|
|
69
61
|
effectsModule.add(effect);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSynapse.js","sourceRoot":"","sources":["../../src/utils/createSynapse.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createSynapse.js","sourceRoot":"","sources":["../../src/utils/createSynapse.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { createSynapse, type
|
|
1
|
+
export { type AnySynapseStore, createSynapse, type SynapseStoreBasic, type SynapseStoreWithDispatcher, type SynapseStoreWithEffects } from './createSynapse';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,KAAK,0BAA0B,EAAE,KAAK,uBAAuB,EAAE,MAAM,iBAAiB,CAAA"}
|
package/dist/utils/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { createSynapse } from './createSynapse';
|
|
1
|
+
export { createSynapse } from './createSynapse/index.js';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,aAAa,EAAyF,MAAM,iBAAiB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "synapse-storage",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Библиотека для управления состоянием и апи-запросами",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"license": "MIT",
|
|
31
31
|
"private": false,
|
|
32
32
|
"scripts": {
|
|
33
|
-
"build": "tsc",
|
|
33
|
+
"build": "tsc && node fix-imports.js",
|
|
34
34
|
"watch": "tsc --watch",
|
|
35
35
|
"lint": "eslint src --ext .ts",
|
|
36
36
|
"lint:fix": "eslint --config eslint.config.mjs src --ext .ts,.tsx --fix",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=_example5.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_example5.d.ts","sourceRoot":"","sources":["../../src/_examples/_example5.tsx"],"names":[],"mappings":""}
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// import React, { useState } from 'react'
|
|
3
|
-
// import { MemoryStorage, StoragePluginModule, ILogger } from 'synapse'
|
|
4
|
-
// import { LoggingPlugin, ValidationPlugin } from './plugins'
|
|
5
|
-
//
|
|
6
|
-
// // Типы данных
|
|
7
|
-
// interface User {
|
|
8
|
-
// name: string;
|
|
9
|
-
// age: number;
|
|
10
|
-
// }
|
|
11
|
-
//
|
|
12
|
-
// // Создаем модуль плагинов
|
|
13
|
-
// const plugins = new StoragePluginModule(undefined, console, 'demoStorage')
|
|
14
|
-
//
|
|
15
|
-
// // Создаем стейт для ошибок, чтобы компоненты могли получить к нему доступ
|
|
16
|
-
// const validationErrors: { [key: string]: string } = {}
|
|
17
|
-
//
|
|
18
|
-
// // Добавляем логирующий плагин
|
|
19
|
-
// await plugins.add(new LoggingPlugin({ logLevel: 'debug' }))
|
|
20
|
-
//
|
|
21
|
-
// // Добавляем плагин валидации с обработчиком ошибок
|
|
22
|
-
// const validation = new ValidationPlugin({
|
|
23
|
-
// throwOnInvalid: true, // Все равно генерировать ошибку
|
|
24
|
-
// onValidationError: (key, value, message) => {
|
|
25
|
-
// // Сохраняем ошибку в общем объекте
|
|
26
|
-
// validationErrors[key] = message
|
|
27
|
-
// console.error(`Validation error for ${key}: ${message}`, value)
|
|
28
|
-
// },
|
|
29
|
-
// })
|
|
30
|
-
//
|
|
31
|
-
// // Настраиваем правила валидации
|
|
32
|
-
// validation.addValidator('user', (value) => {
|
|
33
|
-
// // Сбрасываем ошибки при каждой валидации
|
|
34
|
-
// validationErrors.user = ''
|
|
35
|
-
//
|
|
36
|
-
// if (!value || typeof value !== 'object') {
|
|
37
|
-
// return { valid: false, message: 'User must be an object' }
|
|
38
|
-
// }
|
|
39
|
-
//
|
|
40
|
-
// if (!value.name || value.name.trim() === '') {
|
|
41
|
-
// return { valid: false, message: 'User must have a name' }
|
|
42
|
-
// }
|
|
43
|
-
//
|
|
44
|
-
// if (typeof value.age !== 'number' || value.age < 10) {
|
|
45
|
-
// return { valid: false, message: 'Возраст должен быть больше 10' }
|
|
46
|
-
// }
|
|
47
|
-
//
|
|
48
|
-
// return { valid: true }
|
|
49
|
-
// })
|
|
50
|
-
//
|
|
51
|
-
// await plugins.add(validation)
|
|
52
|
-
//
|
|
53
|
-
//
|
|
54
|
-
// // Создаем хранилище с плагинами
|
|
55
|
-
// const storage = await new MemoryStorage<{user?: User}>({
|
|
56
|
-
// name: 'demoStorage',
|
|
57
|
-
// initialState: { version: '1.0.0' },
|
|
58
|
-
// }, plugins).initialize()
|
|
59
|
-
//
|
|
60
|
-
// // Компонент для демонстрации
|
|
61
|
-
// export function Example5() {
|
|
62
|
-
// const [user, setUser] = useState<User | null>(null)
|
|
63
|
-
// const [name, setName] = useState('')
|
|
64
|
-
// const [age, setAge] = useState('')
|
|
65
|
-
// const [error, setError] = useState<string | null>(null)
|
|
66
|
-
// const [fieldErrors, setFieldErrors] = useState<{name?: string, age?: string}>({})
|
|
67
|
-
//
|
|
68
|
-
// // Функция для сохранения пользователя
|
|
69
|
-
// const saveUser = async () => {
|
|
70
|
-
// try {
|
|
71
|
-
// // Сбрасываем ошибки при каждой отправке
|
|
72
|
-
// setError(null)
|
|
73
|
-
// setFieldErrors({})
|
|
74
|
-
//
|
|
75
|
-
// const userData: User = {
|
|
76
|
-
// name,
|
|
77
|
-
// age: parseInt(age, 10) || 0, // Преобразуем в число или 0, если невалидно
|
|
78
|
-
// }
|
|
79
|
-
//
|
|
80
|
-
// await storage.set('user', userData)
|
|
81
|
-
// setUser(userData)
|
|
82
|
-
// console.log('User saved successfully')
|
|
83
|
-
// } catch (err) {
|
|
84
|
-
// // Получаем сообщение ошибки
|
|
85
|
-
// const errorMessage = err instanceof Error ? err.message : String(err)
|
|
86
|
-
//
|
|
87
|
-
// // Устанавливаем общую ошибку
|
|
88
|
-
// setError(errorMessage)
|
|
89
|
-
//
|
|
90
|
-
// // Определяем, какое поле вызвало ошибку и устанавливаем ошибку для него
|
|
91
|
-
// if (errorMessage.includes('name')) {
|
|
92
|
-
// setFieldErrors((prev) => ({ ...prev, name: 'Имя обязательно' }))
|
|
93
|
-
// }
|
|
94
|
-
//
|
|
95
|
-
// if (errorMessage.includes('возраст') || errorMessage.includes('больше 10')) {
|
|
96
|
-
// setFieldErrors((prev) => ({ ...prev, age: 'Возраст должен быть больше 10' }))
|
|
97
|
-
// }
|
|
98
|
-
//
|
|
99
|
-
// console.error('Error saving user:', errorMessage)
|
|
100
|
-
// }
|
|
101
|
-
// }
|
|
102
|
-
//
|
|
103
|
-
// return (
|
|
104
|
-
// <div style={{ fontFamily: 'Arial', padding: '20px' }}>
|
|
105
|
-
// <h2>Пример с валидацией</h2>
|
|
106
|
-
//
|
|
107
|
-
// {/* Если есть общая ошибка, показываем её */}
|
|
108
|
-
// {error && (
|
|
109
|
-
// <div style={{
|
|
110
|
-
// padding: '10px',
|
|
111
|
-
// backgroundColor: '#ffebee',
|
|
112
|
-
// color: '#d32f2f',
|
|
113
|
-
// borderRadius: '4px',
|
|
114
|
-
// marginBottom: '15px',
|
|
115
|
-
// }}
|
|
116
|
-
// >
|
|
117
|
-
// {error}
|
|
118
|
-
// </div>
|
|
119
|
-
// )}
|
|
120
|
-
//
|
|
121
|
-
// <div style={{ marginBottom: '20px' }}>
|
|
122
|
-
// <div style={{ marginBottom: '10px' }}>
|
|
123
|
-
// <label style={{ display: 'block', marginBottom: '5px' }}>Имя:</label>
|
|
124
|
-
// <input
|
|
125
|
-
// type="text"
|
|
126
|
-
// value={name}
|
|
127
|
-
// onChange={(e) => setName(e.target.value)}
|
|
128
|
-
// style={{
|
|
129
|
-
// padding: '8px',
|
|
130
|
-
// width: '250px',
|
|
131
|
-
// border: fieldErrors.name ? '1px solid #d32f2f' : '1px solid #ccc',
|
|
132
|
-
// }}
|
|
133
|
-
// />
|
|
134
|
-
// {fieldErrors.name && (
|
|
135
|
-
// <div style={{ color: '#d32f2f', fontSize: '14px', marginTop: '5px' }}>
|
|
136
|
-
// {fieldErrors.name}
|
|
137
|
-
// </div>
|
|
138
|
-
// )}
|
|
139
|
-
// </div>
|
|
140
|
-
//
|
|
141
|
-
// <div style={{ marginBottom: '15px' }}>
|
|
142
|
-
// <label style={{ display: 'block', marginBottom: '5px' }}>Возраст:</label>
|
|
143
|
-
// <input
|
|
144
|
-
// type="number"
|
|
145
|
-
// value={age}
|
|
146
|
-
// onChange={(e) => setAge(e.target.value)}
|
|
147
|
-
// style={{
|
|
148
|
-
// padding: '8px',
|
|
149
|
-
// width: '250px',
|
|
150
|
-
// border: fieldErrors.age ? '1px solid #d32f2f' : '1px solid #ccc',
|
|
151
|
-
// }}
|
|
152
|
-
// />
|
|
153
|
-
// {fieldErrors.age && (
|
|
154
|
-
// <div style={{ color: '#d32f2f', fontSize: '14px', marginTop: '5px' }}>
|
|
155
|
-
// {fieldErrors.age}
|
|
156
|
-
// </div>
|
|
157
|
-
// )}
|
|
158
|
-
// </div>
|
|
159
|
-
//
|
|
160
|
-
// <button
|
|
161
|
-
// onClick={saveUser}
|
|
162
|
-
// style={{
|
|
163
|
-
// padding: '10px 15px',
|
|
164
|
-
// backgroundColor: '#4CAF50',
|
|
165
|
-
// color: 'white',
|
|
166
|
-
// border: 'none',
|
|
167
|
-
// borderRadius: '4px',
|
|
168
|
-
// cursor: 'pointer',
|
|
169
|
-
// }}
|
|
170
|
-
// >
|
|
171
|
-
// Сохранить
|
|
172
|
-
// </button>
|
|
173
|
-
// </div>
|
|
174
|
-
//
|
|
175
|
-
// <div style={{ border: '1px solid #ddd', padding: '15px', borderRadius: '4px' }}>
|
|
176
|
-
// <h3>Текущие данные:</h3>
|
|
177
|
-
// <pre style={{ backgroundColor: '#f5f5f5', padding: '10px', borderRadius: '4px' }}>
|
|
178
|
-
// {user ? JSON.stringify(user, null, 2) : 'Нет данных'}
|
|
179
|
-
// </pre>
|
|
180
|
-
// </div>
|
|
181
|
-
// </div>
|
|
182
|
-
// )
|
|
183
|
-
// }
|
|
184
|
-
//# sourceMappingURL=_example5.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_example5.js","sourceRoot":"","sources":["../../src/_examples/_example5.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=_example6.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_example6.d.ts","sourceRoot":"","sources":["../../src/_examples/_example6.tsx"],"names":[],"mappings":""}
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// import React, { useEffect, useState } from 'react'
|
|
3
|
-
// import { IndexedDBStorage, LocalStorage, MemoryStorage, SelectorModule } from 'synapse'
|
|
4
|
-
//
|
|
5
|
-
// interface Counter {
|
|
6
|
-
// value: number;
|
|
7
|
-
// lastUpdated?: Date;
|
|
8
|
-
// }
|
|
9
|
-
//
|
|
10
|
-
// // Создаем хранилища
|
|
11
|
-
// const counter1 = await new MemoryStorage<Counter>({
|
|
12
|
-
// name: 'counter1',
|
|
13
|
-
// initialState: { value: 1 },
|
|
14
|
-
// }).initialize()
|
|
15
|
-
//
|
|
16
|
-
// const counter2 = await new IndexedDBStorage<Counter>({
|
|
17
|
-
// name: 'counter2',
|
|
18
|
-
// options: {
|
|
19
|
-
// dbVersion: 2,
|
|
20
|
-
// storeName: 'counter23',
|
|
21
|
-
// dbName: 'counter23',
|
|
22
|
-
// },
|
|
23
|
-
// initialState: { value: 2 },
|
|
24
|
-
// }).initialize()
|
|
25
|
-
//
|
|
26
|
-
// const counter3 = await new LocalStorage<Counter>({
|
|
27
|
-
// name: 'counter3',
|
|
28
|
-
// initialState: { value: 3 },
|
|
29
|
-
// }).initialize()
|
|
30
|
-
//
|
|
31
|
-
// const counter1Selector = new SelectorModule<Counter>(counter1, console)
|
|
32
|
-
// const counter2Selector = new SelectorModule(counter2)
|
|
33
|
-
// const counter3Selector = new SelectorModule(counter3)
|
|
34
|
-
//
|
|
35
|
-
// const counter1ValueSelector = counter1Selector.createSelector((s) => s.value)
|
|
36
|
-
// const counter2ValueSelector = counter2Selector.createSelector((s) => s.value)
|
|
37
|
-
// const counter3ValueSelector = counter3Selector.createSelector((s) => s.value)
|
|
38
|
-
//
|
|
39
|
-
// const sum = counter3Selector.createSelector(
|
|
40
|
-
// [counter1ValueSelector, counter2ValueSelector, counter3ValueSelector],
|
|
41
|
-
// (a, b, c) => a + b + c,
|
|
42
|
-
// )
|
|
43
|
-
//
|
|
44
|
-
// sum.subscribe({
|
|
45
|
-
// notify: (value) => {
|
|
46
|
-
// console.log('sum-notify', value)
|
|
47
|
-
// },
|
|
48
|
-
// })
|
|
49
|
-
//
|
|
50
|
-
// counter1ValueSelector.subscribe({
|
|
51
|
-
// notify: (value) => {
|
|
52
|
-
// console.log('counter1ValueUnsubscribe', value)
|
|
53
|
-
// },
|
|
54
|
-
// })
|
|
55
|
-
//
|
|
56
|
-
// counter2ValueSelector.subscribe({
|
|
57
|
-
// notify: async (value) => {
|
|
58
|
-
// console.log('counter2ValueUnsubscribe', value)
|
|
59
|
-
// },
|
|
60
|
-
// })
|
|
61
|
-
//
|
|
62
|
-
// // Компонент для демонстрации работы middleware
|
|
63
|
-
//
|
|
64
|
-
// export const Example6 = React.memo(() => {
|
|
65
|
-
// const [counter1Value, setCounter1Value] = useState(0)
|
|
66
|
-
// const [counter2Value, setCounter2Value] = useState(0)
|
|
67
|
-
// const [counter3Value, setCounter3Value] = useState(0)
|
|
68
|
-
//
|
|
69
|
-
// useEffect(() => {
|
|
70
|
-
// sum.select().then((r) => {
|
|
71
|
-
// console.log('result', r)
|
|
72
|
-
// })
|
|
73
|
-
// const a = sum.select().then((r) => r)
|
|
74
|
-
// console.log('a', a)
|
|
75
|
-
// }, [])
|
|
76
|
-
//
|
|
77
|
-
// useEffect(() => {
|
|
78
|
-
// // Подписываемся на изменения counter1
|
|
79
|
-
// const unsubscribe1 = counter1.subscribe((s) => s.value, setCounter1Value)
|
|
80
|
-
// return () => {
|
|
81
|
-
// unsubscribe1()
|
|
82
|
-
// }
|
|
83
|
-
// }, [])
|
|
84
|
-
//
|
|
85
|
-
// useEffect(() => {
|
|
86
|
-
// // Подписываемся на изменения counter1
|
|
87
|
-
// const unsubscribe2 = counter2.subscribe((s) => s.value, setCounter2Value)
|
|
88
|
-
// return () => {
|
|
89
|
-
// unsubscribe2()
|
|
90
|
-
// }
|
|
91
|
-
// }, [])
|
|
92
|
-
// useEffect(() => {
|
|
93
|
-
// // Подписываемся на изменения counter1
|
|
94
|
-
// const unsubscribe3 = counter3.subscribe((s) => s.value, setCounter3Value)
|
|
95
|
-
// return () => {
|
|
96
|
-
// unsubscribe3()
|
|
97
|
-
// }
|
|
98
|
-
// }, [])
|
|
99
|
-
//
|
|
100
|
-
// // Функции для обновления счетчиков
|
|
101
|
-
// const updateCounter1 = async () => {
|
|
102
|
-
// await counter1.update((state) => {
|
|
103
|
-
// state.value++
|
|
104
|
-
// })
|
|
105
|
-
// }
|
|
106
|
-
//
|
|
107
|
-
// const updateCounter2 = async () => {
|
|
108
|
-
// await counter2.update((state) => {
|
|
109
|
-
// state.value++
|
|
110
|
-
// })
|
|
111
|
-
// }
|
|
112
|
-
//
|
|
113
|
-
// const updateCounter3 = async () => {
|
|
114
|
-
// await counter3.set('value', counter3Value + 1)
|
|
115
|
-
// }
|
|
116
|
-
//
|
|
117
|
-
// return (
|
|
118
|
-
// <div style={{ fontFamily: 'Arial', padding: '20px' }}>
|
|
119
|
-
// <h2>Middleware Testing</h2>
|
|
120
|
-
//
|
|
121
|
-
// <div style={{ display: 'flex', gap: '20px', marginBottom: '20px' }}>
|
|
122
|
-
// <div style={{ border: '1px solid #ccc', padding: '15px', borderRadius: '5px' }}>
|
|
123
|
-
// <h3>Counter 1 (Both Middlewares)</h3>
|
|
124
|
-
// <p>
|
|
125
|
-
// Value:
|
|
126
|
-
// {counter1Value}
|
|
127
|
-
// </p>
|
|
128
|
-
// <button
|
|
129
|
-
// onClick={updateCounter1}
|
|
130
|
-
// style={{ padding: '8px 15px', backgroundColor: '#4CAF50', color: 'white', border: 'none', borderRadius: '4px' }}
|
|
131
|
-
// >
|
|
132
|
-
// Increment
|
|
133
|
-
// </button>
|
|
134
|
-
// </div>
|
|
135
|
-
//
|
|
136
|
-
// <div style={{ border: '1px solid #ccc', padding: '15px', borderRadius: '5px' }}>
|
|
137
|
-
// <h3>Counter 2 (ShallowCompare)</h3>
|
|
138
|
-
// <p>
|
|
139
|
-
// Value:
|
|
140
|
-
// {counter2Value}
|
|
141
|
-
// </p>
|
|
142
|
-
// <button
|
|
143
|
-
// onClick={updateCounter2}
|
|
144
|
-
// style={{ padding: '8px 15px', backgroundColor: '#2196F3', color: 'white', border: 'none', borderRadius: '4px' }}
|
|
145
|
-
// >
|
|
146
|
-
// Update
|
|
147
|
-
// </button>
|
|
148
|
-
// <p><small>Every 3rd click tries to set the same value</small></p>
|
|
149
|
-
// </div>
|
|
150
|
-
//
|
|
151
|
-
// <div style={{ border: '1px solid #ccc', padding: '15px', borderRadius: '5px' }}>
|
|
152
|
-
// <h3>Counter 3 (Batching)</h3>
|
|
153
|
-
// <p>
|
|
154
|
-
// Value:
|
|
155
|
-
// {counter3Value}
|
|
156
|
-
// </p>
|
|
157
|
-
// <button
|
|
158
|
-
// onClick={updateCounter3}
|
|
159
|
-
// style={{ padding: '8px 15px', backgroundColor: '#FF9800', color: 'white', border: 'none', borderRadius: '4px' }}
|
|
160
|
-
// >
|
|
161
|
-
// Batch Update
|
|
162
|
-
// </button>
|
|
163
|
-
// </div>
|
|
164
|
-
// </div>
|
|
165
|
-
// </div>
|
|
166
|
-
// )
|
|
167
|
-
// })
|
|
168
|
-
//# sourceMappingURL=_example6.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_example6.js","sourceRoot":"","sources":["../../src/_examples/_example6.tsx"],"names":[],"mappings":";AAAA,qDAAqD;AACrD,0FAA0F;AAC1F,EAAE;AACF,sBAAsB;AACtB,mBAAmB;AACnB,wBAAwB;AACxB,IAAI;AACJ,EAAE;AACF,uBAAuB;AACvB,sDAAsD;AACtD,sBAAsB;AACtB,gCAAgC;AAChC,kBAAkB;AAClB,EAAE;AACF,yDAAyD;AACzD,sBAAsB;AACtB,eAAe;AACf,oBAAoB;AACpB,8BAA8B;AAC9B,2BAA2B;AAC3B,OAAO;AACP,gCAAgC;AAChC,kBAAkB;AAClB,EAAE;AACF,qDAAqD;AACrD,sBAAsB;AACtB,gCAAgC;AAChC,kBAAkB;AAClB,EAAE;AACF,0EAA0E;AAC1E,wDAAwD;AACxD,wDAAwD;AACxD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAChF,EAAE;AACF,+CAA+C;AAC/C,2EAA2E;AAC3E,4BAA4B;AAC5B,IAAI;AACJ,EAAE;AACF,kBAAkB;AAClB,yBAAyB;AACzB,uCAAuC;AACvC,OAAO;AACP,KAAK;AACL,EAAE;AACF,oCAAoC;AACpC,yBAAyB;AACzB,qDAAqD;AACrD,OAAO;AACP,KAAK;AACL,EAAE;AACF,oCAAoC;AACpC,+BAA+B;AAC/B,qDAAqD;AACrD,OAAO;AACP,KAAK;AACL,EAAE;AACF,kDAAkD;AAClD,EAAE;AACF,6CAA6C;AAC7C,0DAA0D;AAC1D,0DAA0D;AAC1D,0DAA0D;AAC1D,EAAE;AACF,sBAAsB;AACtB,iCAAiC;AACjC,iCAAiC;AACjC,SAAS;AACT,4CAA4C;AAC5C,0BAA0B;AAC1B,WAAW;AACX,EAAE;AACF,sBAAsB;AACtB,6CAA6C;AAC7C,gFAAgF;AAChF,qBAAqB;AACrB,uBAAuB;AACvB,QAAQ;AACR,WAAW;AACX,EAAE;AACF,sBAAsB;AACtB,6CAA6C;AAC7C,gFAAgF;AAChF,qBAAqB;AACrB,uBAAuB;AACvB,QAAQ;AACR,WAAW;AACX,sBAAsB;AACtB,6CAA6C;AAC7C,gFAAgF;AAChF,qBAAqB;AACrB,uBAAuB;AACvB,QAAQ;AACR,WAAW;AACX,EAAE;AACF,wCAAwC;AACxC,yCAAyC;AACzC,yCAAyC;AACzC,sBAAsB;AACtB,SAAS;AACT,MAAM;AACN,EAAE;AACF,yCAAyC;AACzC,yCAAyC;AACzC,sBAAsB;AACtB,SAAS;AACT,MAAM;AACN,EAAE;AACF,yCAAyC;AACzC,qDAAqD;AACrD,MAAM;AACN,EAAE;AACF,aAAa;AACb,6DAA6D;AAC7D,oCAAoC;AACpC,EAAE;AACF,6EAA6E;AAC7E,2FAA2F;AAC3F,kDAAkD;AAClD,gBAAgB;AAChB,qBAAqB;AACrB,8BAA8B;AAC9B,iBAAiB;AACjB,oBAAoB;AACpB,uCAAuC;AACvC,+HAA+H;AAC/H,cAAc;AACd,wBAAwB;AACxB,sBAAsB;AACtB,iBAAiB;AACjB,EAAE;AACF,2FAA2F;AAC3F,gDAAgD;AAChD,gBAAgB;AAChB,qBAAqB;AACrB,8BAA8B;AAC9B,iBAAiB;AACjB,oBAAoB;AACpB,uCAAuC;AACvC,+HAA+H;AAC/H,cAAc;AACd,qBAAqB;AACrB,sBAAsB;AACtB,8EAA8E;AAC9E,iBAAiB;AACjB,EAAE;AACF,2FAA2F;AAC3F,0CAA0C;AAC1C,gBAAgB;AAChB,qBAAqB;AACrB,8BAA8B;AAC9B,iBAAiB;AACjB,oBAAoB;AACpB,uCAAuC;AACvC,+HAA+H;AAC/H,cAAc;AACd,2BAA2B;AAC3B,sBAAsB;AACtB,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,MAAM;AACN,KAAK"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=example1.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"example1.d.ts","sourceRoot":"","sources":["../../src/_examples/example1.tsx"],"names":[],"mappings":""}
|