synstate 0.1.1 → 1.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 (309) hide show
  1. package/README.md +317 -298
  2. package/dist/core/class/child-observable-class.d.mts.map +1 -1
  3. package/dist/core/class/child-observable-class.mjs +43 -10
  4. package/dist/core/class/child-observable-class.mjs.map +1 -1
  5. package/dist/core/class/observable-base-class.d.mts +4 -4
  6. package/dist/core/class/observable-base-class.d.mts.map +1 -1
  7. package/dist/core/class/observable-base-class.mjs +8 -8
  8. package/dist/core/class/observable-base-class.mjs.map +1 -1
  9. package/dist/core/class/root-observable-class.d.mts +1 -1
  10. package/dist/core/class/root-observable-class.d.mts.map +1 -1
  11. package/dist/core/class/root-observable-class.mjs +9 -9
  12. package/dist/core/class/root-observable-class.mjs.map +1 -1
  13. package/dist/core/combine/combine.d.mts +7 -7
  14. package/dist/core/combine/combine.mjs +13 -14
  15. package/dist/core/combine/combine.mjs.map +1 -1
  16. package/dist/core/combine/merge.d.mts +6 -6
  17. package/dist/core/combine/merge.mjs +9 -9
  18. package/dist/core/combine/merge.mjs.map +1 -1
  19. package/dist/core/combine/zip.d.mts +20 -19
  20. package/dist/core/combine/zip.d.mts.map +1 -1
  21. package/dist/core/combine/zip.mjs +22 -21
  22. package/dist/core/combine/zip.mjs.map +1 -1
  23. package/dist/core/create/{interval.d.mts → counter.d.mts} +14 -12
  24. package/dist/core/create/counter.d.mts.map +1 -0
  25. package/dist/core/create/{interval.mjs → counter.mjs} +21 -23
  26. package/dist/core/create/counter.mjs.map +1 -0
  27. package/dist/core/create/from-abortable-promise.d.mts +29 -0
  28. package/dist/core/create/from-abortable-promise.d.mts.map +1 -0
  29. package/dist/core/create/from-abortable-promise.mjs +70 -0
  30. package/dist/core/create/from-abortable-promise.mjs.map +1 -0
  31. package/dist/core/create/from-promise.d.mts +9 -6
  32. package/dist/core/create/from-promise.d.mts.map +1 -1
  33. package/dist/core/create/from-promise.mjs +8 -5
  34. package/dist/core/create/from-promise.mjs.map +1 -1
  35. package/dist/core/create/from-subscribable.d.mts +4 -4
  36. package/dist/core/create/from-subscribable.mjs +4 -4
  37. package/dist/core/create/index.d.mts +3 -3
  38. package/dist/core/create/index.d.mts.map +1 -1
  39. package/dist/core/create/index.mjs +4 -4
  40. package/dist/core/create/just.d.mts +32 -0
  41. package/dist/core/create/just.d.mts.map +1 -0
  42. package/dist/core/create/just.mjs +44 -0
  43. package/dist/core/create/just.mjs.map +1 -0
  44. package/dist/core/create/source.d.mts +7 -12
  45. package/dist/core/create/source.d.mts.map +1 -1
  46. package/dist/core/create/source.mjs +1 -6
  47. package/dist/core/create/source.mjs.map +1 -1
  48. package/dist/core/create/timer.d.mts +6 -4
  49. package/dist/core/create/timer.d.mts.map +1 -1
  50. package/dist/core/create/timer.mjs +6 -7
  51. package/dist/core/create/timer.mjs.map +1 -1
  52. package/dist/core/index.d.mts +1 -1
  53. package/dist/core/index.d.mts.map +1 -1
  54. package/dist/core/index.mjs +21 -14
  55. package/dist/core/index.mjs.map +1 -1
  56. package/dist/core/operators/audit.d.mts +97 -0
  57. package/dist/core/operators/audit.d.mts.map +1 -0
  58. package/dist/core/operators/audit.mjs +144 -0
  59. package/dist/core/operators/audit.mjs.map +1 -0
  60. package/dist/core/operators/debounce.d.mts +88 -0
  61. package/dist/core/operators/debounce.d.mts.map +1 -0
  62. package/dist/core/operators/debounce.mjs +130 -0
  63. package/dist/core/operators/debounce.mjs.map +1 -0
  64. package/dist/core/operators/filter.d.mts +5 -5
  65. package/dist/core/operators/filter.mjs +3 -3
  66. package/dist/core/operators/filter.mjs.map +1 -1
  67. package/dist/core/operators/index.d.mts +4 -4
  68. package/dist/core/operators/index.d.mts.map +1 -1
  69. package/dist/core/operators/index.mjs +6 -6
  70. package/dist/core/operators/map.d.mts +41 -0
  71. package/dist/core/operators/map.d.mts.map +1 -0
  72. package/dist/core/operators/map.mjs +71 -0
  73. package/dist/core/operators/map.mjs.map +1 -0
  74. package/dist/core/operators/merge-map.d.mts +57 -30
  75. package/dist/core/operators/merge-map.d.mts.map +1 -1
  76. package/dist/core/operators/merge-map.mjs +59 -32
  77. package/dist/core/operators/merge-map.mjs.map +1 -1
  78. package/dist/core/operators/pairwise.d.mts +6 -6
  79. package/dist/core/operators/pairwise.mjs +9 -9
  80. package/dist/core/operators/pairwise.mjs.map +1 -1
  81. package/dist/core/operators/scan.d.mts +6 -6
  82. package/dist/core/operators/scan.mjs +9 -9
  83. package/dist/core/operators/scan.mjs.map +1 -1
  84. package/dist/core/operators/skip-if-no-change.d.mts +21 -9
  85. package/dist/core/operators/skip-if-no-change.d.mts.map +1 -1
  86. package/dist/core/operators/skip-if-no-change.mjs +25 -13
  87. package/dist/core/operators/skip-if-no-change.mjs.map +1 -1
  88. package/dist/core/operators/skip-until.d.mts +5 -5
  89. package/dist/core/operators/skip-until.mjs +8 -8
  90. package/dist/core/operators/skip-until.mjs.map +1 -1
  91. package/dist/core/operators/skip-while.d.mts +18 -9
  92. package/dist/core/operators/skip-while.d.mts.map +1 -1
  93. package/dist/core/operators/skip-while.mjs +28 -16
  94. package/dist/core/operators/skip-while.mjs.map +1 -1
  95. package/dist/core/operators/switch-map.d.mts +57 -26
  96. package/dist/core/operators/switch-map.d.mts.map +1 -1
  97. package/dist/core/operators/switch-map.mjs +59 -28
  98. package/dist/core/operators/switch-map.mjs.map +1 -1
  99. package/dist/core/operators/take-until.d.mts +5 -5
  100. package/dist/core/operators/take-until.mjs +8 -8
  101. package/dist/core/operators/take-until.mjs.map +1 -1
  102. package/dist/core/operators/take-while.d.mts +15 -8
  103. package/dist/core/operators/take-while.d.mts.map +1 -1
  104. package/dist/core/operators/take-while.mjs +19 -13
  105. package/dist/core/operators/take-while.mjs.map +1 -1
  106. package/dist/core/operators/throttle.d.mts +81 -0
  107. package/dist/core/operators/throttle.d.mts.map +1 -0
  108. package/dist/core/operators/throttle.mjs +126 -0
  109. package/dist/core/operators/throttle.mjs.map +1 -0
  110. package/dist/core/operators/with-buffered-from.d.mts +13 -9
  111. package/dist/core/operators/with-buffered-from.d.mts.map +1 -1
  112. package/dist/core/operators/with-buffered-from.mjs +17 -13
  113. package/dist/core/operators/with-buffered-from.mjs.map +1 -1
  114. package/dist/core/operators/with-current-value-from.d.mts +14 -9
  115. package/dist/core/operators/with-current-value-from.d.mts.map +1 -1
  116. package/dist/core/operators/with-current-value-from.mjs +18 -13
  117. package/dist/core/operators/with-current-value-from.mjs.map +1 -1
  118. package/dist/core/operators/with-initial-value.d.mts +5 -5
  119. package/dist/core/operators/with-initial-value.mjs +8 -8
  120. package/dist/core/operators/with-initial-value.mjs.map +1 -1
  121. package/dist/core/predefined/index.d.mts +2 -0
  122. package/dist/core/predefined/index.d.mts.map +1 -0
  123. package/dist/core/predefined/index.mjs +12 -0
  124. package/dist/core/predefined/index.mjs.map +1 -0
  125. package/dist/core/predefined/operators/attach-index.d.mts +57 -0
  126. package/dist/core/predefined/operators/attach-index.d.mts.map +1 -0
  127. package/dist/core/predefined/operators/attach-index.mjs +62 -0
  128. package/dist/core/predefined/operators/attach-index.mjs.map +1 -0
  129. package/dist/core/predefined/operators/index.d.mts +12 -0
  130. package/dist/core/predefined/operators/index.d.mts.map +1 -0
  131. package/dist/core/predefined/operators/index.mjs +12 -0
  132. package/dist/core/predefined/operators/index.mjs.map +1 -0
  133. package/dist/core/predefined/operators/map-optional.d.mts +51 -0
  134. package/dist/core/predefined/operators/map-optional.d.mts.map +1 -0
  135. package/dist/core/predefined/operators/map-optional.mjs +55 -0
  136. package/dist/core/predefined/operators/map-optional.mjs.map +1 -0
  137. package/dist/core/predefined/operators/map-result-err.d.mts +51 -0
  138. package/dist/core/predefined/operators/map-result-err.d.mts.map +1 -0
  139. package/dist/core/predefined/operators/map-result-err.mjs +55 -0
  140. package/dist/core/predefined/operators/map-result-err.mjs.map +1 -0
  141. package/dist/core/predefined/operators/map-result-ok.d.mts +51 -0
  142. package/dist/core/predefined/operators/map-result-ok.d.mts.map +1 -0
  143. package/dist/core/predefined/operators/map-result-ok.mjs +55 -0
  144. package/dist/core/predefined/operators/map-result-ok.mjs.map +1 -0
  145. package/dist/core/predefined/operators/map-to.d.mts +43 -0
  146. package/dist/core/predefined/operators/map-to.d.mts.map +1 -0
  147. package/dist/core/predefined/operators/map-to.mjs +48 -0
  148. package/dist/core/predefined/operators/map-to.mjs.map +1 -0
  149. package/dist/core/predefined/operators/pluck.d.mts +47 -0
  150. package/dist/core/predefined/operators/pluck.d.mts.map +1 -0
  151. package/dist/core/predefined/operators/pluck.mjs +52 -0
  152. package/dist/core/predefined/operators/pluck.mjs.map +1 -0
  153. package/dist/core/predefined/operators/skip.d.mts +50 -0
  154. package/dist/core/predefined/operators/skip.d.mts.map +1 -0
  155. package/dist/core/predefined/operators/skip.mjs +56 -0
  156. package/dist/core/predefined/operators/skip.mjs.map +1 -0
  157. package/dist/core/predefined/operators/take.d.mts +44 -0
  158. package/dist/core/predefined/operators/take.d.mts.map +1 -0
  159. package/dist/core/predefined/operators/take.mjs +49 -0
  160. package/dist/core/predefined/operators/take.mjs.map +1 -0
  161. package/dist/core/predefined/operators/unwrap-optional.d.mts +44 -0
  162. package/dist/core/predefined/operators/unwrap-optional.d.mts.map +1 -0
  163. package/dist/core/predefined/operators/unwrap-optional.mjs +50 -0
  164. package/dist/core/predefined/operators/unwrap-optional.mjs.map +1 -0
  165. package/dist/core/predefined/operators/unwrap-result-err.d.mts +44 -0
  166. package/dist/core/predefined/operators/unwrap-result-err.d.mts.map +1 -0
  167. package/dist/core/predefined/operators/unwrap-result-err.mjs +48 -0
  168. package/dist/core/predefined/operators/unwrap-result-err.mjs.map +1 -0
  169. package/dist/core/predefined/operators/unwrap-result-ok.d.mts +44 -0
  170. package/dist/core/predefined/operators/unwrap-result-ok.d.mts.map +1 -0
  171. package/dist/core/predefined/operators/unwrap-result-ok.mjs +50 -0
  172. package/dist/core/predefined/operators/unwrap-result-ok.mjs.map +1 -0
  173. package/dist/core/types/id.d.mts +1 -1
  174. package/dist/core/types/id.d.mts.map +1 -1
  175. package/dist/core/types/index.d.mts +1 -0
  176. package/dist/core/types/index.d.mts.map +1 -1
  177. package/dist/core/types/observable-family.d.mts +8 -14
  178. package/dist/core/types/observable-family.d.mts.map +1 -1
  179. package/dist/core/types/observable.d.mts +3 -3
  180. package/dist/core/types/observable.d.mts.map +1 -1
  181. package/dist/core/types/timer.d.mts +2 -0
  182. package/dist/core/types/timer.d.mts.map +1 -0
  183. package/dist/core/types/timer.mjs +2 -0
  184. package/dist/core/types/timer.mjs.map +1 -0
  185. package/dist/core/utils/id-maker.d.mts +2 -2
  186. package/dist/core/utils/id-maker.d.mts.map +1 -1
  187. package/dist/core/utils/id-maker.mjs +3 -3
  188. package/dist/core/utils/id-maker.mjs.map +1 -1
  189. package/dist/core/utils/index.mjs +1 -1
  190. package/dist/entry-point.mjs +24 -15
  191. package/dist/entry-point.mjs.map +1 -1
  192. package/dist/globals.d.mts +0 -3
  193. package/dist/index.mjs +24 -15
  194. package/dist/index.mjs.map +1 -1
  195. package/dist/utils/collect-to-array.d.mts +3 -0
  196. package/dist/utils/collect-to-array.d.mts.map +1 -0
  197. package/dist/utils/collect-to-array.mjs +11 -0
  198. package/dist/utils/collect-to-array.mjs.map +1 -0
  199. package/dist/utils/create-boolean-state.d.mts +40 -0
  200. package/dist/utils/create-boolean-state.d.mts.map +1 -0
  201. package/dist/utils/create-boolean-state.mjs +53 -0
  202. package/dist/utils/create-boolean-state.mjs.map +1 -0
  203. package/dist/utils/create-event-emitter.d.mts +4 -4
  204. package/dist/utils/create-event-emitter.mjs +4 -4
  205. package/dist/utils/create-reducer.d.mts +10 -7
  206. package/dist/utils/create-reducer.d.mts.map +1 -1
  207. package/dist/utils/create-reducer.mjs +7 -7
  208. package/dist/utils/create-reducer.mjs.map +1 -1
  209. package/dist/utils/create-state.d.mts +8 -48
  210. package/dist/utils/create-state.d.mts.map +1 -1
  211. package/dist/utils/create-state.mjs +10 -60
  212. package/dist/utils/create-state.mjs.map +1 -1
  213. package/dist/utils/index.d.mts +2 -0
  214. package/dist/utils/index.d.mts.map +1 -1
  215. package/dist/utils/index.mjs +3 -1
  216. package/dist/utils/index.mjs.map +1 -1
  217. package/package.json +17 -11
  218. package/src/core/class/child-observable-class.mts +65 -9
  219. package/src/core/class/circular-dependency-comparison.test.mts +142 -0
  220. package/src/core/class/circular-dependency.test.mts +251 -0
  221. package/src/core/class/observable-base-class.mts +9 -9
  222. package/src/core/class/root-observable-class.mts +14 -10
  223. package/src/core/combine/combine.mts +15 -15
  224. package/src/core/combine/merge.mts +13 -14
  225. package/src/core/combine/zip.mts +26 -25
  226. package/src/core/create/{interval.mts → counter.mts} +32 -30
  227. package/src/core/create/from-abortable-promise.mts +83 -0
  228. package/src/core/create/from-promise.mts +10 -7
  229. package/src/core/create/from-subscribable.mts +4 -4
  230. package/src/core/create/index.mts +3 -3
  231. package/src/core/create/just.mts +43 -0
  232. package/src/core/create/source.mts +10 -14
  233. package/src/core/create/timer.mts +12 -11
  234. package/src/core/index.mts +1 -1
  235. package/src/core/operators/audit.mts +172 -0
  236. package/src/core/operators/debounce.mts +154 -0
  237. package/src/core/operators/filter.mts +9 -9
  238. package/src/core/operators/index.mts +4 -4
  239. package/src/core/operators/map.mts +124 -0
  240. package/src/core/operators/merge-map.mts +60 -33
  241. package/src/core/operators/pairwise.mts +10 -10
  242. package/src/core/operators/scan.mts +10 -10
  243. package/src/core/operators/skip-if-no-change.mts +26 -14
  244. package/src/core/operators/skip-until.mts +9 -9
  245. package/src/core/operators/skip-while.mts +30 -28
  246. package/src/core/operators/switch-map.mts +60 -29
  247. package/src/core/operators/take-until.mts +9 -9
  248. package/src/core/operators/take-while.mts +21 -19
  249. package/src/core/operators/{throttle-time.mts → throttle.mts} +58 -38
  250. package/src/core/operators/with-buffered-from.mts +18 -14
  251. package/src/core/operators/with-current-value-from.mts +19 -14
  252. package/src/core/operators/with-initial-value.mts +9 -9
  253. package/src/core/predefined/index.mts +1 -0
  254. package/src/core/predefined/operators/attach-index.mts +62 -0
  255. package/src/core/predefined/operators/index.mts +11 -0
  256. package/src/core/predefined/operators/map-optional.mts +55 -0
  257. package/src/core/predefined/operators/map-result-err.mts +55 -0
  258. package/src/core/predefined/operators/map-result-ok.mts +55 -0
  259. package/src/core/predefined/operators/map-to.mts +45 -0
  260. package/src/core/predefined/operators/pluck.mts +51 -0
  261. package/src/core/predefined/operators/skip.mts +57 -0
  262. package/src/core/predefined/operators/take.mts +47 -0
  263. package/src/core/predefined/operators/unwrap-optional.mts +49 -0
  264. package/src/core/predefined/operators/unwrap-result-err.mts +48 -0
  265. package/src/core/predefined/operators/unwrap-result-ok.mts +49 -0
  266. package/src/core/types/id.mts +1 -1
  267. package/src/core/types/index.mts +1 -0
  268. package/src/core/types/observable-family.mts +8 -24
  269. package/src/core/types/observable.mts +3 -3
  270. package/src/core/types/timer.mts +2 -0
  271. package/src/core/utils/id-maker.mts +4 -4
  272. package/src/globals.d.mts +0 -3
  273. package/src/utils/collect-to-array.mts +17 -0
  274. package/src/utils/create-boolean-state.mts +68 -0
  275. package/src/utils/create-event-emitter.mts +4 -4
  276. package/src/utils/create-reducer.mts +11 -8
  277. package/src/utils/create-state.mts +10 -75
  278. package/src/utils/index.mts +2 -0
  279. package/dist/core/create/from-array.d.mts +0 -39
  280. package/dist/core/create/from-array.d.mts.map +0 -1
  281. package/dist/core/create/from-array.mjs +0 -65
  282. package/dist/core/create/from-array.mjs.map +0 -1
  283. package/dist/core/create/interval.d.mts.map +0 -1
  284. package/dist/core/create/interval.mjs.map +0 -1
  285. package/dist/core/create/of.d.mts +0 -39
  286. package/dist/core/create/of.d.mts.map +0 -1
  287. package/dist/core/create/of.mjs +0 -63
  288. package/dist/core/create/of.mjs.map +0 -1
  289. package/dist/core/operators/audit-time.d.mts +0 -62
  290. package/dist/core/operators/audit-time.d.mts.map +0 -1
  291. package/dist/core/operators/audit-time.mjs +0 -109
  292. package/dist/core/operators/audit-time.mjs.map +0 -1
  293. package/dist/core/operators/debounce-time.d.mts +0 -51
  294. package/dist/core/operators/debounce-time.d.mts.map +0 -1
  295. package/dist/core/operators/debounce-time.mjs +0 -93
  296. package/dist/core/operators/debounce-time.mjs.map +0 -1
  297. package/dist/core/operators/map-with-index.d.mts +0 -54
  298. package/dist/core/operators/map-with-index.d.mts.map +0 -1
  299. package/dist/core/operators/map-with-index.mjs +0 -88
  300. package/dist/core/operators/map-with-index.mjs.map +0 -1
  301. package/dist/core/operators/throttle-time.d.mts +0 -62
  302. package/dist/core/operators/throttle-time.d.mts.map +0 -1
  303. package/dist/core/operators/throttle-time.mjs +0 -107
  304. package/dist/core/operators/throttle-time.mjs.map +0 -1
  305. package/src/core/create/from-array.mts +0 -76
  306. package/src/core/create/of.mts +0 -73
  307. package/src/core/operators/audit-time.mts +0 -136
  308. package/src/core/operators/debounce-time.mts +0 -116
  309. package/src/core/operators/map-with-index.mts +0 -183
@@ -1,5 +1,5 @@
1
- import { type ObservableId, type SubscriberId, type UpdaterSymbol } from '../types/index.mjs';
1
+ import { type ObservableId, type SubscriberId, type UpdateToken } from '../types/index.mjs';
2
2
  export declare const issueObservableId: () => ObservableId;
3
3
  export declare const issueSubscriberId: () => SubscriberId;
4
- export declare const issueUpdaterSymbol: () => UpdaterSymbol;
4
+ export declare const issueUpdateToken: () => UpdateToken;
5
5
  //# sourceMappingURL=id-maker.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"id-maker.d.mts","sourceRoot":"","sources":["../../../src/core/utils/id-maker.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAmB5B,eAAO,MAAM,iBAAiB,QAAO,YACL,CAAC;AAEjC,eAAO,MAAM,iBAAiB,QAAO,YACL,CAAC;AAEjC,eAAO,MAAM,kBAAkB,QAAO,aACL,CAAC"}
1
+ {"version":3,"file":"id-maker.d.mts","sourceRoot":"","sources":["../../../src/core/utils/id-maker.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,oBAAoB,CAAC;AAmB5B,eAAO,MAAM,iBAAiB,QAAO,YACL,CAAC;AAEjC,eAAO,MAAM,iBAAiB,QAAO,YACL,CAAC;AAEjC,eAAO,MAAM,gBAAgB,QAAO,WACL,CAAC"}
@@ -8,10 +8,10 @@ function* idMaker() {
8
8
  }
9
9
  const observableIdMaker = idMaker();
10
10
  const subscriberIdMaker = idMaker();
11
- const updaterSymbolMaker = idMaker();
11
+ const updateTokenMaker = idMaker();
12
12
  const issueObservableId = () => observableIdMaker.next().value;
13
13
  const issueSubscriberId = () => subscriberIdMaker.next().value;
14
- const issueUpdaterSymbol = () => updaterSymbolMaker.next().value;
14
+ const issueUpdateToken = () => updateTokenMaker.next().value;
15
15
 
16
- export { issueObservableId, issueSubscriberId, issueUpdaterSymbol };
16
+ export { issueObservableId, issueSubscriberId, issueUpdateToken };
17
17
  //# sourceMappingURL=id-maker.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"id-maker.mjs","sources":["../../../src/core/utils/id-maker.mts"],"sourcesContent":[null],"names":[],"mappings":"AAMA,UAAU,OAAO,GAAA;IACf,IAAI,KAAK,GAAG,CAAC;IAEb,OAAO,IAAI,EAAE;;AAEX,QAAA,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAM;QAEnC,KAAK,IAAI,CAAC;IACZ;AACF;AAEA,MAAM,iBAAiB,GAAG,OAAO,EAAgB;AAEjD,MAAM,iBAAiB,GAAG,OAAO,EAAgB;AAEjD,MAAM,kBAAkB,GAAG,OAAO,EAAiB;AAE5C,MAAM,iBAAiB,GAAG,MAC/B,iBAAiB,CAAC,IAAI,EAAE,CAAC;AAEpB,MAAM,iBAAiB,GAAG,MAC/B,iBAAiB,CAAC,IAAI,EAAE,CAAC;AAEpB,MAAM,kBAAkB,GAAG,MAChC,kBAAkB,CAAC,IAAI,EAAE,CAAC;;;;"}
1
+ {"version":3,"file":"id-maker.mjs","sources":["../../../src/core/utils/id-maker.mts"],"sourcesContent":[null],"names":[],"mappings":"AAMA,UAAU,OAAO,GAAA;IACf,IAAI,KAAK,GAAG,CAAC;IAEb,OAAO,IAAI,EAAE;;AAEX,QAAA,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAM;QAEnC,KAAK,IAAI,CAAC;IACZ;AACF;AAEA,MAAM,iBAAiB,GAAG,OAAO,EAAgB;AAEjD,MAAM,iBAAiB,GAAG,OAAO,EAAgB;AAEjD,MAAM,gBAAgB,GAAG,OAAO,EAAe;AAExC,MAAM,iBAAiB,GAAG,MAC/B,iBAAiB,CAAC,IAAI,EAAE,CAAC;AAEpB,MAAM,iBAAiB,GAAG,MAC/B,iBAAiB,CAAC,IAAI,EAAE,CAAC;AAEpB,MAAM,gBAAgB,GAAG,MAC9B,gBAAgB,CAAC,IAAI,EAAE,CAAC;;;;"}
@@ -1,4 +1,4 @@
1
- export { issueObservableId, issueSubscriberId, issueUpdaterSymbol } from './id-maker.mjs';
1
+ export { issueObservableId, issueSubscriberId, issueUpdateToken } from './id-maker.mjs';
2
2
  export { maxDepth } from './max-depth.mjs';
3
3
  export { toSubscriber } from './observable-utils.mjs';
4
4
  export { binarySearch, halfInt } from './utils.mjs';
@@ -4,37 +4,46 @@ export { RootObservableClass } from './core/class/root-observable-class.mjs';
4
4
  export { combine, combineLatest } from './core/combine/combine.mjs';
5
5
  export { merge } from './core/combine/merge.mjs';
6
6
  export { zip } from './core/combine/zip.mjs';
7
- export { fromArray } from './core/create/from-array.mjs';
7
+ export { counter } from './core/create/counter.mjs';
8
+ export { fromAbortablePromise } from './core/create/from-abortable-promise.mjs';
8
9
  export { fromPromise } from './core/create/from-promise.mjs';
9
10
  export { fromSubscribable } from './core/create/from-subscribable.mjs';
10
- export { interval } from './core/create/interval.mjs';
11
- export { of } from './core/create/of.mjs';
12
- export { source, subject } from './core/create/source.mjs';
11
+ export { just } from './core/create/just.mjs';
12
+ export { source } from './core/create/source.mjs';
13
13
  export { timer } from './core/create/timer.mjs';
14
- export { auditTime } from './core/operators/audit-time.mjs';
15
- export { debounceTime } from './core/operators/debounce-time.mjs';
14
+ export { audit } from './core/operators/audit.mjs';
15
+ export { debounce } from './core/operators/debounce.mjs';
16
16
  export { filter } from './core/operators/filter.mjs';
17
- export { attachIndex, getKey, map, mapOptional, mapResultErr, mapResultOk, mapTo, mapWithIndex, pluck, unwrapOptional, unwrapResultErr, unwrapResultOk, withIndex } from './core/operators/map-with-index.mjs';
17
+ export { map } from './core/operators/map.mjs';
18
18
  export { flatMap, mergeMap } from './core/operators/merge-map.mjs';
19
19
  export { pairwise } from './core/operators/pairwise.mjs';
20
20
  export { scan } from './core/operators/scan.mjs';
21
21
  export { distinctUntilChanged, skipIfNoChange } from './core/operators/skip-if-no-change.mjs';
22
22
  export { skipUntil } from './core/operators/skip-until.mjs';
23
- export { skip, skipWhile } from './core/operators/skip-while.mjs';
23
+ export { skipWhile } from './core/operators/skip-while.mjs';
24
24
  export { switchMap } from './core/operators/switch-map.mjs';
25
25
  export { takeUntil } from './core/operators/take-until.mjs';
26
- export { take, takeWhile } from './core/operators/take-while.mjs';
27
- export { throttleTime } from './core/operators/throttle-time.mjs';
26
+ export { takeWhile } from './core/operators/take-while.mjs';
27
+ export { throttle } from './core/operators/throttle.mjs';
28
28
  export { withBuffered, withBufferedFrom } from './core/operators/with-buffered-from.mjs';
29
29
  export { withCurrentValueFrom, withLatestFrom } from './core/operators/with-current-value-from.mjs';
30
30
  export { withInitialValue } from './core/operators/with-initial-value.mjs';
31
+ export { attachIndex, withIndex } from './core/predefined/operators/attach-index.mjs';
32
+ export { mapOptional } from './core/predefined/operators/map-optional.mjs';
33
+ export { mapResultErr } from './core/predefined/operators/map-result-err.mjs';
34
+ export { mapResultOk } from './core/predefined/operators/map-result-ok.mjs';
35
+ export { mapTo } from './core/predefined/operators/map-to.mjs';
36
+ export { getKey, pluck } from './core/predefined/operators/pluck.mjs';
37
+ export { skip } from './core/predefined/operators/skip.mjs';
38
+ export { take } from './core/predefined/operators/take.mjs';
39
+ export { unwrapOptional } from './core/predefined/operators/unwrap-optional.mjs';
40
+ export { unwrapResultErr } from './core/predefined/operators/unwrap-result-err.mjs';
41
+ export { unwrapResultOk } from './core/predefined/operators/unwrap-result-ok.mjs';
31
42
  import 'ts-data-forge';
32
43
  export { isChildObservable, isManagerObservable, isRootObservable } from './core/types/observable.mjs';
33
- export { issueObservableId, issueSubscriberId, issueUpdaterSymbol } from './core/utils/id-maker.mjs';
34
- export { maxDepth } from './core/utils/max-depth.mjs';
35
- export { toSubscriber } from './core/utils/observable-utils.mjs';
36
- export { binarySearch, halfInt } from './core/utils/utils.mjs';
44
+ export { collectToArray } from './utils/collect-to-array.mjs';
45
+ export { createBooleanState } from './utils/create-boolean-state.mjs';
37
46
  export { createEventEmitter, createValueEmitter } from './utils/create-event-emitter.mjs';
38
47
  export { createReducer } from './utils/create-reducer.mjs';
39
- export { createBooleanState, createState } from './utils/create-state.mjs';
48
+ export { createState } from './utils/create-state.mjs';
40
49
  //# sourceMappingURL=entry-point.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"entry-point.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"entry-point.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1 @@
1
1
  /// <reference types="ts-type-forge" />
2
-
3
- // Timer types for Node.js/Browser compatibility
4
- type TimerId = ReturnType<typeof setTimeout>;
package/dist/index.mjs CHANGED
@@ -4,37 +4,46 @@ export { RootObservableClass } from './core/class/root-observable-class.mjs';
4
4
  export { combine, combineLatest } from './core/combine/combine.mjs';
5
5
  export { merge } from './core/combine/merge.mjs';
6
6
  export { zip } from './core/combine/zip.mjs';
7
- export { fromArray } from './core/create/from-array.mjs';
7
+ export { counter } from './core/create/counter.mjs';
8
+ export { fromAbortablePromise } from './core/create/from-abortable-promise.mjs';
8
9
  export { fromPromise } from './core/create/from-promise.mjs';
9
10
  export { fromSubscribable } from './core/create/from-subscribable.mjs';
10
- export { interval } from './core/create/interval.mjs';
11
- export { of } from './core/create/of.mjs';
12
- export { source, subject } from './core/create/source.mjs';
11
+ export { just } from './core/create/just.mjs';
12
+ export { source } from './core/create/source.mjs';
13
13
  export { timer } from './core/create/timer.mjs';
14
- export { auditTime } from './core/operators/audit-time.mjs';
15
- export { debounceTime } from './core/operators/debounce-time.mjs';
14
+ export { audit } from './core/operators/audit.mjs';
15
+ export { debounce } from './core/operators/debounce.mjs';
16
16
  export { filter } from './core/operators/filter.mjs';
17
- export { attachIndex, getKey, map, mapOptional, mapResultErr, mapResultOk, mapTo, mapWithIndex, pluck, unwrapOptional, unwrapResultErr, unwrapResultOk, withIndex } from './core/operators/map-with-index.mjs';
17
+ export { map } from './core/operators/map.mjs';
18
18
  export { flatMap, mergeMap } from './core/operators/merge-map.mjs';
19
19
  export { pairwise } from './core/operators/pairwise.mjs';
20
20
  export { scan } from './core/operators/scan.mjs';
21
21
  export { distinctUntilChanged, skipIfNoChange } from './core/operators/skip-if-no-change.mjs';
22
22
  export { skipUntil } from './core/operators/skip-until.mjs';
23
- export { skip, skipWhile } from './core/operators/skip-while.mjs';
23
+ export { skipWhile } from './core/operators/skip-while.mjs';
24
24
  export { switchMap } from './core/operators/switch-map.mjs';
25
25
  export { takeUntil } from './core/operators/take-until.mjs';
26
- export { take, takeWhile } from './core/operators/take-while.mjs';
27
- export { throttleTime } from './core/operators/throttle-time.mjs';
26
+ export { takeWhile } from './core/operators/take-while.mjs';
27
+ export { throttle } from './core/operators/throttle.mjs';
28
28
  export { withBuffered, withBufferedFrom } from './core/operators/with-buffered-from.mjs';
29
29
  export { withCurrentValueFrom, withLatestFrom } from './core/operators/with-current-value-from.mjs';
30
30
  export { withInitialValue } from './core/operators/with-initial-value.mjs';
31
+ export { attachIndex, withIndex } from './core/predefined/operators/attach-index.mjs';
32
+ export { mapOptional } from './core/predefined/operators/map-optional.mjs';
33
+ export { mapResultErr } from './core/predefined/operators/map-result-err.mjs';
34
+ export { mapResultOk } from './core/predefined/operators/map-result-ok.mjs';
35
+ export { mapTo } from './core/predefined/operators/map-to.mjs';
36
+ export { getKey, pluck } from './core/predefined/operators/pluck.mjs';
37
+ export { skip } from './core/predefined/operators/skip.mjs';
38
+ export { take } from './core/predefined/operators/take.mjs';
39
+ export { unwrapOptional } from './core/predefined/operators/unwrap-optional.mjs';
40
+ export { unwrapResultErr } from './core/predefined/operators/unwrap-result-err.mjs';
41
+ export { unwrapResultOk } from './core/predefined/operators/unwrap-result-ok.mjs';
31
42
  import 'ts-data-forge';
32
43
  export { isChildObservable, isManagerObservable, isRootObservable } from './core/types/observable.mjs';
33
- export { issueObservableId, issueSubscriberId, issueUpdaterSymbol } from './core/utils/id-maker.mjs';
34
- export { maxDepth } from './core/utils/max-depth.mjs';
35
- export { toSubscriber } from './core/utils/observable-utils.mjs';
36
- export { binarySearch, halfInt } from './core/utils/utils.mjs';
44
+ export { collectToArray } from './utils/collect-to-array.mjs';
45
+ export { createBooleanState } from './utils/create-boolean-state.mjs';
37
46
  export { createEventEmitter, createValueEmitter } from './utils/create-event-emitter.mjs';
38
47
  export { createReducer } from './utils/create-reducer.mjs';
39
- export { createBooleanState, createState } from './utils/create-state.mjs';
48
+ export { createState } from './utils/create-state.mjs';
40
49
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,3 @@
1
+ import { type Observable } from '../core/index.mjs';
2
+ export declare const collectToArray: <A>(observable: Observable<A>) => Promise<readonly A[]>;
3
+ //# sourceMappingURL=collect-to-array.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collect-to-array.d.mts","sourceRoot":"","sources":["../../src/utils/collect-to-array.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,eAAO,MAAM,cAAc,GAAI,CAAC,EAC9B,YAAY,UAAU,CAAC,CAAC,CAAC,KACxB,OAAO,CAAC,SAAS,CAAC,EAAE,CAYnB,CAAC"}
@@ -0,0 +1,11 @@
1
+ const collectToArray = (observable) => new Promise((resolve) => {
2
+ const mut_buffer = [];
3
+ observable.subscribe((value) => {
4
+ mut_buffer.push(value);
5
+ }, () => {
6
+ resolve(mut_buffer);
7
+ });
8
+ });
9
+
10
+ export { collectToArray };
11
+ //# sourceMappingURL=collect-to-array.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collect-to-array.mjs","sources":["../../src/utils/collect-to-array.mts"],"sourcesContent":[null],"names":[],"mappings":"AAEO,MAAM,cAAc,GAAG,CAC5B,UAAyB,KAEzB,IAAI,OAAO,CAAe,CAAC,OAAO,KAAI;IACpC,MAAM,UAAU,GAAQ,EAAE;AAE1B,IAAA,UAAU,CAAC,SAAS,CAClB,CAAC,KAAK,KAAI;AACR,QAAA,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;IACxB,CAAC,EACD,MAAK;QACH,OAAO,CAAC,UAAU,CAAC;AACrB,IAAA,CAAC,CACF;AACH,CAAC;;;;"}
@@ -0,0 +1,40 @@
1
+ import { type InitializedObservable } from '../core/index.mjs';
2
+ /**
3
+ * Creates a reactive boolean state with convenient methods for boolean operations.
4
+ * Extends `createState` with boolean-specific helpers like `toggle`, `setTrue`, and `setFalse`.
5
+ *
6
+ * @param initialState - The initial boolean value
7
+ * @returns A 2-element tuple: `[state, { setTrue, setFalse, toggle, setState, updateState, resetState, getSnapshot, initialState }]`
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import type * as React from 'react';
12
+ * import { createBooleanState } from 'synstate';
13
+ * import { useObservableValue } from 'synstate-react-hooks';
14
+ *
15
+ * // Menu drawer open/close state.
16
+ * // setTrue and setFalse can be passed directly as callbacks
17
+ * // — no need to create wrapper functions like `() => setState(true)`.
18
+ * const [menuOpen$, { setTrue: openMenu, setFalse: closeMenu }] =
19
+ * createBooleanState(false);
20
+ *
21
+ * const SampleComponent = (): React.JSX.Element => (
22
+ * <MenuDrawer
23
+ * open={useObservableValue(menuOpen$)}
24
+ * onClose={closeMenu}
25
+ * onOpen={openMenu}
26
+ * />
27
+ * );
28
+ * ```
29
+ */
30
+ export declare const createBooleanState: (initialState: boolean) => readonly [state: InitializedObservable<boolean>, Readonly<{
31
+ setTrue: () => void;
32
+ setFalse: () => void;
33
+ setState: (next: boolean) => boolean;
34
+ toggle: () => boolean;
35
+ updateState: (updateFn: (prev: boolean) => boolean) => boolean;
36
+ resetState: () => boolean;
37
+ getSnapshot: () => boolean;
38
+ initialState: boolean;
39
+ }>];
40
+ //# sourceMappingURL=create-boolean-state.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-boolean-state.d.mts","sourceRoot":"","sources":["../../src/utils/create-boolean-state.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAG/D;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,eAAO,MAAM,kBAAkB,GAC7B,cAAc,OAAO,KACpB,SAAS,CACV,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,EACrC,QAAQ,CAAC;IACP,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;IACrC,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,KAAK,OAAO,CAAC;IAC/D,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC,CAsBH,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { createState } from './create-state.mjs';
2
+
3
+ /**
4
+ * Creates a reactive boolean state with convenient methods for boolean operations.
5
+ * Extends `createState` with boolean-specific helpers like `toggle`, `setTrue`, and `setFalse`.
6
+ *
7
+ * @param initialState - The initial boolean value
8
+ * @returns A 2-element tuple: `[state, { setTrue, setFalse, toggle, setState, updateState, resetState, getSnapshot, initialState }]`
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * import type * as React from 'react';
13
+ * import { createBooleanState } from 'synstate';
14
+ * import { useObservableValue } from 'synstate-react-hooks';
15
+ *
16
+ * // Menu drawer open/close state.
17
+ * // setTrue and setFalse can be passed directly as callbacks
18
+ * // — no need to create wrapper functions like `() => setState(true)`.
19
+ * const [menuOpen$, { setTrue: openMenu, setFalse: closeMenu }] =
20
+ * createBooleanState(false);
21
+ *
22
+ * const SampleComponent = (): React.JSX.Element => (
23
+ * <MenuDrawer
24
+ * open={useObservableValue(menuOpen$)}
25
+ * onClose={closeMenu}
26
+ * onOpen={openMenu}
27
+ * />
28
+ * );
29
+ * ```
30
+ */
31
+ const createBooleanState = (initialState) => {
32
+ const [state, setState, { updateState, resetState, getSnapshot }] = createState(initialState);
33
+ return [
34
+ state,
35
+ {
36
+ setTrue: () => {
37
+ setState(true);
38
+ },
39
+ setFalse: () => {
40
+ setState(false);
41
+ },
42
+ toggle: () => updateState((s) => !s),
43
+ setState,
44
+ updateState,
45
+ resetState,
46
+ getSnapshot,
47
+ initialState,
48
+ },
49
+ ];
50
+ };
51
+
52
+ export { createBooleanState };
53
+ //# sourceMappingURL=create-boolean-state.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-boolean-state.mjs","sources":["../../src/utils/create-boolean-state.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AAEI,MAAM,kBAAkB,GAAG,CAChC,YAAqB,KAanB;AACF,IAAA,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,GAC/D,WAAW,CAAC,YAAY,CAAC;IAE3B,OAAO;QACL,KAAK;AACL,QAAA;YACE,OAAO,EAAE,MAAK;gBACZ,QAAQ,CAAC,IAAI,CAAC;YAChB,CAAC;YACD,QAAQ,EAAE,MAAK;gBACb,QAAQ,CAAC,KAAK,CAAC;YACjB,CAAC;AACD,YAAA,MAAM,EAAE,MAAM,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACpC,QAAQ;YACR,WAAW;YACX,UAAU;YACV,WAAW;YACX,YAAY;AACb,SAAA;KACO;AACZ;;;;"}
@@ -38,19 +38,19 @@ export declare const createEventEmitter: () => readonly [Observable<void>, () =>
38
38
  * ```ts
39
39
  * const [message$, emitMessage] = createValueEmitter<string>();
40
40
  *
41
- * const mut_history: string[] = [];
41
+ * const messageHistory: string[] = [];
42
42
  *
43
43
  * message$.subscribe((msg) => {
44
- * mut_history.push(msg);
44
+ * messageHistory.push(msg);
45
45
  * });
46
46
  *
47
47
  * emitMessage('Hello'); // logs: Hello
48
48
  *
49
- * assert.deepStrictEqual(mut_history, ['Hello']);
49
+ * assert.deepStrictEqual(messageHistory, ['Hello']);
50
50
  *
51
51
  * emitMessage('World');
52
52
  *
53
- * assert.deepStrictEqual(mut_history, ['Hello', 'World']);
53
+ * assert.deepStrictEqual(messageHistory, ['Hello', 'World']);
54
54
  * ```
55
55
  */
56
56
  export declare const createValueEmitter: <A>() => readonly [Observable<A>, (value: A) => void];
@@ -48,19 +48,19 @@ const createEventEmitter = () => {
48
48
  * ```ts
49
49
  * const [message$, emitMessage] = createValueEmitter<string>();
50
50
  *
51
- * const mut_history: string[] = [];
51
+ * const messageHistory: string[] = [];
52
52
  *
53
53
  * message$.subscribe((msg) => {
54
- * mut_history.push(msg);
54
+ * messageHistory.push(msg);
55
55
  * });
56
56
  *
57
57
  * emitMessage('Hello'); // logs: Hello
58
58
  *
59
- * assert.deepStrictEqual(mut_history, ['Hello']);
59
+ * assert.deepStrictEqual(messageHistory, ['Hello']);
60
60
  *
61
61
  * emitMessage('World');
62
62
  *
63
- * assert.deepStrictEqual(mut_history, ['Hello', 'World']);
63
+ * assert.deepStrictEqual(messageHistory, ['Hello', 'World']);
64
64
  * ```
65
65
  */
66
66
  const createValueEmitter = () => {
@@ -7,7 +7,7 @@ import { type InitializedObservable } from '../core/index.mjs';
7
7
  * @template A - The type of actions
8
8
  * @param reducer - A pure function that takes current state and action, returns new state
9
9
  * @param initialState - The initial value of the state
10
- * @returns An object containing the state observable, dispatch function, and snapshot getter
10
+ * @returns A 3-element tuple: `[state, dispatch, { getSnapshot, initialState }]`
11
11
  *
12
12
  * @example
13
13
  * ```ts
@@ -23,24 +23,27 @@ import { type InitializedObservable } from '../core/index.mjs';
23
23
  * 0,
24
24
  * );
25
25
  *
26
- * const mut_history: number[] = [];
26
+ * const stateHistory: number[] = [];
27
27
  *
28
28
  * state.subscribe((value: number) => {
29
- * mut_history.push(value);
29
+ * stateHistory.push(value);
30
30
  * });
31
31
  *
32
- * assert.deepStrictEqual(mut_history, [0]);
32
+ * assert.deepStrictEqual(stateHistory, [0]);
33
33
  *
34
34
  * dispatch({ type: 'increment' }); // logs: 1
35
35
  *
36
- * assert.deepStrictEqual(mut_history, [0, 1]);
36
+ * assert.deepStrictEqual(stateHistory, [0, 1]);
37
37
  *
38
38
  * dispatch({ type: 'increment' });
39
39
  *
40
40
  * dispatch({ type: 'decrement' });
41
41
  *
42
- * assert.deepStrictEqual(mut_history, [0, 1, 2, 1]);
42
+ * assert.deepStrictEqual(stateHistory, [0, 1, 2, 1]);
43
43
  * ```
44
44
  */
45
- export declare const createReducer: <S, A>(reducer: Reducer<S, A>, initialState: S) => readonly [state: InitializedObservable<S>, dispatch: (action: A) => S, getSnapshot: () => S];
45
+ export declare const createReducer: <S, A>(reducer: Reducer<S, A>, initialState: S) => readonly [state: InitializedObservable<S>, dispatch: (action: A) => S, Readonly<{
46
+ getSnapshot: () => S;
47
+ initialState: S;
48
+ }>];
46
49
  //# sourceMappingURL=create-reducer.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-reducer.d.mts","sourceRoot":"","sources":["../../src/utils/create-reducer.mts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,CAAC,EAChC,SAAS,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,cAAc,CAAC,KACd,SAAS,CACV,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAC/B,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAC1B,WAAW,EAAE,MAAM,CAAC,CAerB,CAAC"}
1
+ {"version":3,"file":"create-reducer.d.mts","sourceRoot":"","sources":["../../src/utils/create-reducer.mts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,CAAC,EAChC,SAAS,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,cAAc,CAAC,KACd,SAAS,CACV,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAC/B,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAC1B,QAAQ,CAAC;IACP,WAAW,EAAE,MAAM,CAAC,CAAC;IACrB,YAAY,EAAE,CAAC,CAAC;CACjB,CAAC,CAeH,CAAC"}
@@ -11,7 +11,7 @@ import { source } from '../core/create/source.mjs';
11
11
  * @template A - The type of actions
12
12
  * @param reducer - A pure function that takes current state and action, returns new state
13
13
  * @param initialState - The initial value of the state
14
- * @returns An object containing the state observable, dispatch function, and snapshot getter
14
+ * @returns A 3-element tuple: `[state, dispatch, { getSnapshot, initialState }]`
15
15
  *
16
16
  * @example
17
17
  * ```ts
@@ -27,23 +27,23 @@ import { source } from '../core/create/source.mjs';
27
27
  * 0,
28
28
  * );
29
29
  *
30
- * const mut_history: number[] = [];
30
+ * const stateHistory: number[] = [];
31
31
  *
32
32
  * state.subscribe((value: number) => {
33
- * mut_history.push(value);
33
+ * stateHistory.push(value);
34
34
  * });
35
35
  *
36
- * assert.deepStrictEqual(mut_history, [0]);
36
+ * assert.deepStrictEqual(stateHistory, [0]);
37
37
  *
38
38
  * dispatch({ type: 'increment' }); // logs: 1
39
39
  *
40
- * assert.deepStrictEqual(mut_history, [0, 1]);
40
+ * assert.deepStrictEqual(stateHistory, [0, 1]);
41
41
  *
42
42
  * dispatch({ type: 'increment' });
43
43
  *
44
44
  * dispatch({ type: 'decrement' });
45
45
  *
46
- * assert.deepStrictEqual(mut_history, [0, 1, 2, 1]);
46
+ * assert.deepStrictEqual(stateHistory, [0, 1, 2, 1]);
47
47
  * ```
48
48
  */
49
49
  const createReducer = (reducer, initialState) => {
@@ -54,7 +54,7 @@ const createReducer = (reducer, initialState) => {
54
54
  return nextState;
55
55
  };
56
56
  const getSnapshot = () => state.getSnapshot().value;
57
- return [state, dispatch, getSnapshot];
57
+ return [state, dispatch, { getSnapshot, initialState }];
58
58
  };
59
59
 
60
60
  export { createReducer };
@@ -1 +1 @@
1
- {"version":3,"file":"create-reducer.mjs","sources":["../../src/utils/create-reducer.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CG;MACU,aAAa,GAAG,CAC3B,OAAsB,EACtB,YAAe,KAKb;AACF,IAAA,MAAM,KAAK,GAAG,MAAM,CAAI,YAAY,CAAC;AAErC,IAAA,MAAM,QAAQ,GAAG,CAAC,MAAS,KAAO;AAChC,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;AAE5D,QAAA,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;AAErB,QAAA,OAAO,SAAS;AAClB,IAAA,CAAC;IAED,MAAM,WAAW,GAAG,MAAS,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK;AAEtD,IAAA,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAU;AAChD;;;;"}
1
+ {"version":3,"file":"create-reducer.mjs","sources":["../../src/utils/create-reducer.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CG;MACU,aAAa,GAAG,CAC3B,OAAsB,EACtB,YAAe,KAQb;AACF,IAAA,MAAM,KAAK,GAAG,MAAM,CAAI,YAAY,CAAC;AAErC,IAAA,MAAM,QAAQ,GAAG,CAAC,MAAS,KAAO;AAChC,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;AAE5D,QAAA,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;AAErB,QAAA,OAAO,SAAS;AAClB,IAAA,CAAC;IAED,MAAM,WAAW,GAAG,MAAS,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK;IAEtD,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,CAAU;AAClE;;;;"}
@@ -5,77 +5,37 @@ import { type InitializedObservable } from '../core/index.mjs';
5
5
  *
6
6
  * @template S - The type of the state
7
7
  * @param initialState - The initial value of the state
8
- * @returns An object containing the state observable and methods to manipulate it
8
+ * @returns A 3-element tuple: `[state, setState, { updateState, resetState, getSnapshot, initialState }]`
9
9
  *
10
10
  * @example
11
11
  * ```ts
12
12
  * const [state, setState, { updateState, resetState }] = createState(0);
13
13
  *
14
- * const mut_history: number[] = [];
14
+ * const stateHistory: number[] = [];
15
15
  *
16
16
  * state.subscribe((value: number) => {
17
- * mut_history.push(value);
17
+ * stateHistory.push(value);
18
18
  * });
19
19
  *
20
- * assert.deepStrictEqual(mut_history, [0]);
20
+ * assert.deepStrictEqual(stateHistory, [0]);
21
21
  *
22
22
  * setState(10); // logs: 10
23
23
  *
24
- * assert.deepStrictEqual(mut_history, [0, 10]);
24
+ * assert.deepStrictEqual(stateHistory, [0, 10]);
25
25
  *
26
26
  * updateState((prev: number) => prev + 1); // logs: 11
27
27
  *
28
- * assert.deepStrictEqual(mut_history, [0, 10, 11]);
28
+ * assert.deepStrictEqual(stateHistory, [0, 10, 11]);
29
29
  *
30
30
  * resetState(); // logs: 0
31
31
  *
32
- * assert.deepStrictEqual(mut_history, [0, 10, 11, 0]);
32
+ * assert.deepStrictEqual(stateHistory, [0, 10, 11, 0]);
33
33
  * ```
34
34
  */
35
35
  export declare const createState: <S>(initialState: S) => readonly [state: InitializedObservable<S>, setState: (v: S) => S, Readonly<{
36
36
  updateState: (updateFn: (prev: S) => S) => S;
37
37
  resetState: () => S;
38
38
  getSnapshot: () => S;
39
- }>];
40
- /**
41
- * Creates a reactive boolean state with convenient methods for boolean operations.
42
- * Extends `createState` with boolean-specific helpers like `toggle`, `setTrue`, and `setFalse`.
43
- *
44
- * @param initialState - The initial boolean value
45
- * @returns An object with the state observable and boolean-specific methods
46
- *
47
- * @example
48
- * ```ts
49
- * const [state, { setTrue, toggle }] = createBooleanState(false);
50
- *
51
- * const mut_history: boolean[] = [];
52
- *
53
- * state.subscribe((value: boolean) => {
54
- * mut_history.push(value);
55
- * });
56
- *
57
- * assert.deepStrictEqual(mut_history, [false]);
58
- *
59
- * setTrue(); // logs: true
60
- *
61
- * assert.deepStrictEqual(mut_history, [false, true]);
62
- *
63
- * toggle(); // logs: false
64
- *
65
- * assert.deepStrictEqual(mut_history, [false, true, false]);
66
- *
67
- * toggle(); // logs: true
68
- *
69
- * assert.deepStrictEqual(mut_history, [false, true, false, true]);
70
- * ```
71
- */
72
- export declare const createBooleanState: (initialState: boolean) => readonly [state: InitializedObservable<boolean>, Readonly<{
73
- setTrue: () => void;
74
- setFalse: () => void;
75
- setState: (next: boolean) => boolean;
76
- toggle: () => boolean;
77
- updateState: (updateFn: (prev: boolean) => boolean) => boolean;
78
- resetState: () => boolean;
79
- getSnapshot: () => boolean;
39
+ initialState: S;
80
40
  }>];
81
41
  //# sourceMappingURL=create-state.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-state.d.mts","sourceRoot":"","sources":["../../src/utils/create-state.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAwB/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,EAC3B,cAAc,CAAC,KACd,SAAS,CACV,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAC/B,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACrB,QAAQ,CAAC;IACP,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,CAAC;CACtB,CAAC,CAwBH,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,kBAAkB,GAC7B,cAAc,OAAO,KACpB,SAAS,CACV,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,EACrC,QAAQ,CAAC;IACP,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;IACrC,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,KAAK,OAAO,CAAC;IAC/D,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,OAAO,CAAC;CAC5B,CAAC,CAqBH,CAAC"}
1
+ {"version":3,"file":"create-state.d.mts","sourceRoot":"","sources":["../../src/utils/create-state.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAwB/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,EAC3B,cAAc,CAAC,KACd,SAAS,CACV,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAC/B,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACrB,QAAQ,CAAC;IACP,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,CAAC;IACrB,YAAY,EAAE,CAAC,CAAC;CACjB,CAAC,CAyBH,CAAC"}