synapse-storage 3.0.2 → 3.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. package/dist/api.cjs +1 -0
  2. package/dist/api.d.cts +365 -0
  3. package/dist/api.d.ts +365 -0
  4. package/dist/api.js +1 -0
  5. package/dist/chunk-22J2S57D.cjs +1 -0
  6. package/dist/chunk-4USKKL5R.js +1 -0
  7. package/dist/chunk-5X65PSGD.js +1 -0
  8. package/dist/chunk-635Q6YJZ.cjs +1 -0
  9. package/dist/chunk-6RNZVHSR.js +1 -0
  10. package/dist/chunk-FW5NGLPP.cjs +1 -0
  11. package/dist/chunk-IPUPRMZK.js +1 -0
  12. package/dist/chunk-NMDHQXMS.cjs +1 -0
  13. package/dist/chunk-S7X7IDBT.js +1 -0
  14. package/dist/chunk-UFBCZ25Y.cjs +1 -0
  15. package/dist/chunk-VSIVOWZF.cjs +1 -0
  16. package/dist/chunk-WC5TDS6C.cjs +1 -0
  17. package/dist/chunk-WQNH3LVB.js +1 -0
  18. package/dist/chunk-ZE2EJX2Y.js +1 -0
  19. package/dist/core.cjs +1 -0
  20. package/dist/core.d.cts +397 -0
  21. package/dist/{core/storage/modules/plugin/plugin.interface.d.ts → core.d.ts} +203 -7
  22. package/dist/core.js +1 -0
  23. package/dist/dispatcher.module-CdpmkplA.d.cts +363 -0
  24. package/dist/dispatcher.module-jd8U_ZEs.d.ts +363 -0
  25. package/dist/index.cjs +1 -0
  26. package/dist/index.d.cts +10 -0
  27. package/dist/index.d.ts +10 -10
  28. package/dist/index.js +1 -14
  29. package/dist/react.cjs +1 -0
  30. package/dist/react.d.cts +74 -0
  31. package/dist/react.d.ts +74 -0
  32. package/dist/react.js +1 -0
  33. package/dist/reactive.cjs +1 -0
  34. package/dist/reactive.d.cts +35 -0
  35. package/dist/reactive.d.ts +35 -0
  36. package/dist/reactive.js +1 -0
  37. package/dist/{core/selector/selector.interface.d.ts → selector.interface-CA5y-kD_.d.cts} +7 -35
  38. package/dist/selector.interface-CA5y-kD_.d.ts +63 -0
  39. package/dist/storage.interface-Dl8SLUd1.d.cts +128 -0
  40. package/dist/storage.interface-Dl8SLUd1.d.ts +128 -0
  41. package/dist/utils.cjs +1 -0
  42. package/dist/utils.d.cts +92 -0
  43. package/dist/utils.d.ts +92 -0
  44. package/dist/utils.js +1 -0
  45. package/package.json +54 -17
  46. package/dist/_utils/chunk.util.d.ts +0 -8
  47. package/dist/_utils/chunk.util.d.ts.map +0 -1
  48. package/dist/_utils/chunk.util.js +0 -21
  49. package/dist/_utils/chunk.util.js.map +0 -1
  50. package/dist/_utils/deepMerge.util.d.ts +0 -2
  51. package/dist/_utils/deepMerge.util.d.ts.map +0 -1
  52. package/dist/_utils/deepMerge.util.js +0 -16
  53. package/dist/_utils/deepMerge.util.js.map +0 -1
  54. package/dist/_utils/flatMap.util.d.ts +0 -10
  55. package/dist/_utils/flatMap.util.d.ts.map +0 -1
  56. package/dist/_utils/flatMap.util.js +0 -23
  57. package/dist/_utils/flatMap.util.js.map +0 -1
  58. package/dist/_utils/index.d.ts +0 -4
  59. package/dist/_utils/index.d.ts.map +0 -1
  60. package/dist/_utils/index.js +0 -4
  61. package/dist/_utils/index.js.map +0 -1
  62. package/dist/api/api.module.d.ts +0 -38
  63. package/dist/api/api.module.d.ts.map +0 -1
  64. package/dist/api/api.module.js +0 -82
  65. package/dist/api/api.module.js.map +0 -1
  66. package/dist/api/components/endpoint.d.ts +0 -26
  67. package/dist/api/components/endpoint.d.ts.map +0 -1
  68. package/dist/api/components/endpoint.js +0 -253
  69. package/dist/api/components/endpoint.js.map +0 -1
  70. package/dist/api/components/query-storage.d.ts +0 -84
  71. package/dist/api/components/query-storage.d.ts.map +0 -1
  72. package/dist/api/components/query-storage.js +0 -221
  73. package/dist/api/components/query-storage.js.map +0 -1
  74. package/dist/api/example.d.ts +0 -83
  75. package/dist/api/example.d.ts.map +0 -1
  76. package/dist/api/example.js +0 -85
  77. package/dist/api/example.js.map +0 -1
  78. package/dist/api/index.d.ts +0 -4
  79. package/dist/api/index.d.ts.map +0 -1
  80. package/dist/api/index.js +0 -6
  81. package/dist/api/index.js.map +0 -1
  82. package/dist/api/types/api.interface.d.ts +0 -108
  83. package/dist/api/types/api.interface.d.ts.map +0 -1
  84. package/dist/api/types/api.interface.js +0 -19
  85. package/dist/api/types/api.interface.js.map +0 -1
  86. package/dist/api/types/endpoint.interface.d.ts +0 -116
  87. package/dist/api/types/endpoint.interface.d.ts.map +0 -1
  88. package/dist/api/types/endpoint.interface.js +0 -2
  89. package/dist/api/types/endpoint.interface.js.map +0 -1
  90. package/dist/api/types/query.interface.d.ts +0 -87
  91. package/dist/api/types/query.interface.d.ts.map +0 -1
  92. package/dist/api/types/query.interface.js +0 -2
  93. package/dist/api/types/query.interface.js.map +0 -1
  94. package/dist/api/utils/api-helpers.d.ts +0 -22
  95. package/dist/api/utils/api-helpers.d.ts.map +0 -1
  96. package/dist/api/utils/api-helpers.js +0 -44
  97. package/dist/api/utils/api-helpers.js.map +0 -1
  98. package/dist/api/utils/create-header-context.d.ts +0 -10
  99. package/dist/api/utils/create-header-context.d.ts.map +0 -1
  100. package/dist/api/utils/create-header-context.js +0 -36
  101. package/dist/api/utils/create-header-context.js.map +0 -1
  102. package/dist/api/utils/endpoint-headers.d.ts +0 -23
  103. package/dist/api/utils/endpoint-headers.d.ts.map +0 -1
  104. package/dist/api/utils/endpoint-headers.js +0 -57
  105. package/dist/api/utils/endpoint-headers.js.map +0 -1
  106. package/dist/api/utils/fetch-base-query.d.ts +0 -9
  107. package/dist/api/utils/fetch-base-query.d.ts.map +0 -1
  108. package/dist/api/utils/fetch-base-query.js +0 -181
  109. package/dist/api/utils/fetch-base-query.js.map +0 -1
  110. package/dist/api/utils/file-utils.d.ts +0 -43
  111. package/dist/api/utils/file-utils.d.ts.map +0 -1
  112. package/dist/api/utils/file-utils.js +0 -108
  113. package/dist/api/utils/file-utils.js.map +0 -1
  114. package/dist/api/utils/get-cacheable-headers.d.ts +0 -8
  115. package/dist/api/utils/get-cacheable-headers.d.ts.map +0 -1
  116. package/dist/api/utils/get-cacheable-headers.js +0 -21
  117. package/dist/api/utils/get-cacheable-headers.js.map +0 -1
  118. package/dist/core/index.d.ts +0 -3
  119. package/dist/core/index.d.ts.map +0 -1
  120. package/dist/core/index.js +0 -3
  121. package/dist/core/index.js.map +0 -1
  122. package/dist/core/selector/index.d.ts +0 -3
  123. package/dist/core/selector/index.d.ts.map +0 -1
  124. package/dist/core/selector/index.js +0 -2
  125. package/dist/core/selector/index.js.map +0 -1
  126. package/dist/core/selector/selector.interface.d.ts.map +0 -1
  127. package/dist/core/selector/selector.interface.js +0 -2
  128. package/dist/core/selector/selector.interface.js.map +0 -1
  129. package/dist/core/selector/selector.module.d.ts +0 -29
  130. package/dist/core/selector/selector.module.d.ts.map +0 -1
  131. package/dist/core/selector/selector.module.js +0 -467
  132. package/dist/core/selector/selector.module.js.map +0 -1
  133. package/dist/core/storage/adapters/base-storage.service.d.ts +0 -65
  134. package/dist/core/storage/adapters/base-storage.service.d.ts.map +0 -1
  135. package/dist/core/storage/adapters/base-storage.service.js +0 -660
  136. package/dist/core/storage/adapters/base-storage.service.js.map +0 -1
  137. package/dist/core/storage/adapters/indexed-DB.service.d.ts +0 -63
  138. package/dist/core/storage/adapters/indexed-DB.service.d.ts.map +0 -1
  139. package/dist/core/storage/adapters/indexed-DB.service.js +0 -595
  140. package/dist/core/storage/adapters/indexed-DB.service.js.map +0 -1
  141. package/dist/core/storage/adapters/indexed-DB.service.old.d.ts +0 -38
  142. package/dist/core/storage/adapters/indexed-DB.service.old.d.ts.map +0 -1
  143. package/dist/core/storage/adapters/indexed-DB.service.old.js +0 -318
  144. package/dist/core/storage/adapters/indexed-DB.service.old.js.map +0 -1
  145. package/dist/core/storage/adapters/local-storage.service.d.ts +0 -21
  146. package/dist/core/storage/adapters/local-storage.service.d.ts.map +0 -1
  147. package/dist/core/storage/adapters/local-storage.service.js +0 -99
  148. package/dist/core/storage/adapters/local-storage.service.js.map +0 -1
  149. package/dist/core/storage/adapters/memory-storage.service.d.ts +0 -22
  150. package/dist/core/storage/adapters/memory-storage.service.d.ts.map +0 -1
  151. package/dist/core/storage/adapters/memory-storage.service.js +0 -99
  152. package/dist/core/storage/adapters/memory-storage.service.js.map +0 -1
  153. package/dist/core/storage/adapters/path.utils.d.ts +0 -5
  154. package/dist/core/storage/adapters/path.utils.d.ts.map +0 -1
  155. package/dist/core/storage/adapters/path.utils.js +0 -35
  156. package/dist/core/storage/adapters/path.utils.js.map +0 -1
  157. package/dist/core/storage/index.d.ts +0 -11
  158. package/dist/core/storage/index.d.ts.map +0 -1
  159. package/dist/core/storage/index.js +0 -12
  160. package/dist/core/storage/index.js.map +0 -1
  161. package/dist/core/storage/middlewares/broadcast.middleware.d.ts +0 -9
  162. package/dist/core/storage/middlewares/broadcast.middleware.d.ts.map +0 -1
  163. package/dist/core/storage/middlewares/broadcast.middleware.js +0 -115
  164. package/dist/core/storage/middlewares/broadcast.middleware.js.map +0 -1
  165. package/dist/core/storage/middlewares/index.d.ts +0 -4
  166. package/dist/core/storage/middlewares/index.d.ts.map +0 -1
  167. package/dist/core/storage/middlewares/index.js +0 -3
  168. package/dist/core/storage/middlewares/index.js.map +0 -1
  169. package/dist/core/storage/middlewares/storage-batching.middleware.d.ts +0 -7
  170. package/dist/core/storage/middlewares/storage-batching.middleware.d.ts.map +0 -1
  171. package/dist/core/storage/middlewares/storage-batching.middleware.js +0 -36
  172. package/dist/core/storage/middlewares/storage-batching.middleware.js.map +0 -1
  173. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.d.ts +0 -7
  174. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.d.ts.map +0 -1
  175. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.js +0 -46
  176. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.js.map +0 -1
  177. package/dist/core/storage/modules/plugin/plugin.interface.d.ts.map +0 -1
  178. package/dist/core/storage/modules/plugin/plugin.interface.js +0 -2
  179. package/dist/core/storage/modules/plugin/plugin.interface.js.map +0 -1
  180. package/dist/core/storage/modules/plugin/plugin.service.d.ts +0 -25
  181. package/dist/core/storage/modules/plugin/plugin.service.d.ts.map +0 -1
  182. package/dist/core/storage/modules/plugin/plugin.service.js +0 -186
  183. package/dist/core/storage/modules/plugin/plugin.service.js.map +0 -1
  184. package/dist/core/storage/storage.interface.d.ts +0 -70
  185. package/dist/core/storage/storage.interface.d.ts.map +0 -1
  186. package/dist/core/storage/storage.interface.js +0 -10
  187. package/dist/core/storage/storage.interface.js.map +0 -1
  188. package/dist/core/storage/utils/batch.utils.d.ts +0 -33
  189. package/dist/core/storage/utils/batch.utils.d.ts.map +0 -1
  190. package/dist/core/storage/utils/batch.utils.js +0 -88
  191. package/dist/core/storage/utils/batch.utils.js.map +0 -1
  192. package/dist/core/storage/utils/broadcast.util.d.ts +0 -48
  193. package/dist/core/storage/utils/broadcast.util.d.ts.map +0 -1
  194. package/dist/core/storage/utils/broadcast.util.js +0 -162
  195. package/dist/core/storage/utils/broadcast.util.js.map +0 -1
  196. package/dist/core/storage/utils/cache.util.d.ts +0 -33
  197. package/dist/core/storage/utils/cache.util.d.ts.map +0 -1
  198. package/dist/core/storage/utils/cache.util.js +0 -47
  199. package/dist/core/storage/utils/cache.util.js.map +0 -1
  200. package/dist/core/storage/utils/middleware-module.d.ts +0 -46
  201. package/dist/core/storage/utils/middleware-module.d.ts.map +0 -1
  202. package/dist/core/storage/utils/middleware-module.js +0 -109
  203. package/dist/core/storage/utils/middleware-module.js.map +0 -1
  204. package/dist/core/storage/utils/storage-key.d.ts +0 -11
  205. package/dist/core/storage/utils/storage-key.d.ts.map +0 -1
  206. package/dist/core/storage/utils/storage-key.js +0 -21
  207. package/dist/core/storage/utils/storage-key.js.map +0 -1
  208. package/dist/core/storage/utils/storage.utils.d.ts +0 -17
  209. package/dist/core/storage/utils/storage.utils.d.ts.map +0 -1
  210. package/dist/core/storage/utils/storage.utils.js +0 -57
  211. package/dist/core/storage/utils/storage.utils.js.map +0 -1
  212. package/dist/index.d.ts.map +0 -1
  213. package/dist/index.js.map +0 -1
  214. package/dist/react/hooks/index.d.ts +0 -3
  215. package/dist/react/hooks/index.d.ts.map +0 -1
  216. package/dist/react/hooks/index.js +0 -3
  217. package/dist/react/hooks/index.js.map +0 -1
  218. package/dist/react/hooks/useSelector.d.ts +0 -22
  219. package/dist/react/hooks/useSelector.d.ts.map +0 -1
  220. package/dist/react/hooks/useSelector.js +0 -104
  221. package/dist/react/hooks/useSelector.js.map +0 -1
  222. package/dist/react/hooks/useStorageSubscribe.d.ts +0 -12
  223. package/dist/react/hooks/useStorageSubscribe.d.ts.map +0 -1
  224. package/dist/react/hooks/useStorageSubscribe.js +0 -49
  225. package/dist/react/hooks/useStorageSubscribe.js.map +0 -1
  226. package/dist/react/index.d.ts +0 -3
  227. package/dist/react/index.d.ts.map +0 -1
  228. package/dist/react/index.js +0 -3
  229. package/dist/react/index.js.map +0 -1
  230. package/dist/react/utils/createSynapseCtx.d.ts +0 -40
  231. package/dist/react/utils/createSynapseCtx.d.ts.map +0 -1
  232. package/dist/react/utils/createSynapseCtx.js +0 -125
  233. package/dist/react/utils/createSynapseCtx.js.map +0 -1
  234. package/dist/react/utils/index.d.ts +0 -2
  235. package/dist/react/utils/index.d.ts.map +0 -1
  236. package/dist/react/utils/index.js +0 -2
  237. package/dist/react/utils/index.js.map +0 -1
  238. package/dist/reactive/dispatcher/dispatcher.module.d.ts +0 -195
  239. package/dist/reactive/dispatcher/dispatcher.module.d.ts.map +0 -1
  240. package/dist/reactive/dispatcher/dispatcher.module.js +0 -288
  241. package/dist/reactive/dispatcher/dispatcher.module.js.map +0 -1
  242. package/dist/reactive/dispatcher/index.d.ts +0 -3
  243. package/dist/reactive/dispatcher/index.d.ts.map +0 -1
  244. package/dist/reactive/dispatcher/index.js +0 -3
  245. package/dist/reactive/dispatcher/index.js.map +0 -1
  246. package/dist/reactive/dispatcher/middlewares/index.d.ts +0 -2
  247. package/dist/reactive/dispatcher/middlewares/index.d.ts.map +0 -1
  248. package/dist/reactive/dispatcher/middlewares/index.js +0 -2
  249. package/dist/reactive/dispatcher/middlewares/index.js.map +0 -1
  250. package/dist/reactive/dispatcher/middlewares/logger.middleware.d.ts +0 -31
  251. package/dist/reactive/dispatcher/middlewares/logger.middleware.d.ts.map +0 -1
  252. package/dist/reactive/dispatcher/middlewares/logger.middleware.js +0 -126
  253. package/dist/reactive/dispatcher/middlewares/logger.middleware.js.map +0 -1
  254. package/dist/reactive/effects/effects.module.d.ts +0 -150
  255. package/dist/reactive/effects/effects.module.d.ts.map +0 -1
  256. package/dist/reactive/effects/effects.module.js +0 -277
  257. package/dist/reactive/effects/effects.module.js.map +0 -1
  258. package/dist/reactive/effects/index.d.ts +0 -2
  259. package/dist/reactive/effects/index.d.ts.map +0 -1
  260. package/dist/reactive/effects/index.js +0 -2
  261. package/dist/reactive/effects/index.js.map +0 -1
  262. package/dist/reactive/effects/utils/chunkRequestConsistent.d.ts +0 -12
  263. package/dist/reactive/effects/utils/chunkRequestConsistent.d.ts.map +0 -1
  264. package/dist/reactive/effects/utils/chunkRequestConsistent.js +0 -16
  265. package/dist/reactive/effects/utils/chunkRequestConsistent.js.map +0 -1
  266. package/dist/reactive/effects/utils/chunkRequestParallel.d.ts +0 -12
  267. package/dist/reactive/effects/utils/chunkRequestParallel.d.ts.map +0 -1
  268. package/dist/reactive/effects/utils/chunkRequestParallel.js +0 -13
  269. package/dist/reactive/effects/utils/chunkRequestParallel.js.map +0 -1
  270. package/dist/reactive/effects/utils/index.d.ts +0 -3
  271. package/dist/reactive/effects/utils/index.d.ts.map +0 -1
  272. package/dist/reactive/effects/utils/index.js +0 -3
  273. package/dist/reactive/effects/utils/index.js.map +0 -1
  274. package/dist/reactive/index.d.ts +0 -3
  275. package/dist/reactive/index.d.ts.map +0 -1
  276. package/dist/reactive/index.js +0 -3
  277. package/dist/reactive/index.js.map +0 -1
  278. package/dist/utils/createSynapse.d.ts +0 -92
  279. package/dist/utils/createSynapse.d.ts.map +0 -1
  280. package/dist/utils/createSynapse.js +0 -79
  281. package/dist/utils/createSynapse.js.map +0 -1
  282. package/dist/utils/index.d.ts +0 -2
  283. package/dist/utils/index.d.ts.map +0 -1
  284. package/dist/utils/index.js +0 -2
  285. package/dist/utils/index.js.map +0 -1
@@ -0,0 +1,35 @@
1
+ import { a as EnhancedMiddleware } from './dispatcher.module-jd8U_ZEs.js';
2
+ export { A as Action, b as ActionDefinition, f as ActionsResult, d as ActionsSetup, c as ActionsSetupWithUtils, C as CreateDispatcherType, g as DispatchActions, D as DispatchFunction, k as Dispatcher, p as DispatcherActions, j as DispatcherMiddleware, i as DispatcherMiddlewareAPI, o as Effect, n as EffectBase, x as EffectsModule, E as EnhancedMiddlewareAPI, m as ExternalStates, e as ExtractResultType, T as TypedAction, V as ValidateConfig, q as ValidateMapRequestUtils, h as WatcherActions, W as WatcherFunction, B as combineEffects, l as createDispatcher, z as createEffect, y as createEffectBase, r as ofType, s as ofTypes, t as ofTypesWaitAll, u as selectorMap, v as selectorObject, w as validateMap } from './dispatcher.module-jd8U_ZEs.js';
3
+ import 'rxjs';
4
+ import './storage.interface-Dl8SLUd1.js';
5
+
6
+ interface LoggerTranslations {
7
+ action: string;
8
+ prevState: string;
9
+ nextState: string;
10
+ duration: string;
11
+ error: string;
12
+ diff: string;
13
+ changesCount: string;
14
+ showFullState: string;
15
+ }
16
+ interface LoggerColors {
17
+ title: string;
18
+ prevState: string;
19
+ fullState: string;
20
+ action: string;
21
+ nextState: string;
22
+ error: string;
23
+ diff: string;
24
+ }
25
+ interface LoggerOptions {
26
+ collapsed?: boolean;
27
+ duration?: boolean;
28
+ diff?: boolean;
29
+ showFullState?: boolean;
30
+ translations?: Partial<LoggerTranslations>;
31
+ colors?: Partial<LoggerColors>;
32
+ }
33
+ declare const loggerDispatcherMiddleware: <State extends Record<string, any>>(options?: LoggerOptions) => EnhancedMiddleware<State>;
34
+
35
+ export { EnhancedMiddleware, loggerDispatcherMiddleware };
@@ -0,0 +1 @@
1
+ export{a as Dispatcher,j as EffectsModule,m as combineEffects,b as createDispatcher,l as createEffect,k as createEffectBase,c as loggerDispatcherMiddleware,d as ofType,e as ofTypes,f as ofTypesWaitAll,g as selectorMap,h as selectorObject,i as validateMap}from'./chunk-IPUPRMZK.js';import'./chunk-5X65PSGD.js';
@@ -1,14 +1,14 @@
1
- export interface Selector<T, R> {
1
+ interface Selector<T, R> {
2
2
  (state: T): R;
3
3
  }
4
- export interface SelectorOptions<T> {
4
+ interface SelectorOptions<T> {
5
5
  equals?: (a: T, b: T) => boolean;
6
6
  name?: string;
7
7
  }
8
- export interface Subscriber<T> {
8
+ interface Subscriber<T> {
9
9
  notify: (value: T) => void | Promise<void>;
10
10
  }
11
- export interface SelectorAPI<T> {
11
+ interface SelectorAPI<T> {
12
12
  select: () => Promise<T>;
13
13
  subscribe: (subscriber: Subscriber<T>) => VoidFunction;
14
14
  getId: () => string;
@@ -17,7 +17,7 @@ export interface SelectorAPI<T> {
17
17
  * Интерфейс для модуля селекторов
18
18
  * Определяет контракт для работы с селекторами, который должен реализовывать SelectorModule
19
19
  */
20
- export interface ISelectorModule<TStore extends Record<string, any>> {
20
+ interface ISelectorModule<TStore extends Record<string, any>> {
21
21
  /**
22
22
  * Имя связанного хранилища
23
23
  */
@@ -59,33 +59,5 @@ export interface ISelectorModule<TStore extends Record<string, any>> {
59
59
  */
60
60
  destroy(): void;
61
61
  }
62
- /**
63
- * Интерфейс для фабрики селекторов
64
- * Позволяет создавать набор связанных селекторов
65
- */
66
- export interface ISelectorCreator<TStore extends Record<string, any>, TSelectors, TExternalSelectors = Record<string, any>> {
67
- /**
68
- * Создает набор селекторов
69
- *
70
- * @param selectorModule Модуль селекторов
71
- * @param externalSelectors Внешние селекторы (опционально)
72
- * @returns Объект с селекторами
73
- *
74
- * @example
75
- * const createUserSelectors: ISelectorCreator<UserStore, UserSelectors> =
76
- * (selectorModule, externalSelectors) => {
77
- * const isActive = selectorModule.createSelector(
78
- * (state) => state.user.isActive
79
- * );
80
- *
81
- * return { isActive };
82
- * };
83
- */
84
- (selectorModule: ISelectorModule<TStore>, externalSelectors?: TExternalSelectors): TSelectors;
85
- }
86
- /**
87
- * Тип для функции, создающей селекторы
88
- * Более простая версия ISelectorCreator, если не нужен полный интерфейс
89
- */
90
- export type SelectorCreatorFunction<TStore extends Record<string, any> = Record<string, any>, TSelectors = any, TExternalSelectors = Record<string, any>> = (selectorModule: ISelectorModule<TStore>, externalSelectors?: TExternalSelectors) => TSelectors;
91
- //# sourceMappingURL=selector.interface.d.ts.map
62
+
63
+ export type { ISelectorModule as I, SelectorAPI as S, Selector as a, SelectorOptions as b };
@@ -0,0 +1,63 @@
1
+ interface Selector<T, R> {
2
+ (state: T): R;
3
+ }
4
+ interface SelectorOptions<T> {
5
+ equals?: (a: T, b: T) => boolean;
6
+ name?: string;
7
+ }
8
+ interface Subscriber<T> {
9
+ notify: (value: T) => void | Promise<void>;
10
+ }
11
+ interface SelectorAPI<T> {
12
+ select: () => Promise<T>;
13
+ subscribe: (subscriber: Subscriber<T>) => VoidFunction;
14
+ getId: () => string;
15
+ }
16
+ /**
17
+ * Интерфейс для модуля селекторов
18
+ * Определяет контракт для работы с селекторами, который должен реализовывать SelectorModule
19
+ */
20
+ interface ISelectorModule<TStore extends Record<string, any>> {
21
+ /**
22
+ * Имя связанного хранилища
23
+ */
24
+ readonly storageName: string;
25
+ /**
26
+ * Создает простой селектор на основе функции выбора
27
+ *
28
+ * @param selector Функция, извлекающая данные из состояния
29
+ * @param options Опции селектора
30
+ * @returns API селектора
31
+ *
32
+ * @example
33
+ * const isActive = selectorModule.createSelector(
34
+ * (state) => state.user.isActive,
35
+ * { name: 'userIsActive' }
36
+ * );
37
+ */
38
+ createSelector<T>(selector: Selector<TStore, T>, options?: SelectorOptions<T>): SelectorAPI<T>;
39
+ /**
40
+ * Создает комбинированный селектор на основе других селекторов
41
+ *
42
+ * @param dependencies Массив селекторов, от которых зависит новый селектор
43
+ * @param resultFn Функция, комбинирующая результаты зависимостей
44
+ * @param options Опции селектора
45
+ * @returns API селектора
46
+ *
47
+ * @example
48
+ * const userWithStatus = selectorModule.createSelector(
49
+ * [userSelector, statusSelector],
50
+ * (user, status) => ({ ...user, status }),
51
+ * { name: 'userWithStatus' }
52
+ * );
53
+ */
54
+ createSelector<Deps extends unknown[], T>(dependencies: {
55
+ [K in keyof Deps]: SelectorAPI<Deps[K]>;
56
+ }, resultFn: (...args: Deps) => T, options?: SelectorOptions<T>): SelectorAPI<T>;
57
+ /**
58
+ * Освобождает ресурсы, связанные с модулем селекторов
59
+ */
60
+ destroy(): void;
61
+ }
62
+
63
+ export type { ISelectorModule as I, SelectorAPI as S, Selector as a, SelectorOptions as b };
@@ -0,0 +1,128 @@
1
+ declare class StorageKey {
2
+ private readonly value;
3
+ private readonly isRawKey;
4
+ constructor(value: string, isRawKey?: boolean);
5
+ toString(): string;
6
+ toJSON(): string;
7
+ valueOf(): string;
8
+ isUnparseable(): boolean;
9
+ }
10
+ type StorageKeyType = string | StorageKey;
11
+
12
+ interface IndexedDBConfig {
13
+ dbName?: string;
14
+ dbVersion?: number;
15
+ storeName?: string;
16
+ }
17
+
18
+ type StorageActionType = 'get' | 'set' | 'delete' | 'clear' | 'init' | 'keys' | 'update';
19
+ type StorageAction = {
20
+ type: StorageActionType;
21
+ key?: StorageKeyType;
22
+ value?: any;
23
+ metadata?: Record<string, any>;
24
+ source?: string;
25
+ timestamp?: number;
26
+ };
27
+ type MiddlewareAPI = {
28
+ dispatch: (action: StorageAction) => Promise<any>;
29
+ getState: () => Promise<Record<string, any>>;
30
+ storage: {
31
+ doGet: (key: StorageKeyType) => Promise<any>;
32
+ doSet: (key: StorageKeyType, value: any) => Promise<void>;
33
+ doUpdate: (updates: Array<{
34
+ key: StorageKeyType;
35
+ value: any;
36
+ }>) => Promise<void>;
37
+ doDelete: (key: StorageKeyType) => Promise<boolean>;
38
+ doClear: () => Promise<void>;
39
+ doKeys: () => Promise<string[]>;
40
+ notifySubscribers: (key: StorageKeyType, value: any) => void;
41
+ };
42
+ };
43
+ type NextFunction = (action: StorageAction) => Promise<any>;
44
+ type SetupEventsFunction = (api: MiddlewareAPI) => void;
45
+ type Middleware = {
46
+ name: string;
47
+ setup?: SetupEventsFunction;
48
+ cleanup?: () => Promise<void> | void;
49
+ reducer: (api: MiddlewareAPI) => (next: NextFunction) => (action: StorageAction) => Promise<any>;
50
+ };
51
+
52
+ interface BatchingMiddlewareOptions {
53
+ batchSize?: number;
54
+ batchDelay?: number;
55
+ }
56
+
57
+ interface ShallowCompareMiddlewareOptions {
58
+ segments?: string[];
59
+ comparator?: <T>(prev: T, next: T) => boolean;
60
+ }
61
+
62
+ interface IStorage<T extends Record<string, any> = any> {
63
+ name: string;
64
+ get<R>(key: StorageKeyType): Promise<R | undefined>;
65
+ getState(): Promise<T>;
66
+ set<R>(key: StorageKeyType, value: R): Promise<void>;
67
+ update(updater: (state: T) => void): Promise<void>;
68
+ has(key: StorageKeyType): Promise<boolean>;
69
+ delete(key: StorageKeyType): Promise<void>;
70
+ clear(): Promise<void>;
71
+ keys(): Promise<string[]>;
72
+ destroy(): Promise<void>;
73
+ subscribeToAll(callback: (event: {
74
+ type: string;
75
+ changedPaths?: string[];
76
+ key?: StorageKeyType[] | StorageKeyType;
77
+ value?: any;
78
+ }) => void): VoidFunction;
79
+ initialize(): Promise<this>;
80
+ subscribe(key: StorageKeyType, callback: (value: any) => void): VoidFunction;
81
+ subscribe<R>(pathSelector: (state: T) => R, callback: (value: R) => void): VoidFunction;
82
+ }
83
+ declare enum StorageEvents {
84
+ STORAGE_UPDATE = "storage:update",
85
+ STORAGE_DELETE = "storage:delete",
86
+ STORAGE_PATCH = "storage:patch",
87
+ STORAGE_SELECT = "storage:select",
88
+ STORAGE_CLEAR = "storage:clear",
89
+ STORAGE_DESTROY = "storage:destroy"
90
+ }
91
+ interface StorageEvent<T = any> {
92
+ type: string;
93
+ payload?: T;
94
+ metadata?: Record<string, any>;
95
+ }
96
+ interface IEventEmitter {
97
+ emit(event: StorageEvent): Promise<void>;
98
+ }
99
+ interface ILogger {
100
+ debug(message: string, meta?: Record<string, any>): void;
101
+ info(message: string, meta?: Record<string, any>): void;
102
+ warn(message: string, meta?: Record<string, any>): void;
103
+ error(message: string, meta?: Record<string, any>): void;
104
+ }
105
+ interface DefaultMiddlewares {
106
+ batching: (options?: BatchingMiddlewareOptions) => Middleware;
107
+ shallowCompare: (options?: ShallowCompareMiddlewareOptions) => Middleware;
108
+ }
109
+ type GetDefaultMiddleware = () => DefaultMiddlewares;
110
+ type ConfigureMiddlewares = (getDefaultMiddleware: GetDefaultMiddleware) => Middleware[];
111
+ interface StorageConfig {
112
+ name: string;
113
+ initialState?: Record<string, any>;
114
+ middlewares?: ConfigureMiddlewares;
115
+ }
116
+ type StorageType = 'memory' | 'localStorage' | 'indexedDB';
117
+ interface MemoryStorageConfig extends StorageConfig {
118
+ type: 'memory';
119
+ }
120
+ interface LocalStorageConfig extends StorageConfig {
121
+ type: 'localStorage';
122
+ }
123
+ interface IndexedDBStorageConfig extends StorageConfig {
124
+ type: 'indexedDB';
125
+ options: IndexedDBConfig;
126
+ }
127
+
128
+ export { type BatchingMiddlewareOptions as B, type ConfigureMiddlewares as C, type DefaultMiddlewares as D, type GetDefaultMiddleware as G, type IStorage as I, type LocalStorageConfig as L, type Middleware as M, type NextFunction as N, type ShallowCompareMiddlewareOptions as S, type MiddlewareAPI as a, type StorageAction as b, type StorageKeyType as c, StorageEvents as d, type StorageEvent as e, type IEventEmitter as f, type ILogger as g, type StorageConfig as h, type StorageType as i, type MemoryStorageConfig as j, type IndexedDBStorageConfig as k, StorageKey as l };
@@ -0,0 +1,128 @@
1
+ declare class StorageKey {
2
+ private readonly value;
3
+ private readonly isRawKey;
4
+ constructor(value: string, isRawKey?: boolean);
5
+ toString(): string;
6
+ toJSON(): string;
7
+ valueOf(): string;
8
+ isUnparseable(): boolean;
9
+ }
10
+ type StorageKeyType = string | StorageKey;
11
+
12
+ interface IndexedDBConfig {
13
+ dbName?: string;
14
+ dbVersion?: number;
15
+ storeName?: string;
16
+ }
17
+
18
+ type StorageActionType = 'get' | 'set' | 'delete' | 'clear' | 'init' | 'keys' | 'update';
19
+ type StorageAction = {
20
+ type: StorageActionType;
21
+ key?: StorageKeyType;
22
+ value?: any;
23
+ metadata?: Record<string, any>;
24
+ source?: string;
25
+ timestamp?: number;
26
+ };
27
+ type MiddlewareAPI = {
28
+ dispatch: (action: StorageAction) => Promise<any>;
29
+ getState: () => Promise<Record<string, any>>;
30
+ storage: {
31
+ doGet: (key: StorageKeyType) => Promise<any>;
32
+ doSet: (key: StorageKeyType, value: any) => Promise<void>;
33
+ doUpdate: (updates: Array<{
34
+ key: StorageKeyType;
35
+ value: any;
36
+ }>) => Promise<void>;
37
+ doDelete: (key: StorageKeyType) => Promise<boolean>;
38
+ doClear: () => Promise<void>;
39
+ doKeys: () => Promise<string[]>;
40
+ notifySubscribers: (key: StorageKeyType, value: any) => void;
41
+ };
42
+ };
43
+ type NextFunction = (action: StorageAction) => Promise<any>;
44
+ type SetupEventsFunction = (api: MiddlewareAPI) => void;
45
+ type Middleware = {
46
+ name: string;
47
+ setup?: SetupEventsFunction;
48
+ cleanup?: () => Promise<void> | void;
49
+ reducer: (api: MiddlewareAPI) => (next: NextFunction) => (action: StorageAction) => Promise<any>;
50
+ };
51
+
52
+ interface BatchingMiddlewareOptions {
53
+ batchSize?: number;
54
+ batchDelay?: number;
55
+ }
56
+
57
+ interface ShallowCompareMiddlewareOptions {
58
+ segments?: string[];
59
+ comparator?: <T>(prev: T, next: T) => boolean;
60
+ }
61
+
62
+ interface IStorage<T extends Record<string, any> = any> {
63
+ name: string;
64
+ get<R>(key: StorageKeyType): Promise<R | undefined>;
65
+ getState(): Promise<T>;
66
+ set<R>(key: StorageKeyType, value: R): Promise<void>;
67
+ update(updater: (state: T) => void): Promise<void>;
68
+ has(key: StorageKeyType): Promise<boolean>;
69
+ delete(key: StorageKeyType): Promise<void>;
70
+ clear(): Promise<void>;
71
+ keys(): Promise<string[]>;
72
+ destroy(): Promise<void>;
73
+ subscribeToAll(callback: (event: {
74
+ type: string;
75
+ changedPaths?: string[];
76
+ key?: StorageKeyType[] | StorageKeyType;
77
+ value?: any;
78
+ }) => void): VoidFunction;
79
+ initialize(): Promise<this>;
80
+ subscribe(key: StorageKeyType, callback: (value: any) => void): VoidFunction;
81
+ subscribe<R>(pathSelector: (state: T) => R, callback: (value: R) => void): VoidFunction;
82
+ }
83
+ declare enum StorageEvents {
84
+ STORAGE_UPDATE = "storage:update",
85
+ STORAGE_DELETE = "storage:delete",
86
+ STORAGE_PATCH = "storage:patch",
87
+ STORAGE_SELECT = "storage:select",
88
+ STORAGE_CLEAR = "storage:clear",
89
+ STORAGE_DESTROY = "storage:destroy"
90
+ }
91
+ interface StorageEvent<T = any> {
92
+ type: string;
93
+ payload?: T;
94
+ metadata?: Record<string, any>;
95
+ }
96
+ interface IEventEmitter {
97
+ emit(event: StorageEvent): Promise<void>;
98
+ }
99
+ interface ILogger {
100
+ debug(message: string, meta?: Record<string, any>): void;
101
+ info(message: string, meta?: Record<string, any>): void;
102
+ warn(message: string, meta?: Record<string, any>): void;
103
+ error(message: string, meta?: Record<string, any>): void;
104
+ }
105
+ interface DefaultMiddlewares {
106
+ batching: (options?: BatchingMiddlewareOptions) => Middleware;
107
+ shallowCompare: (options?: ShallowCompareMiddlewareOptions) => Middleware;
108
+ }
109
+ type GetDefaultMiddleware = () => DefaultMiddlewares;
110
+ type ConfigureMiddlewares = (getDefaultMiddleware: GetDefaultMiddleware) => Middleware[];
111
+ interface StorageConfig {
112
+ name: string;
113
+ initialState?: Record<string, any>;
114
+ middlewares?: ConfigureMiddlewares;
115
+ }
116
+ type StorageType = 'memory' | 'localStorage' | 'indexedDB';
117
+ interface MemoryStorageConfig extends StorageConfig {
118
+ type: 'memory';
119
+ }
120
+ interface LocalStorageConfig extends StorageConfig {
121
+ type: 'localStorage';
122
+ }
123
+ interface IndexedDBStorageConfig extends StorageConfig {
124
+ type: 'indexedDB';
125
+ options: IndexedDBConfig;
126
+ }
127
+
128
+ export { type BatchingMiddlewareOptions as B, type ConfigureMiddlewares as C, type DefaultMiddlewares as D, type GetDefaultMiddleware as G, type IStorage as I, type LocalStorageConfig as L, type Middleware as M, type NextFunction as N, type ShallowCompareMiddlewareOptions as S, type MiddlewareAPI as a, type StorageAction as b, type StorageKeyType as c, StorageEvents as d, type StorageEvent as e, type IEventEmitter as f, type ILogger as g, type StorageConfig as h, type StorageType as i, type MemoryStorageConfig as j, type IndexedDBStorageConfig as k, StorageKey as l };
package/dist/utils.cjs ADDED
@@ -0,0 +1 @@
1
+ 'use strict';var chunkWC5TDS6C_cjs=require('./chunk-WC5TDS6C.cjs');require('./chunk-VSIVOWZF.cjs'),require('./chunk-UFBCZ25Y.cjs'),require('./chunk-635Q6YJZ.cjs'),require('./chunk-NMDHQXMS.cjs');Object.defineProperty(exports,"createSynapse",{enumerable:true,get:function(){return chunkWC5TDS6C_cjs.a}});
@@ -0,0 +1,92 @@
1
+ import { Observable } from 'rxjs';
2
+ import { I as ISelectorModule } from './selector.interface-CA5y-kD_.cjs';
3
+ import { I as IStorage } from './storage.interface-Dl8SLUd1.cjs';
4
+ import { m as ExternalStates, o as Effect } from './dispatcher.module-CdpmkplA.cjs';
5
+
6
+ type ExtractDispatchType<T> = T extends {
7
+ dispatch: infer D;
8
+ } ? D : never;
9
+ type StorageCreatorFunction<T extends Record<string, any>> = () => Promise<IStorage<T>>;
10
+ /**
11
+ * Базовая конфигурация хранилища
12
+ */
13
+ type BaseSynapseConfig<TStore extends Record<string, any>, TSelectors = any, TExternalSelectors extends Record<string, any> = Record<string, any>> = ({
14
+ storage: IStorage<TStore>;
15
+ createStorageFn?: undefined;
16
+ } | {
17
+ storage?: undefined;
18
+ createStorageFn: StorageCreatorFunction<TStore>;
19
+ }) & {
20
+ externalSelectors?: TExternalSelectors;
21
+ createSelectorsFn?: (selectorModule: ISelectorModule<TStore>, externalSelectors: TExternalSelectors) => TSelectors;
22
+ };
23
+ /**
24
+ * Конфигурация с dispatcher и effects
25
+ */
26
+ type CreateSynapseConfigWithEffects<TStore extends Record<string, any>, TSelectors = any, TDispatcher = any, TApi extends Record<string, any> = Record<string, never>, TConfig extends Record<string, any> = Record<string, never>, TExternalSelectors extends Record<string, any> = Record<string, any>> = BaseSynapseConfig<TStore, TSelectors, TExternalSelectors> & {
27
+ createDispatcherFn: (storage: IStorage<TStore>) => TDispatcher;
28
+ createEffectConfig: (dispatcher: TDispatcher) => {
29
+ dispatchers: Record<string, any>;
30
+ api?: TApi;
31
+ config?: TConfig;
32
+ externalStates?: ExternalStates;
33
+ };
34
+ effects?: Effect<TStore, any, TApi, TConfig, any>[];
35
+ };
36
+ /**
37
+ * Конфигурация только с dispatcher
38
+ */
39
+ type CreateSynapseConfigWithDispatcher<TStore extends Record<string, any>, TSelectors = any, TDispatcher = any, TExternalSelectors extends Record<string, any> = Record<string, any>> = BaseSynapseConfig<TStore, TSelectors, TExternalSelectors> & {
40
+ createDispatcherFn: (storage: IStorage<TStore>) => TDispatcher;
41
+ createEffectConfig?: never;
42
+ effects?: never;
43
+ };
44
+ /**
45
+ * Конфигурация без dispatcher
46
+ */
47
+ type CreateSynapseConfigBasic<TStore extends Record<string, any>, TSelectors = any, TExternalSelectors extends Record<string, any> = Record<string, any>> = BaseSynapseConfig<TStore, TSelectors, TExternalSelectors> & {
48
+ createDispatcherFn?: never;
49
+ createEffectConfig?: never;
50
+ effects?: never;
51
+ };
52
+ /**
53
+ * Результат с dispatcher и effects
54
+ */
55
+ interface SynapseStoreWithEffects<TStore extends Record<string, any>, TStorage extends IStorage<TStore>, TSelectors, TActions> {
56
+ storage: TStorage;
57
+ selectors: TSelectors;
58
+ actions: TActions;
59
+ state$: Observable<TStore>;
60
+ dispatcher: any;
61
+ destroy: () => Promise<void>;
62
+ }
63
+ /**
64
+ * Результат только с dispatcher
65
+ */
66
+ interface SynapseStoreWithDispatcher<TStore extends Record<string, any>, TStorage extends IStorage<TStore>, TSelectors, TActions> {
67
+ storage: TStorage;
68
+ selectors: TSelectors;
69
+ actions: TActions;
70
+ dispatcher: any;
71
+ destroy: () => Promise<void>;
72
+ }
73
+ /**
74
+ * Результат без dispatcher
75
+ */
76
+ interface SynapseStoreBasic<TStore extends Record<string, any>, TStorage extends IStorage<TStore>, TSelectors> {
77
+ storage: TStorage;
78
+ selectors: TSelectors;
79
+ destroy: () => Promise<void>;
80
+ }
81
+ /**
82
+ * Union-тип для всех возможных результатов createSynapse
83
+ */
84
+ type AnySynapseStore<TStore extends Record<string, any> = any, TStorage extends IStorage<TStore> = IStorage<any>, TSelectors = any, TActions = any> = SynapseStoreWithEffects<TStore, TStorage, TSelectors, TActions> | SynapseStoreWithDispatcher<TStore, TStorage, TSelectors, TActions> | SynapseStoreBasic<TStore, TStorage, TSelectors>;
85
+ /**
86
+ * Перегрузки функции createSynapse
87
+ */
88
+ declare function createSynapse<TStore extends Record<string, any>, TSelectors = any, TDispatcher = any, TApi extends Record<string, any> = Record<string, never>, TConfig extends Record<string, any> = Record<string, never>, TExternalSelectors extends Record<string, any> = Record<string, any>, TStorage extends IStorage<TStore> = IStorage<TStore>>(config: CreateSynapseConfigWithEffects<TStore, TSelectors, TDispatcher, TApi, TConfig, TExternalSelectors>): Promise<SynapseStoreWithEffects<TStore, TStorage, TSelectors, ExtractDispatchType<TDispatcher>>>;
89
+ declare function createSynapse<TStore extends Record<string, any>, TSelectors = any, TDispatcher = any, TExternalSelectors extends Record<string, any> = Record<string, any>, TStorage extends IStorage<TStore> = IStorage<TStore>>(config: CreateSynapseConfigWithDispatcher<TStore, TSelectors, TDispatcher, TExternalSelectors>): Promise<SynapseStoreWithDispatcher<TStore, TStorage, TSelectors, ExtractDispatchType<TDispatcher>>>;
90
+ declare function createSynapse<TStore extends Record<string, any>, TSelectors = any, TExternalSelectors extends Record<string, any> = Record<string, any>, TStorage extends IStorage<TStore> = IStorage<TStore>>(config: CreateSynapseConfigBasic<TStore, TSelectors, TExternalSelectors>): Promise<SynapseStoreBasic<TStore, TStorage, TSelectors>>;
91
+
92
+ export { type AnySynapseStore, type SynapseStoreBasic, type SynapseStoreWithDispatcher, type SynapseStoreWithEffects, createSynapse };
@@ -0,0 +1,92 @@
1
+ import { Observable } from 'rxjs';
2
+ import { I as ISelectorModule } from './selector.interface-CA5y-kD_.js';
3
+ import { I as IStorage } from './storage.interface-Dl8SLUd1.js';
4
+ import { m as ExternalStates, o as Effect } from './dispatcher.module-jd8U_ZEs.js';
5
+
6
+ type ExtractDispatchType<T> = T extends {
7
+ dispatch: infer D;
8
+ } ? D : never;
9
+ type StorageCreatorFunction<T extends Record<string, any>> = () => Promise<IStorage<T>>;
10
+ /**
11
+ * Базовая конфигурация хранилища
12
+ */
13
+ type BaseSynapseConfig<TStore extends Record<string, any>, TSelectors = any, TExternalSelectors extends Record<string, any> = Record<string, any>> = ({
14
+ storage: IStorage<TStore>;
15
+ createStorageFn?: undefined;
16
+ } | {
17
+ storage?: undefined;
18
+ createStorageFn: StorageCreatorFunction<TStore>;
19
+ }) & {
20
+ externalSelectors?: TExternalSelectors;
21
+ createSelectorsFn?: (selectorModule: ISelectorModule<TStore>, externalSelectors: TExternalSelectors) => TSelectors;
22
+ };
23
+ /**
24
+ * Конфигурация с dispatcher и effects
25
+ */
26
+ type CreateSynapseConfigWithEffects<TStore extends Record<string, any>, TSelectors = any, TDispatcher = any, TApi extends Record<string, any> = Record<string, never>, TConfig extends Record<string, any> = Record<string, never>, TExternalSelectors extends Record<string, any> = Record<string, any>> = BaseSynapseConfig<TStore, TSelectors, TExternalSelectors> & {
27
+ createDispatcherFn: (storage: IStorage<TStore>) => TDispatcher;
28
+ createEffectConfig: (dispatcher: TDispatcher) => {
29
+ dispatchers: Record<string, any>;
30
+ api?: TApi;
31
+ config?: TConfig;
32
+ externalStates?: ExternalStates;
33
+ };
34
+ effects?: Effect<TStore, any, TApi, TConfig, any>[];
35
+ };
36
+ /**
37
+ * Конфигурация только с dispatcher
38
+ */
39
+ type CreateSynapseConfigWithDispatcher<TStore extends Record<string, any>, TSelectors = any, TDispatcher = any, TExternalSelectors extends Record<string, any> = Record<string, any>> = BaseSynapseConfig<TStore, TSelectors, TExternalSelectors> & {
40
+ createDispatcherFn: (storage: IStorage<TStore>) => TDispatcher;
41
+ createEffectConfig?: never;
42
+ effects?: never;
43
+ };
44
+ /**
45
+ * Конфигурация без dispatcher
46
+ */
47
+ type CreateSynapseConfigBasic<TStore extends Record<string, any>, TSelectors = any, TExternalSelectors extends Record<string, any> = Record<string, any>> = BaseSynapseConfig<TStore, TSelectors, TExternalSelectors> & {
48
+ createDispatcherFn?: never;
49
+ createEffectConfig?: never;
50
+ effects?: never;
51
+ };
52
+ /**
53
+ * Результат с dispatcher и effects
54
+ */
55
+ interface SynapseStoreWithEffects<TStore extends Record<string, any>, TStorage extends IStorage<TStore>, TSelectors, TActions> {
56
+ storage: TStorage;
57
+ selectors: TSelectors;
58
+ actions: TActions;
59
+ state$: Observable<TStore>;
60
+ dispatcher: any;
61
+ destroy: () => Promise<void>;
62
+ }
63
+ /**
64
+ * Результат только с dispatcher
65
+ */
66
+ interface SynapseStoreWithDispatcher<TStore extends Record<string, any>, TStorage extends IStorage<TStore>, TSelectors, TActions> {
67
+ storage: TStorage;
68
+ selectors: TSelectors;
69
+ actions: TActions;
70
+ dispatcher: any;
71
+ destroy: () => Promise<void>;
72
+ }
73
+ /**
74
+ * Результат без dispatcher
75
+ */
76
+ interface SynapseStoreBasic<TStore extends Record<string, any>, TStorage extends IStorage<TStore>, TSelectors> {
77
+ storage: TStorage;
78
+ selectors: TSelectors;
79
+ destroy: () => Promise<void>;
80
+ }
81
+ /**
82
+ * Union-тип для всех возможных результатов createSynapse
83
+ */
84
+ type AnySynapseStore<TStore extends Record<string, any> = any, TStorage extends IStorage<TStore> = IStorage<any>, TSelectors = any, TActions = any> = SynapseStoreWithEffects<TStore, TStorage, TSelectors, TActions> | SynapseStoreWithDispatcher<TStore, TStorage, TSelectors, TActions> | SynapseStoreBasic<TStore, TStorage, TSelectors>;
85
+ /**
86
+ * Перегрузки функции createSynapse
87
+ */
88
+ declare function createSynapse<TStore extends Record<string, any>, TSelectors = any, TDispatcher = any, TApi extends Record<string, any> = Record<string, never>, TConfig extends Record<string, any> = Record<string, never>, TExternalSelectors extends Record<string, any> = Record<string, any>, TStorage extends IStorage<TStore> = IStorage<TStore>>(config: CreateSynapseConfigWithEffects<TStore, TSelectors, TDispatcher, TApi, TConfig, TExternalSelectors>): Promise<SynapseStoreWithEffects<TStore, TStorage, TSelectors, ExtractDispatchType<TDispatcher>>>;
89
+ declare function createSynapse<TStore extends Record<string, any>, TSelectors = any, TDispatcher = any, TExternalSelectors extends Record<string, any> = Record<string, any>, TStorage extends IStorage<TStore> = IStorage<TStore>>(config: CreateSynapseConfigWithDispatcher<TStore, TSelectors, TDispatcher, TExternalSelectors>): Promise<SynapseStoreWithDispatcher<TStore, TStorage, TSelectors, ExtractDispatchType<TDispatcher>>>;
90
+ declare function createSynapse<TStore extends Record<string, any>, TSelectors = any, TExternalSelectors extends Record<string, any> = Record<string, any>, TStorage extends IStorage<TStore> = IStorage<TStore>>(config: CreateSynapseConfigBasic<TStore, TSelectors, TExternalSelectors>): Promise<SynapseStoreBasic<TStore, TStorage, TSelectors>>;
91
+
92
+ export { type AnySynapseStore, type SynapseStoreBasic, type SynapseStoreWithDispatcher, type SynapseStoreWithEffects, createSynapse };
package/dist/utils.js ADDED
@@ -0,0 +1 @@
1
+ export{a as createSynapse}from'./chunk-WQNH3LVB.js';import'./chunk-6RNZVHSR.js';import'./chunk-IPUPRMZK.js';import'./chunk-ZE2EJX2Y.js';import'./chunk-5X65PSGD.js';