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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/examples/pokemons/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAEjE,MAAM,CAAC,MAAM,EACX,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,gBAAgB,GAC5B,GAAG,MAAM,aAAa,CAAC;IACtB,eAAe,EAAE,oBAAoB;IACrC,kBAAkB,EAAE,uBAAuB;IAC3C,iBAAiB,EAAE,sBAAsB;IACzC,kBAAkB,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACnC,WAAW,EAAE;YACX,iBAAiB,EAAE,UAAU;SAC9B;QACD,GAAG,EAAE;YACH,UAAU,EAAE,gBAAgB;SAC7B;KACF,CAAC;IACF,OAAO,EAAE,CAAC,cAAc,CAAC;CAC1B,CAAC,CAAA"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
export interface Pokemon {
|
|
2
|
-
id: number;
|
|
3
|
-
name: string;
|
|
4
|
-
types: Array<{
|
|
5
|
-
type: {
|
|
6
|
-
name: string;
|
|
7
|
-
};
|
|
8
|
-
}>;
|
|
9
|
-
sprites: {
|
|
10
|
-
front_default: string;
|
|
11
|
-
other?: {
|
|
12
|
-
'official-artwork'?: {
|
|
13
|
-
front_default?: string;
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
height: number;
|
|
18
|
-
weight: number;
|
|
19
|
-
}
|
|
20
|
-
export interface PokemonState {
|
|
21
|
-
currentPokemon: Pokemon | null | undefined;
|
|
22
|
-
loading: boolean;
|
|
23
|
-
error: string | null;
|
|
24
|
-
currentId: number;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/examples/pokemons/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC,CAAA;IACxC,OAAO,EAAE;QACP,aAAa,EAAE,MAAM,CAAA;QACrB,KAAK,CAAC,EAAE;YACN,kBAAkB,CAAC,EAAE;gBACnB,aAAa,CAAC,EAAE,MAAM,CAAA;aACvB,CAAA;SACF,CAAA;KACF,CAAA;IACD,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAGD,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAAA;IAC1C,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/examples/pokemons/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
2
|
-
import { ISelectorModule, IStorage } from '../../core';
|
|
3
|
-
import { Effect } from '../../reactive';
|
|
4
|
-
export type ExtractPromiseType<T> = T extends Promise<infer U> ? U : T;
|
|
5
|
-
export type ExtractStorageType<T> = T extends IStorage<infer U> ? U : never;
|
|
6
|
-
export type ExtractDispatchType<T> = T extends {
|
|
7
|
-
dispatch: infer D;
|
|
8
|
-
} ? D : never;
|
|
9
|
-
export type StorageCreatorFunction<T extends Record<string, any>> = () => Promise<IStorage<T>>;
|
|
10
|
-
/**
|
|
11
|
-
* Конфигурация хранилища
|
|
12
|
-
*/
|
|
13
|
-
export type CreateSynapseConfig<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>> = ({
|
|
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
|
-
createDispatcherFn?: (storage: IStorage<TStore>) => TDispatcher;
|
|
23
|
-
createEffectConfig?: (dispatcher: TDispatcher) => {
|
|
24
|
-
dispatchers: Record<string, any>;
|
|
25
|
-
api?: TApi;
|
|
26
|
-
config?: TConfig;
|
|
27
|
-
};
|
|
28
|
-
effects?: Effect<TStore, any, TApi, TConfig>[];
|
|
29
|
-
};
|
|
30
|
-
/**
|
|
31
|
-
* Возвращаемый результат
|
|
32
|
-
*/
|
|
33
|
-
export interface SynapseStore<TStore extends Record<string, any>, TStorage extends IStorage<TStore>, TSelectors = any, TActions = any> {
|
|
34
|
-
storage: TStorage;
|
|
35
|
-
selectors: TSelectors;
|
|
36
|
-
actions: TActions;
|
|
37
|
-
state$: Observable<TStore>;
|
|
38
|
-
destroy: () => Promise<void>;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Создает хранилище Synapse
|
|
42
|
-
*
|
|
43
|
-
* @param config Конфигурация для создания хранилища
|
|
44
|
-
* @returns Promise, который разрешается в SynapseStore
|
|
45
|
-
*/
|
|
46
|
-
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>, TActions = ExtractDispatchType<TDispatcher>>(config: CreateSynapseConfig<TStore, TSelectors, TDispatcher, TApi, TConfig, TExternalSelectors>): Promise<SynapseStore<TStore, TStorage, TSelectors, TActions>>;
|
|
47
|
-
//# sourceMappingURL=createSynapse.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createSynapse.d.ts","sourceRoot":"","sources":["../../../src/react/utils/createSynapse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAEjC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAkB,MAAM,YAAY,CAAA;AACtE,OAAO,EAAE,MAAM,EAAiB,MAAM,gBAAgB,CAAA;AAGtD,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACtE,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAC3E,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAA;AAEhF,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AAE9F;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAC7B,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAClC,UAAU,GAAG,GAAG,EAChB,WAAW,GAAG,GAAG,EACjB,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACxD,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC3D,kBAAkB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAClE,CAAC;IAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAAC,eAAe,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,OAAO,CAAC,EAAE,SAAS,CAAC;IAAC,eAAe,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC,GAAG;IAE5I,iBAAiB,CAAC,EAAE,kBAAkB,CAAA;IAEtC,iBAAiB,CAAC,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,iBAAiB,EAAE,kBAAkB,KAAK,UAAU,CAAA;IAElH,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,WAAW,CAAA;IAE/D,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,KAAK;QAChD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAChC,GAAG,CAAC,EAAE,IAAI,CAAA;QACV,MAAM,CAAC,EAAE,OAAO,CAAA;KACjB,CAAA;IAED,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAA;CAC/C,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,GAAG,EAAE,QAAQ,GAAG,GAAG;IACnI,OAAO,EAAE,QAAQ,CAAA;IACjB,SAAS,EAAE,UAAU,CAAA;IACrB,OAAO,EAAE,QAAQ,CAAA;IACjB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IAC1B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7B;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAClC,UAAU,GAAG,GAAG,EAChB,WAAW,GAAG,GAAG,EACjB,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACxD,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC3D,kBAAkB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACpE,QAAQ,SAAS,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,EACpD,QAAQ,GAAG,mBAAmB,CAAC,WAAW,CAAC,EAC3C,MAAM,EAAE,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAqFhK"}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
2
|
-
import { SelectorModule } from '../../core';
|
|
3
|
-
import { EffectsModule } from '../../reactive';
|
|
4
|
-
/**
|
|
5
|
-
* Создает хранилище Synapse
|
|
6
|
-
*
|
|
7
|
-
* @param config Конфигурация для создания хранилища
|
|
8
|
-
* @returns Promise, который разрешается в SynapseStore
|
|
9
|
-
*/
|
|
10
|
-
export async function createSynapse(config) {
|
|
11
|
-
// Создаем и инициализируем хранилище
|
|
12
|
-
const storageInstance = (config.createStorageFn ? await config.createStorageFn() : config.storage);
|
|
13
|
-
// Создаем сборщики для последующей очистки
|
|
14
|
-
const cleanupCallbacks = [];
|
|
15
|
-
const result = {
|
|
16
|
-
storage: storageInstance,
|
|
17
|
-
selectors: {},
|
|
18
|
-
actions: {},
|
|
19
|
-
state$: new Observable(),
|
|
20
|
-
destroy: async () => {
|
|
21
|
-
for (const callback of cleanupCallbacks) {
|
|
22
|
-
await callback();
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
};
|
|
26
|
-
cleanupCallbacks.push(() => storageInstance.destroy());
|
|
27
|
-
let dispatcher;
|
|
28
|
-
let selectorModule;
|
|
29
|
-
let effectsModule;
|
|
30
|
-
// Создаем модуль селекторов
|
|
31
|
-
if (config.createSelectorsFn) {
|
|
32
|
-
try {
|
|
33
|
-
selectorModule = new SelectorModule(storageInstance);
|
|
34
|
-
const externalSelectors = config.externalSelectors || {};
|
|
35
|
-
result.selectors = config.createSelectorsFn(selectorModule, externalSelectors);
|
|
36
|
-
if (typeof selectorModule.destroy === 'function') {
|
|
37
|
-
cleanupCallbacks.push(() => selectorModule.destroy());
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
catch (error) {
|
|
41
|
-
console.error('Ошибка создания selectors:', error);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
// Создаем диспетчер
|
|
45
|
-
if (config.createDispatcherFn) {
|
|
46
|
-
dispatcher = config.createDispatcherFn(storageInstance);
|
|
47
|
-
// @ts-ignore
|
|
48
|
-
if (dispatcher && 'dispatch' in dispatcher) {
|
|
49
|
-
result.actions = dispatcher.dispatch;
|
|
50
|
-
if (typeof dispatcher.destroy === 'function') {
|
|
51
|
-
cleanupCallbacks.push(() => dispatcher.destroy());
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
// Создаем и настраиваем модуль эффектов
|
|
56
|
-
if (config.createEffectConfig && dispatcher) {
|
|
57
|
-
try {
|
|
58
|
-
const { dispatchers, api, config: effectConfig } = config.createEffectConfig(dispatcher);
|
|
59
|
-
// Создаем модуль эффектов
|
|
60
|
-
effectsModule = new EffectsModule(storageInstance, dispatchers, api, effectConfig);
|
|
61
|
-
// Добавляем эффекты
|
|
62
|
-
if (Array.isArray(config.effects)) {
|
|
63
|
-
config.effects.forEach((effect) => {
|
|
64
|
-
if (effectsModule)
|
|
65
|
-
effectsModule.add(effect);
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
// Запускаем модуль эффектов
|
|
69
|
-
effectsModule.start();
|
|
70
|
-
result.state$ = effectsModule.state$;
|
|
71
|
-
// Добавляем очистку эффектов
|
|
72
|
-
cleanupCallbacks.push(() => {
|
|
73
|
-
if (effectsModule)
|
|
74
|
-
effectsModule.stop();
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
catch (error) {
|
|
78
|
-
console.error('Ошибка создания модуля эффектов:', error);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
return result;
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=createSynapse.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createSynapse.js","sourceRoot":"","sources":["../../../src/react/utils/createSynapse.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { ComponentType } from 'react';
|
|
2
|
-
import { IStorage } from '../../core';
|
|
3
|
-
import { createDispatcher, Dispatcher, Effect } from '../../reactive';
|
|
4
|
-
import { Observable } from 'rxjs';
|
|
5
|
-
type DispatchType<D> = D extends {
|
|
6
|
-
dispatch: infer T;
|
|
7
|
-
} ? T : never;
|
|
8
|
-
interface CreateSynapseContextConfig<TStore extends Record<string, any>, TSelectors extends object, TDispatcher extends ReturnType<typeof createDispatcher>, TEffectDispatchersDep extends Record<string, Dispatcher<any, any>>, TEffectApiDep extends Record<string, any>, TEffectConfig extends Record<string, any> = Record<string, never>> {
|
|
9
|
-
createStorageFn: () => Promise<IStorage<TStore>>;
|
|
10
|
-
createSelectorsFn: (storage: IStorage<TStore>) => TSelectors;
|
|
11
|
-
createDispatcherFn: (storage: IStorage<TStore>) => TDispatcher;
|
|
12
|
-
effects?: Effect<TStore, TEffectDispatchersDep, TEffectApiDep, TEffectConfig> | Effect<TStore, TEffectDispatchersDep, TEffectApiDep, TEffectConfig>[];
|
|
13
|
-
createEffectConfig: {
|
|
14
|
-
dispatchers: (storage: IStorage<TStore>, dispatch: DispatchType<TDispatcher>) => TEffectDispatchersDep;
|
|
15
|
-
api: TEffectApiDep;
|
|
16
|
-
config?: TEffectConfig;
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
export declare function createSynapseContext<TStore extends Record<string, any>, TSelectors extends object, TDispatcher extends ReturnType<typeof createDispatcher>, TEffectDispatchersDep extends Record<string, Dispatcher<any, any>>, TEffectApiDep extends Record<string, any>, TEffectConfig extends Record<string, any> = Record<string, never>>(config: CreateSynapseContextConfig<TStore, TSelectors, TDispatcher, TEffectDispatchersDep, TEffectApiDep, TEffectConfig>): {
|
|
20
|
-
contextSynapse: <Props extends {}>(Component: ComponentType<Props>) => ({ contextProps, ...props }: Props & {
|
|
21
|
-
contextProps?: Partial<TStore>;
|
|
22
|
-
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
23
|
-
useSynapseStorage: () => IStorage<TStore>;
|
|
24
|
-
useSynapseActions: () => DispatchType<TDispatcher>;
|
|
25
|
-
useSynapseSelectors: () => TSelectors;
|
|
26
|
-
useSynapseState$: () => Observable<TStore>;
|
|
27
|
-
};
|
|
28
|
-
export {};
|
|
29
|
-
//# sourceMappingURL=createSynapseContext.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createSynapseContext.d.ts","sourceRoot":"","sources":["../../../src/react/utils/createSynapseContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA0D,MAAM,OAAO,CAAC;AAC9F,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAiB,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAGlC,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAGnE,UAAU,0BAA0B,CACpC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAChC,UAAU,SAAS,MAAM,EACzB,WAAW,SAAS,UAAU,CAAC,OAAO,gBAAgB,CAAC,EACvD,qBAAqB,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAClE,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzC,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAEjE,eAAe,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,iBAAiB,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC;IAC7D,kBAAkB,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,WAAW,CAAC;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,CAAC;IACxJ,kBAAkB,EAAE;QAClB,WAAW,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,WAAW,CAAC,KAAK,qBAAqB,CAAC;QACvG,GAAG,EAAE,aAAa,CAAC;QACnB,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB,CAAC;CACD;AAcD,wBAAgB,oBAAoB,CACpC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAChC,UAAU,SAAS,MAAM,EACzB,WAAW,SAAS,UAAU,CAAC,OAAO,gBAAgB,CAAC,EACvD,qBAAqB,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAClE,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzC,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACjE,MAAM,EAAE,0BAA0B,CACpC,MAAM,EACJ,UAAU,EACV,WAAW,EACX,qBAAqB,EACrB,aAAa,EACf,aAAa,CACZ;qBAsCyB,KAAK,SAAS,EAAE,aAC3B,aAAa,CAAC,KAAK,CAAC,MAEE,4BAA4B,KAAK,GAAG;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE;;;;;EAyG1G"}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { createContext, useContext, useEffect, useRef, useState } from 'react';
|
|
3
|
-
import { EffectsModule } from '../../reactive';
|
|
4
|
-
export function createSynapseContext(config) {
|
|
5
|
-
// Создаем контекст
|
|
6
|
-
const SynapseContext = createContext(null);
|
|
7
|
-
// Хуки для доступа к объектам из контекста
|
|
8
|
-
const useSynapseStorage = () => {
|
|
9
|
-
const context = useContext(SynapseContext);
|
|
10
|
-
if (!context) {
|
|
11
|
-
throw new Error('useSynapseStorage must be used within a contextSynapse component');
|
|
12
|
-
}
|
|
13
|
-
return context.storage;
|
|
14
|
-
};
|
|
15
|
-
const useSynapseActions = () => {
|
|
16
|
-
const context = useContext(SynapseContext);
|
|
17
|
-
if (!context) {
|
|
18
|
-
throw new Error('useSynapseActions must be used within a contextSynapse component');
|
|
19
|
-
}
|
|
20
|
-
return context.actions;
|
|
21
|
-
};
|
|
22
|
-
const useSynapseSelectors = () => {
|
|
23
|
-
const context = useContext(SynapseContext);
|
|
24
|
-
if (!context) {
|
|
25
|
-
throw new Error('useSynapseSelectors must be used within a contextSynapse component');
|
|
26
|
-
}
|
|
27
|
-
return context.selectors;
|
|
28
|
-
};
|
|
29
|
-
const useSynapseState$ = () => {
|
|
30
|
-
const context = useContext(SynapseContext);
|
|
31
|
-
if (!context) {
|
|
32
|
-
throw new Error('useSynapseState$ must be used within a contextSynapse component');
|
|
33
|
-
}
|
|
34
|
-
return context.state$;
|
|
35
|
-
};
|
|
36
|
-
// Функция HOC для обертывания компонентов
|
|
37
|
-
function contextSynapse(Component) {
|
|
38
|
-
return function WrappedComponent({ contextProps, ...props }) {
|
|
39
|
-
const storeRef = useRef(null);
|
|
40
|
-
const [isInitialized, setIsInitialized] = useState(false);
|
|
41
|
-
const effectsModuleRef = useRef(null);
|
|
42
|
-
useEffect(() => {
|
|
43
|
-
let mounted = true;
|
|
44
|
-
const initialize = async () => {
|
|
45
|
-
// 1. Создаем хранилище
|
|
46
|
-
const storage = await config.createStorageFn();
|
|
47
|
-
// Применяем contextProps, если они есть
|
|
48
|
-
if (contextProps && Object.keys(contextProps).length > 0) {
|
|
49
|
-
await storage.update(state => {
|
|
50
|
-
Object.assign(state, contextProps);
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
// 2. Создаем селекторы
|
|
54
|
-
const selectors = config.createSelectorsFn(storage);
|
|
55
|
-
// 3. Создаем диспетчер
|
|
56
|
-
const dispatcher = config.createDispatcherFn(storage);
|
|
57
|
-
// 4. Создаем параметры для модуля эффектов
|
|
58
|
-
const dispatchers = config.createEffectConfig.dispatchers(storage,
|
|
59
|
-
//@ts-ignore
|
|
60
|
-
dispatcher.dispatch);
|
|
61
|
-
// 5. Создаем модуль эффектов
|
|
62
|
-
const effectsModule = new EffectsModule(storage, dispatchers, config.createEffectConfig.api, config.createEffectConfig.config);
|
|
63
|
-
// 6. Добавляем эффекты, если они есть
|
|
64
|
-
if (config.effects) {
|
|
65
|
-
if (Array.isArray(config.effects)) {
|
|
66
|
-
effectsModule.addEffects(config.effects);
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
effectsModule.add(config.effects);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
// 7. Запускаем эффекты
|
|
73
|
-
effectsModule.start();
|
|
74
|
-
effectsModuleRef.current = effectsModule;
|
|
75
|
-
if (mounted) {
|
|
76
|
-
// Сохраняем объекты в ref
|
|
77
|
-
storeRef.current = {
|
|
78
|
-
storage,
|
|
79
|
-
selectors,
|
|
80
|
-
//@ts-ignore
|
|
81
|
-
actions: dispatcher.dispatch,
|
|
82
|
-
state$: effectsModule.state$
|
|
83
|
-
};
|
|
84
|
-
setIsInitialized(true);
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
initialize();
|
|
88
|
-
return () => {
|
|
89
|
-
mounted = false;
|
|
90
|
-
// Очистка при размонтировании
|
|
91
|
-
if (effectsModuleRef.current) {
|
|
92
|
-
effectsModuleRef.current.stop();
|
|
93
|
-
effectsModuleRef.current = null;
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
|
-
}, []);
|
|
97
|
-
if (!isInitialized || !storeRef.current) {
|
|
98
|
-
return null;
|
|
99
|
-
}
|
|
100
|
-
return (_jsx(SynapseContext.Provider, { value: storeRef.current, children: _jsx(Component, { ...props }) }));
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
// Возвращаем только функции и хуки
|
|
104
|
-
return {
|
|
105
|
-
contextSynapse,
|
|
106
|
-
useSynapseStorage,
|
|
107
|
-
useSynapseActions,
|
|
108
|
-
useSynapseSelectors,
|
|
109
|
-
useSynapseState$,
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
//# sourceMappingURL=createSynapseContext.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createSynapseContext.js","sourceRoot":"","sources":["../../../src/react/utils/createSynapseContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Разбивает массив на группы элементов указанного размера.
|
|
3
|
-
* @param array - Массив для разбиения
|
|
4
|
-
* @param size - Размер каждой группы
|
|
5
|
-
* @returns Массив групп элементов
|
|
6
|
-
*/
|
|
7
|
-
export declare function chunk<T>(array: T[], size?: number): T[][];
|
|
8
|
-
//# sourceMappingURL=chunk.util.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunk.util.d.ts","sourceRoot":"","sources":["../../src/utils/chunk.util.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,GAAE,MAAU,GAAG,CAAC,EAAE,EAAE,CAe5D"}
|
package/dist/utils/chunk.util.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Разбивает массив на группы элементов указанного размера.
|
|
3
|
-
* @param array - Массив для разбиения
|
|
4
|
-
* @param size - Размер каждой группы
|
|
5
|
-
* @returns Массив групп элементов
|
|
6
|
-
*/
|
|
7
|
-
export function chunk(array, size = 1) {
|
|
8
|
-
if (size <= 0)
|
|
9
|
-
throw new Error('Size must be greater than 0');
|
|
10
|
-
if (!array || !array.length)
|
|
11
|
-
return [];
|
|
12
|
-
const result = [];
|
|
13
|
-
const length = array.length;
|
|
14
|
-
let index = 0;
|
|
15
|
-
while (index < length) {
|
|
16
|
-
result.push(array.slice(index, index + size));
|
|
17
|
-
index += size;
|
|
18
|
-
}
|
|
19
|
-
return result;
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=chunk.util.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunk.util.js","sourceRoot":"","sources":["../../src/utils/chunk.util.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAI,KAAU,EAAE,OAAe,CAAC;IACnD,IAAI,IAAI,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;IAE7D,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,CAAA;IAEtC,MAAM,MAAM,GAAU,EAAE,CAAA;IACxB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAC3B,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,OAAO,KAAK,GAAG,MAAM,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,CAAA;QAC7C,KAAK,IAAI,IAAI,CAAA;IACf,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deepMerge.util.d.ts","sourceRoot":"","sources":["../../src/utils/deepMerge.util.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,GAAI,QAAQ,GAAG,EAAE,QAAQ,GAAG,SAajD,CAAA"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export const deepMerge = (target, source) => {
|
|
2
|
-
for (const key in source) {
|
|
3
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
4
|
-
if (typeof source[key] === 'object' && source[key] !== null && !Array.isArray(source[key])) {
|
|
5
|
-
if (!target[key] || typeof target[key] !== 'object') {
|
|
6
|
-
target[key] = {};
|
|
7
|
-
}
|
|
8
|
-
deepMerge(target[key], source[key]);
|
|
9
|
-
}
|
|
10
|
-
else {
|
|
11
|
-
target[key] = source[key];
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=deepMerge.util.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deepMerge.util.js","sourceRoot":"","sources":["../../src/utils/deepMerge.util.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAW,EAAE,MAAW,EAAE,EAAE;IACpD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;YACtD,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC3F,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACpD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;gBAClB,CAAC;gBACD,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;YACrC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Создает новый массив, применяя функцию к каждому элементу массива,
|
|
3
|
-
* а затем сглаживает результат на один уровень.
|
|
4
|
-
*
|
|
5
|
-
* @param array - Исходный массив
|
|
6
|
-
* @param iteratee - Функция, применяемая к каждому элементу
|
|
7
|
-
* @returns Новый сглаженный массив
|
|
8
|
-
*/
|
|
9
|
-
export declare function flatMap<T, R>(array: T[], iteratee: (value: T, index: number, array: T[]) => R | R[]): R[];
|
|
10
|
-
//# sourceMappingURL=flatMap.util.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flatMap.util.d.ts","sourceRoot":"","sources":["../../src/utils/flatMap.util.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAczG"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Создает новый массив, применяя функцию к каждому элементу массива,
|
|
3
|
-
* а затем сглаживает результат на один уровень.
|
|
4
|
-
*
|
|
5
|
-
* @param array - Исходный массив
|
|
6
|
-
* @param iteratee - Функция, применяемая к каждому элементу
|
|
7
|
-
* @returns Новый сглаженный массив
|
|
8
|
-
*/
|
|
9
|
-
export function flatMap(array, iteratee) {
|
|
10
|
-
if (!array || !array.length)
|
|
11
|
-
return [];
|
|
12
|
-
return array.reduce((acc, value, index) => {
|
|
13
|
-
const mapped = iteratee(value, index, array);
|
|
14
|
-
if (Array.isArray(mapped)) {
|
|
15
|
-
acc.push(...mapped);
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
acc.push(mapped);
|
|
19
|
-
}
|
|
20
|
-
return acc;
|
|
21
|
-
}, []);
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=flatMap.util.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flatMap.util.js","sourceRoot":"","sources":["../../src/utils/flatMap.util.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CAAO,KAAU,EAAE,QAA0D;IAClG,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,CAAA;IAEtC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,KAAQ,EAAE,KAAa,EAAE,EAAE;QACxD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QAE5C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAClB,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAAE,CAAC,CAAA;AACR,CAAC"}
|