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.
Files changed (246) hide show
  1. package/README.md +32 -13
  2. package/dist/_utils/index.js +3 -3
  3. package/dist/api/api.module.js +3 -3
  4. package/dist/api/example.js +2 -2
  5. package/dist/api/index.js +5 -5
  6. package/dist/api/utils/endpoint-headers.js +1 -1
  7. package/dist/api/utils/fetch-base-query.js +1 -1
  8. package/dist/core/index.js +2 -2
  9. package/dist/core/selector/index.js +1 -1
  10. package/dist/core/storage/adapters/base-storage.service.js +1 -1
  11. package/dist/core/storage/adapters/indexed-DB.service.js +2 -2
  12. package/dist/core/storage/adapters/indexed-DB.service.old.js +2 -2
  13. package/dist/core/storage/adapters/local-storage.service.js +2 -2
  14. package/dist/core/storage/adapters/memory-storage.service.js +2 -2
  15. package/dist/core/storage/index.js +9 -9
  16. package/dist/core/storage/middlewares/index.js +1 -1
  17. package/dist/core/storage/utils/cache.util.js +1 -1
  18. package/dist/index.js +5 -9
  19. package/dist/index.js.map +1 -1
  20. package/dist/react/hooks/index.js +2 -2
  21. package/dist/react/index.js +2 -2
  22. package/dist/react/utils/createSynapseCtx.d.ts +23 -13
  23. package/dist/react/utils/createSynapseCtx.d.ts.map +1 -1
  24. package/dist/react/utils/createSynapseCtx.js +11 -10
  25. package/dist/react/utils/createSynapseCtx.js.map +1 -1
  26. package/dist/react/utils/index.js +1 -1
  27. package/dist/reactive/dispatcher/index.js +2 -2
  28. package/dist/reactive/dispatcher/middlewares/index.js +1 -1
  29. package/dist/reactive/effects/effects.module.d.ts +13 -3
  30. package/dist/reactive/effects/effects.module.d.ts.map +1 -1
  31. package/dist/reactive/effects/effects.module.js +22 -8
  32. package/dist/reactive/effects/effects.module.js.map +1 -1
  33. package/dist/reactive/effects/index.js +1 -1
  34. package/dist/reactive/effects/utils/index.js +2 -2
  35. package/dist/reactive/index.js +2 -2
  36. package/dist/utils/createSynapse.d.ts +58 -18
  37. package/dist/utils/createSynapse.d.ts.map +1 -1
  38. package/dist/utils/createSynapse.js +4 -12
  39. package/dist/utils/createSynapse.js.map +1 -1
  40. package/dist/utils/index.d.ts +1 -1
  41. package/dist/utils/index.d.ts.map +1 -1
  42. package/dist/utils/index.js +1 -1
  43. package/dist/utils/index.js.map +1 -1
  44. package/package.json +2 -2
  45. package/dist/_examples/_example5.d.ts +0 -1
  46. package/dist/_examples/_example5.d.ts.map +0 -1
  47. package/dist/_examples/_example5.js +0 -184
  48. package/dist/_examples/_example5.js.map +0 -1
  49. package/dist/_examples/_example6.d.ts +0 -1
  50. package/dist/_examples/_example6.d.ts.map +0 -1
  51. package/dist/_examples/_example6.js +0 -168
  52. package/dist/_examples/_example6.js.map +0 -1
  53. package/dist/_examples/example1.d.ts +0 -1
  54. package/dist/_examples/example1.d.ts.map +0 -1
  55. package/dist/_examples/example1.js +0 -240
  56. package/dist/_examples/example1.js.map +0 -1
  57. package/dist/_examples/example2.d.ts +0 -1
  58. package/dist/_examples/example2.d.ts.map +0 -1
  59. package/dist/_examples/example2.js +0 -81
  60. package/dist/_examples/example2.js.map +0 -1
  61. package/dist/_examples/example3.d.ts +0 -1
  62. package/dist/_examples/example3.d.ts.map +0 -1
  63. package/dist/_examples/example3.js +0 -99
  64. package/dist/_examples/example3.js.map +0 -1
  65. package/dist/_examples/example4.d.ts +0 -1
  66. package/dist/_examples/example4.d.ts.map +0 -1
  67. package/dist/_examples/example4.js +0 -172
  68. package/dist/_examples/example4.js.map +0 -1
  69. package/dist/_examples/example5.d.ts +0 -1
  70. package/dist/_examples/example5.d.ts.map +0 -1
  71. package/dist/_examples/example5.js +0 -184
  72. package/dist/_examples/example5.js.map +0 -1
  73. package/dist/_examples/example6.d.ts +0 -1
  74. package/dist/_examples/example6.d.ts.map +0 -1
  75. package/dist/_examples/example6.js +0 -168
  76. package/dist/_examples/example6.js.map +0 -1
  77. package/dist/_examples/plugins.d.ts +0 -1
  78. package/dist/_examples/plugins.d.ts.map +0 -1
  79. package/dist/_examples/plugins.js +0 -176
  80. package/dist/_examples/plugins.js.map +0 -1
  81. package/dist/_examples/pokemons/PokemonList.d.ts +0 -5
  82. package/dist/_examples/pokemons/PokemonList.d.ts.map +0 -1
  83. package/dist/_examples/pokemons/PokemonList.js +0 -166
  84. package/dist/_examples/pokemons/PokemonList.js.map +0 -1
  85. package/dist/_examples/pokemons/api.d.ts +0 -8
  86. package/dist/_examples/pokemons/api.d.ts.map +0 -1
  87. package/dist/_examples/pokemons/api.js +0 -45
  88. package/dist/_examples/pokemons/api.js.map +0 -1
  89. package/dist/_examples/pokemons/app.config.d.ts +0 -15
  90. package/dist/_examples/pokemons/app.config.d.ts.map +0 -1
  91. package/dist/_examples/pokemons/app.config.js +0 -15
  92. package/dist/_examples/pokemons/app.config.js.map +0 -1
  93. package/dist/_examples/pokemons/dispatchers/pokemon.dispatcher.d.ts +0 -9
  94. package/dist/_examples/pokemons/dispatchers/pokemon.dispatcher.d.ts.map +0 -1
  95. package/dist/_examples/pokemons/dispatchers/pokemon.dispatcher.js +0 -122
  96. package/dist/_examples/pokemons/dispatchers/pokemon.dispatcher.js.map +0 -1
  97. package/dist/_examples/pokemons/effects/pokemon.effects.d.ts +0 -16
  98. package/dist/_examples/pokemons/effects/pokemon.effects.d.ts.map +0 -1
  99. package/dist/_examples/pokemons/effects/pokemon.effects.js +0 -39
  100. package/dist/_examples/pokemons/effects/pokemon.effects.js.map +0 -1
  101. package/dist/_examples/pokemons/middlewares/pokenon.middlewares.d.ts +0 -4
  102. package/dist/_examples/pokemons/middlewares/pokenon.middlewares.d.ts.map +0 -1
  103. package/dist/_examples/pokemons/middlewares/pokenon.middlewares.js +0 -27
  104. package/dist/_examples/pokemons/middlewares/pokenon.middlewares.js.map +0 -1
  105. package/dist/_examples/pokemons/pokemon.dispatcher.d.ts +0 -9
  106. package/dist/_examples/pokemons/pokemon.dispatcher.d.ts.map +0 -1
  107. package/dist/_examples/pokemons/pokemon.dispatcher.js +0 -122
  108. package/dist/_examples/pokemons/pokemon.dispatcher.js.map +0 -1
  109. package/dist/_examples/pokemons/pokemon.effects.d.ts +0 -5
  110. package/dist/_examples/pokemons/pokemon.effects.d.ts.map +0 -1
  111. package/dist/_examples/pokemons/pokemon.effects.js +0 -39
  112. package/dist/_examples/pokemons/pokemon.effects.js.map +0 -1
  113. package/dist/_examples/pokemons/pokemon.selectors.d.ts +0 -5
  114. package/dist/_examples/pokemons/pokemon.selectors.d.ts.map +0 -1
  115. package/dist/_examples/pokemons/pokemon.selectors.js +0 -10
  116. package/dist/_examples/pokemons/pokemon.selectors.js.map +0 -1
  117. package/dist/_examples/pokemons/pokemon.storage.d.ts +0 -3
  118. package/dist/_examples/pokemons/pokemon.storage.d.ts.map +0 -1
  119. package/dist/_examples/pokemons/pokemon.storage.js +0 -14
  120. package/dist/_examples/pokemons/pokemon.storage.js.map +0 -1
  121. package/dist/_examples/pokemons/pokemon1.selectors.d.ts +0 -5
  122. package/dist/_examples/pokemons/pokemon1.selectors.d.ts.map +0 -1
  123. package/dist/_examples/pokemons/pokemon1.selectors.js +0 -8
  124. package/dist/_examples/pokemons/pokemon1.selectors.js.map +0 -1
  125. package/dist/_examples/pokemons/pokenon.middlewares.d.ts +0 -4
  126. package/dist/_examples/pokemons/pokenon.middlewares.d.ts.map +0 -1
  127. package/dist/_examples/pokemons/pokenon.middlewares.js +0 -27
  128. package/dist/_examples/pokemons/pokenon.middlewares.js.map +0 -1
  129. package/dist/_examples/pokemons/selectors/pokemon.selectors.d.ts +0 -5
  130. package/dist/_examples/pokemons/selectors/pokemon.selectors.d.ts.map +0 -1
  131. package/dist/_examples/pokemons/selectors/pokemon.selectors.js +0 -10
  132. package/dist/_examples/pokemons/selectors/pokemon.selectors.js.map +0 -1
  133. package/dist/_examples/pokemons/selectors/pokemon1.selectors.d.ts +0 -5
  134. package/dist/_examples/pokemons/selectors/pokemon1.selectors.d.ts.map +0 -1
  135. package/dist/_examples/pokemons/selectors/pokemon1.selectors.js +0 -8
  136. package/dist/_examples/pokemons/selectors/pokemon1.selectors.js.map +0 -1
  137. package/dist/_examples/pokemons/storages/pokemon.storage.d.ts +0 -3
  138. package/dist/_examples/pokemons/storages/pokemon.storage.d.ts.map +0 -1
  139. package/dist/_examples/pokemons/storages/pokemon.storage.js +0 -14
  140. package/dist/_examples/pokemons/storages/pokemon.storage.js.map +0 -1
  141. package/dist/_examples/pokemons/store.d.ts +0 -1
  142. package/dist/_examples/pokemons/store.d.ts.map +0 -1
  143. package/dist/_examples/pokemons/store.js +0 -2
  144. package/dist/_examples/pokemons/store.js.map +0 -1
  145. package/dist/_examples/pokemons/store1.d.ts +0 -23
  146. package/dist/_examples/pokemons/store1.d.ts.map +0 -1
  147. package/dist/_examples/pokemons/store1.js +0 -35
  148. package/dist/_examples/pokemons/store1.js.map +0 -1
  149. package/dist/_examples/pokemons/store2.d.ts +0 -23
  150. package/dist/_examples/pokemons/store2.d.ts.map +0 -1
  151. package/dist/_examples/pokemons/store2.js +0 -34
  152. package/dist/_examples/pokemons/store2.js.map +0 -1
  153. package/dist/_examples/pokemons/types.d.ts +0 -26
  154. package/dist/_examples/pokemons/types.d.ts.map +0 -1
  155. package/dist/_examples/pokemons/types.js +0 -2
  156. package/dist/_examples/pokemons/types.js.map +0 -1
  157. package/dist/core/storage/adapters/idb.d.ts +0 -52
  158. package/dist/core/storage/adapters/idb.d.ts.map +0 -1
  159. package/dist/core/storage/adapters/idb.js +0 -528
  160. package/dist/core/storage/adapters/idb.js.map +0 -1
  161. package/dist/core/storage/adapters/indexed-DB.service1.d.ts +0 -38
  162. package/dist/core/storage/adapters/indexed-DB.service1.d.ts.map +0 -1
  163. package/dist/core/storage/adapters/indexed-DB.service1.js +0 -318
  164. package/dist/core/storage/adapters/indexed-DB.service1.js.map +0 -1
  165. package/dist/core/storage/adapters/indexed-DB.service2.d.ts +0 -61
  166. package/dist/core/storage/adapters/indexed-DB.service2.d.ts.map +0 -1
  167. package/dist/core/storage/adapters/indexed-DB.service2.js +0 -596
  168. package/dist/core/storage/adapters/indexed-DB.service2.js.map +0 -1
  169. package/dist/core/storage/factory/createSynapseStorage.factory.d.ts +0 -1
  170. package/dist/core/storage/factory/createSynapseStorage.factory.d.ts.map +0 -1
  171. package/dist/core/storage/factory/createSynapseStorage.factory.js +0 -2
  172. package/dist/core/storage/factory/createSynapseStorage.factory.js.map +0 -1
  173. package/dist/core/storage/factory/index.d.ts +0 -2
  174. package/dist/core/storage/factory/index.d.ts.map +0 -1
  175. package/dist/core/storage/factory/index.js +0 -2
  176. package/dist/core/storage/factory/index.js.map +0 -1
  177. package/dist/examples/_example5.d.ts +0 -1
  178. package/dist/examples/_example5.d.ts.map +0 -1
  179. package/dist/examples/_example5.js +0 -184
  180. package/dist/examples/_example5.js.map +0 -1
  181. package/dist/examples/_example6.d.ts +0 -1
  182. package/dist/examples/_example6.d.ts.map +0 -1
  183. package/dist/examples/_example6.js +0 -168
  184. package/dist/examples/_example6.js.map +0 -1
  185. package/dist/examples/plugins.d.ts +0 -1
  186. package/dist/examples/plugins.d.ts.map +0 -1
  187. package/dist/examples/plugins.js +0 -176
  188. package/dist/examples/plugins.js.map +0 -1
  189. package/dist/examples/pokemons/PokemonList.d.ts +0 -2
  190. package/dist/examples/pokemons/PokemonList.d.ts.map +0 -1
  191. package/dist/examples/pokemons/PokemonList.js +0 -110
  192. package/dist/examples/pokemons/PokemonList.js.map +0 -1
  193. package/dist/examples/pokemons/api.d.ts +0 -22
  194. package/dist/examples/pokemons/api.d.ts.map +0 -1
  195. package/dist/examples/pokemons/api.js +0 -43
  196. package/dist/examples/pokemons/api.js.map +0 -1
  197. package/dist/examples/pokemons/app.config.d.ts +0 -15
  198. package/dist/examples/pokemons/app.config.d.ts.map +0 -1
  199. package/dist/examples/pokemons/app.config.js +0 -15
  200. package/dist/examples/pokemons/app.config.js.map +0 -1
  201. package/dist/examples/pokemons/dispatchers/pokemon.dispatcher.js +0 -128
  202. package/dist/examples/pokemons/dispatchers/pokemon.dispatcher.js.map +0 -1
  203. package/dist/examples/pokemons/effects/pokemon.effects.d.ts +0 -16
  204. package/dist/examples/pokemons/effects/pokemon.effects.d.ts.map +0 -1
  205. package/dist/examples/pokemons/effects/pokemon.effects.js +0 -51
  206. package/dist/examples/pokemons/effects/pokemon.effects.js.map +0 -1
  207. package/dist/examples/pokemons/middlewares/pokenon.middlewares.d.ts +0 -4
  208. package/dist/examples/pokemons/middlewares/pokenon.middlewares.d.ts.map +0 -1
  209. package/dist/examples/pokemons/middlewares/pokenon.middlewares.js +0 -28
  210. package/dist/examples/pokemons/middlewares/pokenon.middlewares.js.map +0 -1
  211. package/dist/examples/pokemons/selectors/pokemon.selectors.d.ts +0 -13
  212. package/dist/examples/pokemons/selectors/pokemon.selectors.d.ts.map +0 -1
  213. package/dist/examples/pokemons/selectors/pokemon.selectors.js +0 -7
  214. package/dist/examples/pokemons/selectors/pokemon.selectors.js.map +0 -1
  215. package/dist/examples/pokemons/storages/pokemon.storage.d.ts +0 -5
  216. package/dist/examples/pokemons/storages/pokemon.storage.d.ts.map +0 -1
  217. package/dist/examples/pokemons/storages/pokemon.storage.js +0 -13
  218. package/dist/examples/pokemons/storages/pokemon.storage.js.map +0 -1
  219. package/dist/examples/pokemons/store.d.ts +0 -35
  220. package/dist/examples/pokemons/store.d.ts.map +0 -1
  221. package/dist/examples/pokemons/store.js +0 -21
  222. package/dist/examples/pokemons/store.js.map +0 -1
  223. package/dist/examples/pokemons/types.d.ts +0 -26
  224. package/dist/examples/pokemons/types.d.ts.map +0 -1
  225. package/dist/examples/pokemons/types.js +0 -2
  226. package/dist/examples/pokemons/types.js.map +0 -1
  227. package/dist/react/utils/createSynapse.d.ts +0 -47
  228. package/dist/react/utils/createSynapse.d.ts.map +0 -1
  229. package/dist/react/utils/createSynapse.js +0 -83
  230. package/dist/react/utils/createSynapse.js.map +0 -1
  231. package/dist/react/utils/createSynapseContext.d.ts +0 -29
  232. package/dist/react/utils/createSynapseContext.d.ts.map +0 -1
  233. package/dist/react/utils/createSynapseContext.js +0 -112
  234. package/dist/react/utils/createSynapseContext.js.map +0 -1
  235. package/dist/utils/chunk.util.d.ts +0 -8
  236. package/dist/utils/chunk.util.d.ts.map +0 -1
  237. package/dist/utils/chunk.util.js +0 -21
  238. package/dist/utils/chunk.util.js.map +0 -1
  239. package/dist/utils/deepMerge.util.d.ts +0 -2
  240. package/dist/utils/deepMerge.util.d.ts.map +0 -1
  241. package/dist/utils/deepMerge.util.js +0 -16
  242. package/dist/utils/deepMerge.util.js.map +0 -1
  243. package/dist/utils/flatMap.util.d.ts +0 -10
  244. package/dist/utils/flatMap.util.d.ts.map +0 -1
  245. package/dist/utils/flatMap.util.js +0 -23
  246. package/dist/utils/flatMap.util.js.map +0 -1
@@ -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 { ILogger, ISelectorModule, IStorage } from '../core';
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
- 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>, TExternalStates extends ExternalStates = Record<string, never>> = ({
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
- createDispatcherFn?: (storage: IStorage<TStore>) => TDispatcher;
23
- createEffectConfig?: (dispatcher: TDispatcher) => {
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
- config?: {
31
- selectorModuleLogger?: ILogger;
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 interface SynapseStore<TStore extends Record<string, any>, TStorage extends IStorage<TStore>, TSelectors = any, TActions = any, TDispatcher = any> {
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
- * Создает хранилище Synapse
47
- *
48
- * @param config Конфигурация для создания хранилища
49
- * @returns Promise, который разрешается в SynapseStore
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>, TExternalStates extends ExternalStates = Record<string, never>, TStorage extends IStorage<TStore> = IStorage<TStore>, TActions = ExtractDispatchType<TDispatcher>>(config: CreateSynapseConfig<TStore, TSelectors, TDispatcher, TApi, TConfig, TExternalSelectors, TExternalStates>): Promise<SynapseStore<TStore, TStorage, TSelectors, TActions, TDispatcher>>;
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":"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"}
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,eAAe,EAAE,QAAQ,EAAkB,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,MAAM,EAAiB,cAAc,EAAE,MAAM,aAAa,CAAA;AAGnE,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,KAAK,iBAAiB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,GAAG,EAAE,kBAAkB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CACjJ;IAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAAC,eAAe,CAAC,EAAE,SAAS,CAAA;CAAE,GAC1D;IAAE,OAAO,CAAC,EAAE,SAAS,CAAC;IAAC,eAAe,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAA;CAAE,CAC3E,GAAG;IAEF,iBAAiB,CAAC,EAAE,kBAAkB,CAAA;IAEtC,iBAAiB,CAAC,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,iBAAiB,EAAE,kBAAkB,KAAK,UAAU,CAAA;CACnH,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,8BAA8B,CACxC,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,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,kBAAkB,CAAC,GAAG;IAE9D,kBAAkB,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,WAAW,CAAA;IAE9D,kBAAkB,EAAE,CAAC,UAAU,EAAE,WAAW,KAAK;QAC/C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAChC,GAAG,CAAC,EAAE,IAAI,CAAA;QACV,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,cAAc,CAAC,EAAE,cAAc,CAAA;KAChC,CAAA;IAED,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,CAAA;CACpD,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,iCAAiC,CAC3C,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAClC,UAAU,GAAG,GAAG,EAChB,WAAW,GAAG,GAAG,EACjB,kBAAkB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAClE,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,kBAAkB,CAAC,GAAG;IAE9D,kBAAkB,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,WAAW,CAAA;IAE9D,kBAAkB,CAAC,EAAE,KAAK,CAAA;IAC1B,OAAO,CAAC,EAAE,KAAK,CAAA;CAChB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,wBAAwB,CAClC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAClC,UAAU,GAAG,GAAG,EAChB,kBAAkB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAClE,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,kBAAkB,CAAC,GAAG;IAE9D,kBAAkB,CAAC,EAAE,KAAK,CAAA;IAC1B,kBAAkB,CAAC,EAAE,KAAK,CAAA;IAC1B,OAAO,CAAC,EAAE,KAAK,CAAA;CAChB,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,QAAQ;IAClI,OAAO,EAAE,QAAQ,CAAA;IACjB,SAAS,EAAE,UAAU,CAAA;IACrB,OAAO,EAAE,QAAQ,CAAA;IACjB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IAC1B,UAAU,EAAE,GAAG,CAAA;IACf,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,QAAQ;IACrI,OAAO,EAAE,QAAQ,CAAA;IACjB,SAAS,EAAE,UAAU,CAAA;IACrB,OAAO,EAAE,QAAQ,CAAA;IACjB,UAAU,EAAE,GAAG,CAAA;IACf,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU;IAClH,OAAO,EAAE,QAAQ,CAAA;IACjB,SAAS,EAAE,UAAU,CAAA;IACrB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7B;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,QAAQ,SAAS,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,GAAG,EAAE,QAAQ,GAAG,GAAG,IACrJ,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,GAC/D,0BAA0B,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,GAClE,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;AAEnD;;GAEG;AAGH,wBAAgB,aAAa,CAC3B,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,EAEpD,MAAM,EAAE,8BAA8B,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,CAAC,GACzG,OAAO,CAAC,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;AAGnG,wBAAgB,aAAa,CAC3B,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAClC,UAAU,GAAG,GAAG,EAChB,WAAW,GAAG,GAAG,EACjB,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,EAEpD,MAAM,EAAE,iCAAiC,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,CAAC,GAC7F,OAAO,CAAC,0BAA0B,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;AAGtG,wBAAgB,aAAa,CAC3B,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAClC,UAAU,GAAG,GAAG,EAChB,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,MAAM,EAAE,wBAAwB,CAAC,MAAM,EAAE,UAAU,EAAE,kBAAkB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAA"}
@@ -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, config.config?.selectorModuleLogger);
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":"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"}
1
+ {"version":3,"file":"createSynapse.js","sourceRoot":"","sources":["../../src/utils/createSynapse.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { createSynapse, type SynapseStore } from './createSynapse';
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,YAAY,EAAE,MAAM,iBAAiB,CAAA"}
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"}
@@ -1,2 +1,2 @@
1
- export { createSynapse } from './createSynapse';
1
+ export { createSynapse } from './createSynapse/index.js';
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAqB,MAAM,iBAAiB,CAAA"}
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": "2.1.0",
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":""}