synstate 0.1.2 → 1.0.1

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 (323) hide show
  1. package/README.md +200 -147
  2. package/assets/old/synstate-icon-square.png +0 -0
  3. package/assets/synstate-logo.png +0 -0
  4. package/dist/core/class/child-observable-class.d.mts +2 -0
  5. package/dist/core/class/child-observable-class.d.mts.map +1 -1
  6. package/dist/core/class/child-observable-class.mjs +44 -13
  7. package/dist/core/class/child-observable-class.mjs.map +1 -1
  8. package/dist/core/class/observable-base-class.d.mts +4 -4
  9. package/dist/core/class/observable-base-class.d.mts.map +1 -1
  10. package/dist/core/class/observable-base-class.mjs +8 -8
  11. package/dist/core/class/observable-base-class.mjs.map +1 -1
  12. package/dist/core/class/root-observable-class.d.mts +3 -1
  13. package/dist/core/class/root-observable-class.d.mts.map +1 -1
  14. package/dist/core/class/root-observable-class.mjs +9 -9
  15. package/dist/core/class/root-observable-class.mjs.map +1 -1
  16. package/dist/core/combine/combine.d.mts +7 -6
  17. package/dist/core/combine/combine.d.mts.map +1 -1
  18. package/dist/core/combine/combine.mjs +11 -12
  19. package/dist/core/combine/combine.mjs.map +1 -1
  20. package/dist/core/combine/merge.d.mts +7 -6
  21. package/dist/core/combine/merge.d.mts.map +1 -1
  22. package/dist/core/combine/merge.mjs +9 -9
  23. package/dist/core/combine/merge.mjs.map +1 -1
  24. package/dist/core/combine/zip.d.mts +21 -19
  25. package/dist/core/combine/zip.d.mts.map +1 -1
  26. package/dist/core/combine/zip.mjs +22 -21
  27. package/dist/core/combine/zip.mjs.map +1 -1
  28. package/dist/core/create/{interval.d.mts → counter.d.mts} +14 -12
  29. package/dist/core/create/counter.d.mts.map +1 -0
  30. package/dist/core/create/{interval.mjs → counter.mjs} +21 -23
  31. package/dist/core/create/counter.mjs.map +1 -0
  32. package/dist/core/create/from-abortable-promise.d.mts +29 -0
  33. package/dist/core/create/from-abortable-promise.d.mts.map +1 -0
  34. package/dist/core/create/from-abortable-promise.mjs +70 -0
  35. package/dist/core/create/from-abortable-promise.mjs.map +1 -0
  36. package/dist/core/create/from-promise.d.mts +9 -6
  37. package/dist/core/create/from-promise.d.mts.map +1 -1
  38. package/dist/core/create/from-promise.mjs +8 -5
  39. package/dist/core/create/from-promise.mjs.map +1 -1
  40. package/dist/core/create/from-subscribable.d.mts +4 -4
  41. package/dist/core/create/from-subscribable.mjs +4 -4
  42. package/dist/core/create/index.d.mts +3 -3
  43. package/dist/core/create/index.d.mts.map +1 -1
  44. package/dist/core/create/index.mjs +4 -4
  45. package/dist/core/create/just.d.mts +32 -0
  46. package/dist/core/create/just.d.mts.map +1 -0
  47. package/dist/core/create/just.mjs +44 -0
  48. package/dist/core/create/just.mjs.map +1 -0
  49. package/dist/core/create/source.d.mts +7 -12
  50. package/dist/core/create/source.d.mts.map +1 -1
  51. package/dist/core/create/source.mjs +1 -6
  52. package/dist/core/create/source.mjs.map +1 -1
  53. package/dist/core/create/timer.d.mts +6 -4
  54. package/dist/core/create/timer.d.mts.map +1 -1
  55. package/dist/core/create/timer.mjs +6 -7
  56. package/dist/core/create/timer.mjs.map +1 -1
  57. package/dist/core/index.d.mts +0 -1
  58. package/dist/core/index.d.mts.map +1 -1
  59. package/dist/core/index.mjs +8 -13
  60. package/dist/core/index.mjs.map +1 -1
  61. package/dist/core/operators/audit.d.mts +97 -0
  62. package/dist/core/operators/audit.d.mts.map +1 -0
  63. package/dist/core/operators/audit.mjs +144 -0
  64. package/dist/core/operators/audit.mjs.map +1 -0
  65. package/dist/core/operators/debounce.d.mts +88 -0
  66. package/dist/core/operators/debounce.d.mts.map +1 -0
  67. package/dist/core/operators/debounce.mjs +130 -0
  68. package/dist/core/operators/debounce.mjs.map +1 -0
  69. package/dist/core/operators/filter.d.mts +6 -5
  70. package/dist/core/operators/filter.d.mts.map +1 -1
  71. package/dist/core/operators/filter.mjs +3 -3
  72. package/dist/core/operators/filter.mjs.map +1 -1
  73. package/dist/core/operators/index.d.mts +4 -4
  74. package/dist/core/operators/index.d.mts.map +1 -1
  75. package/dist/core/operators/index.mjs +4 -4
  76. package/dist/core/operators/{map-with-index.d.mts → map.d.mts} +12 -11
  77. package/dist/core/operators/map.d.mts.map +1 -0
  78. package/dist/core/operators/{map-with-index.mjs → map.mjs} +17 -17
  79. package/dist/core/operators/map.mjs.map +1 -0
  80. package/dist/core/operators/merge-map.d.mts +56 -29
  81. package/dist/core/operators/merge-map.d.mts.map +1 -1
  82. package/dist/core/operators/merge-map.mjs +58 -31
  83. package/dist/core/operators/merge-map.mjs.map +1 -1
  84. package/dist/core/operators/pairwise.d.mts +6 -6
  85. package/dist/core/operators/pairwise.mjs +9 -9
  86. package/dist/core/operators/pairwise.mjs.map +1 -1
  87. package/dist/core/operators/scan.d.mts +6 -6
  88. package/dist/core/operators/scan.mjs +9 -9
  89. package/dist/core/operators/scan.mjs.map +1 -1
  90. package/dist/core/operators/skip-if-no-change.d.mts +20 -8
  91. package/dist/core/operators/skip-if-no-change.d.mts.map +1 -1
  92. package/dist/core/operators/skip-if-no-change.mjs +23 -11
  93. package/dist/core/operators/skip-if-no-change.mjs.map +1 -1
  94. package/dist/core/operators/skip-until.d.mts +5 -5
  95. package/dist/core/operators/skip-until.mjs +8 -8
  96. package/dist/core/operators/skip-until.mjs.map +1 -1
  97. package/dist/core/operators/skip-while.d.mts +19 -8
  98. package/dist/core/operators/skip-while.d.mts.map +1 -1
  99. package/dist/core/operators/skip-while.mjs +26 -11
  100. package/dist/core/operators/skip-while.mjs.map +1 -1
  101. package/dist/core/operators/switch-map.d.mts +57 -26
  102. package/dist/core/operators/switch-map.d.mts.map +1 -1
  103. package/dist/core/operators/switch-map.mjs +59 -28
  104. package/dist/core/operators/switch-map.mjs.map +1 -1
  105. package/dist/core/operators/take-until.d.mts +5 -5
  106. package/dist/core/operators/take-until.mjs +8 -8
  107. package/dist/core/operators/take-until.mjs.map +1 -1
  108. package/dist/core/operators/take-while.d.mts +16 -7
  109. package/dist/core/operators/take-while.d.mts.map +1 -1
  110. package/dist/core/operators/take-while.mjs +18 -10
  111. package/dist/core/operators/take-while.mjs.map +1 -1
  112. package/dist/core/operators/throttle.d.mts +81 -0
  113. package/dist/core/operators/throttle.d.mts.map +1 -0
  114. package/dist/core/operators/throttle.mjs +126 -0
  115. package/dist/core/operators/throttle.mjs.map +1 -0
  116. package/dist/core/operators/with-buffered-from.d.mts +9 -9
  117. package/dist/core/operators/with-buffered-from.mjs +12 -12
  118. package/dist/core/operators/with-buffered-from.mjs.map +1 -1
  119. package/dist/core/operators/with-current-value-from.d.mts +10 -9
  120. package/dist/core/operators/with-current-value-from.d.mts.map +1 -1
  121. package/dist/core/operators/with-current-value-from.mjs +13 -12
  122. package/dist/core/operators/with-current-value-from.mjs.map +1 -1
  123. package/dist/core/operators/with-initial-value.d.mts +5 -5
  124. package/dist/core/operators/with-initial-value.mjs +8 -8
  125. package/dist/core/operators/with-initial-value.mjs.map +1 -1
  126. package/dist/core/predefined/index.mjs +0 -1
  127. package/dist/core/predefined/index.mjs.map +1 -1
  128. package/dist/core/predefined/operators/attach-index.d.mts +50 -0
  129. package/dist/core/predefined/operators/attach-index.d.mts.map +1 -1
  130. package/dist/core/predefined/operators/attach-index.mjs +51 -2
  131. package/dist/core/predefined/operators/attach-index.mjs.map +1 -1
  132. package/dist/core/predefined/operators/index.d.mts +0 -1
  133. package/dist/core/predefined/operators/index.d.mts.map +1 -1
  134. package/dist/core/predefined/operators/index.mjs +0 -1
  135. package/dist/core/predefined/operators/index.mjs.map +1 -1
  136. package/dist/core/predefined/operators/map-optional.d.mts +48 -1
  137. package/dist/core/predefined/operators/map-optional.d.mts.map +1 -1
  138. package/dist/core/predefined/operators/map-optional.mjs +49 -1
  139. package/dist/core/predefined/operators/map-optional.mjs.map +1 -1
  140. package/dist/core/predefined/operators/map-result-err.d.mts +48 -1
  141. package/dist/core/predefined/operators/map-result-err.d.mts.map +1 -1
  142. package/dist/core/predefined/operators/map-result-err.mjs +49 -1
  143. package/dist/core/predefined/operators/map-result-err.mjs.map +1 -1
  144. package/dist/core/predefined/operators/map-result-ok.d.mts +48 -1
  145. package/dist/core/predefined/operators/map-result-ok.d.mts.map +1 -1
  146. package/dist/core/predefined/operators/map-result-ok.mjs +49 -1
  147. package/dist/core/predefined/operators/map-result-ok.mjs.map +1 -1
  148. package/dist/core/predefined/operators/map-to.d.mts +40 -0
  149. package/dist/core/predefined/operators/map-to.d.mts.map +1 -1
  150. package/dist/core/predefined/operators/map-to.mjs +43 -1
  151. package/dist/core/predefined/operators/map-to.mjs.map +1 -1
  152. package/dist/core/predefined/operators/pluck.d.mts +39 -0
  153. package/dist/core/predefined/operators/pluck.d.mts.map +1 -1
  154. package/dist/core/predefined/operators/pluck.mjs +42 -1
  155. package/dist/core/predefined/operators/pluck.mjs.map +1 -1
  156. package/dist/core/predefined/operators/skip.d.mts +48 -0
  157. package/dist/core/predefined/operators/skip.d.mts.map +1 -1
  158. package/dist/core/predefined/operators/skip.mjs +47 -0
  159. package/dist/core/predefined/operators/skip.mjs.map +1 -1
  160. package/dist/core/predefined/operators/take.d.mts +42 -0
  161. package/dist/core/predefined/operators/take.d.mts.map +1 -1
  162. package/dist/core/predefined/operators/take.mjs +41 -0
  163. package/dist/core/predefined/operators/take.mjs.map +1 -1
  164. package/dist/core/predefined/operators/unwrap-optional.d.mts +41 -1
  165. package/dist/core/predefined/operators/unwrap-optional.d.mts.map +1 -1
  166. package/dist/core/predefined/operators/unwrap-optional.mjs +42 -1
  167. package/dist/core/predefined/operators/unwrap-optional.mjs.map +1 -1
  168. package/dist/core/predefined/operators/unwrap-result-err.d.mts +41 -1
  169. package/dist/core/predefined/operators/unwrap-result-err.d.mts.map +1 -1
  170. package/dist/core/predefined/operators/unwrap-result-err.mjs +42 -1
  171. package/dist/core/predefined/operators/unwrap-result-err.mjs.map +1 -1
  172. package/dist/core/predefined/operators/unwrap-result-ok.d.mts +41 -1
  173. package/dist/core/predefined/operators/unwrap-result-ok.d.mts.map +1 -1
  174. package/dist/core/predefined/operators/unwrap-result-ok.mjs +42 -1
  175. package/dist/core/predefined/operators/unwrap-result-ok.mjs.map +1 -1
  176. package/dist/core/types/id.d.mts +2 -1
  177. package/dist/core/types/id.d.mts.map +1 -1
  178. package/dist/core/types/index.d.mts +1 -0
  179. package/dist/core/types/index.d.mts.map +1 -1
  180. package/dist/core/types/observable-family.d.mts +10 -14
  181. package/dist/core/types/observable-family.d.mts.map +1 -1
  182. package/dist/core/types/observable-kind.d.mts +1 -0
  183. package/dist/core/types/observable-kind.d.mts.map +1 -1
  184. package/dist/core/types/observable.d.mts +5 -3
  185. package/dist/core/types/observable.d.mts.map +1 -1
  186. package/dist/core/types/observable.mjs.map +1 -1
  187. package/dist/core/types/timer.d.mts +2 -0
  188. package/dist/core/types/timer.d.mts.map +1 -0
  189. package/dist/core/types/timer.mjs +2 -0
  190. package/dist/core/types/timer.mjs.map +1 -0
  191. package/dist/core/utils/id-maker.d.mts +2 -2
  192. package/dist/core/utils/id-maker.d.mts.map +1 -1
  193. package/dist/core/utils/id-maker.mjs +3 -3
  194. package/dist/core/utils/id-maker.mjs.map +1 -1
  195. package/dist/core/utils/index.mjs +1 -1
  196. package/dist/core/utils/utils.d.mts +2 -0
  197. package/dist/core/utils/utils.d.mts.map +1 -1
  198. package/dist/core/utils/utils.mjs.map +1 -1
  199. package/dist/entry-point.mjs +11 -14
  200. package/dist/entry-point.mjs.map +1 -1
  201. package/dist/index.mjs +11 -14
  202. package/dist/index.mjs.map +1 -1
  203. package/dist/types.d.mts +1 -2
  204. package/dist/utils/collect-to-array.d.mts +3 -0
  205. package/dist/utils/collect-to-array.d.mts.map +1 -0
  206. package/dist/utils/collect-to-array.mjs +11 -0
  207. package/dist/utils/collect-to-array.mjs.map +1 -0
  208. package/dist/utils/create-boolean-state.d.mts +40 -0
  209. package/dist/utils/create-boolean-state.d.mts.map +1 -0
  210. package/dist/utils/create-boolean-state.mjs +53 -0
  211. package/dist/utils/create-boolean-state.mjs.map +1 -0
  212. package/dist/utils/create-event-emitter.d.mts +4 -4
  213. package/dist/utils/create-event-emitter.mjs +4 -4
  214. package/dist/utils/create-reducer.d.mts +11 -7
  215. package/dist/utils/create-reducer.d.mts.map +1 -1
  216. package/dist/utils/create-reducer.mjs +7 -7
  217. package/dist/utils/create-reducer.mjs.map +1 -1
  218. package/dist/utils/create-state.d.mts +8 -48
  219. package/dist/utils/create-state.d.mts.map +1 -1
  220. package/dist/utils/create-state.mjs +10 -60
  221. package/dist/utils/create-state.mjs.map +1 -1
  222. package/dist/utils/index.d.mts +2 -0
  223. package/dist/utils/index.d.mts.map +1 -1
  224. package/dist/utils/index.mjs +3 -1
  225. package/dist/utils/index.mjs.map +1 -1
  226. package/package.json +21 -14
  227. package/src/core/class/child-observable-class.mts +68 -14
  228. package/src/core/class/circular-dependency-comparison.test.mts +142 -0
  229. package/src/core/class/circular-dependency.test.mts +251 -0
  230. package/src/core/class/observable-base-class.mts +10 -9
  231. package/src/core/class/root-observable-class.mts +15 -10
  232. package/src/core/combine/combine.mts +14 -13
  233. package/src/core/combine/merge.mts +14 -14
  234. package/src/core/combine/zip.mts +27 -25
  235. package/src/core/create/{interval.mts → counter.mts} +32 -30
  236. package/src/core/create/from-abortable-promise.mts +83 -0
  237. package/src/core/create/from-promise.mts +10 -7
  238. package/src/core/create/from-subscribable.mts +4 -4
  239. package/src/core/create/index.mts +3 -3
  240. package/src/core/create/just.mts +43 -0
  241. package/src/core/create/source.mts +10 -14
  242. package/src/core/create/timer.mts +12 -11
  243. package/src/core/index.mts +0 -1
  244. package/src/core/operators/audit.mts +172 -0
  245. package/src/core/operators/debounce.mts +154 -0
  246. package/src/core/operators/filter.mts +9 -9
  247. package/src/core/operators/index.mts +4 -4
  248. package/src/core/operators/{map-with-index.mts → map.mts} +20 -20
  249. package/src/core/operators/merge-map.mts +59 -32
  250. package/src/core/operators/pairwise.mts +10 -10
  251. package/src/core/operators/scan.mts +10 -10
  252. package/src/core/operators/skip-if-no-change.mts +24 -12
  253. package/src/core/operators/skip-until.mts +9 -9
  254. package/src/core/operators/skip-while.mts +29 -12
  255. package/src/core/operators/switch-map.mts +60 -29
  256. package/src/core/operators/take-until.mts +9 -9
  257. package/src/core/operators/take-while.mts +19 -11
  258. package/src/core/operators/{throttle-time.mts → throttle.mts} +58 -38
  259. package/src/core/operators/with-buffered-from.mts +13 -13
  260. package/src/core/operators/with-current-value-from.mts +14 -13
  261. package/src/core/operators/with-initial-value.mts +9 -9
  262. package/src/core/predefined/operators/attach-index.mts +52 -2
  263. package/src/core/predefined/operators/index.mts +0 -1
  264. package/src/core/predefined/operators/map-optional.mts +49 -2
  265. package/src/core/predefined/operators/map-result-err.mts +49 -2
  266. package/src/core/predefined/operators/map-result-ok.mts +49 -2
  267. package/src/core/predefined/operators/map-to.mts +41 -1
  268. package/src/core/predefined/operators/pluck.mts +40 -1
  269. package/src/core/predefined/operators/skip.mts +48 -0
  270. package/src/core/predefined/operators/take.mts +42 -0
  271. package/src/core/predefined/operators/unwrap-optional.mts +43 -2
  272. package/src/core/predefined/operators/unwrap-result-err.mts +43 -2
  273. package/src/core/predefined/operators/unwrap-result-ok.mts +43 -2
  274. package/src/core/types/id.mts +3 -1
  275. package/src/core/types/index.mts +1 -0
  276. package/src/core/types/observable-family.mts +13 -24
  277. package/src/core/types/observable-kind.mts +2 -0
  278. package/src/core/types/observable.mts +5 -4
  279. package/src/core/types/timer.mts +2 -0
  280. package/src/core/utils/id-maker.mts +4 -4
  281. package/src/core/utils/utils.mts +1 -0
  282. package/src/utils/collect-to-array.mts +17 -0
  283. package/src/utils/create-boolean-state.mts +68 -0
  284. package/src/utils/create-event-emitter.mts +4 -4
  285. package/src/utils/create-reducer.mts +12 -8
  286. package/src/utils/create-state.mts +10 -75
  287. package/src/utils/index.mts +2 -0
  288. package/dist/core/create/from-array.d.mts +0 -39
  289. package/dist/core/create/from-array.d.mts.map +0 -1
  290. package/dist/core/create/from-array.mjs +0 -65
  291. package/dist/core/create/from-array.mjs.map +0 -1
  292. package/dist/core/create/interval.d.mts.map +0 -1
  293. package/dist/core/create/interval.mjs.map +0 -1
  294. package/dist/core/create/of.d.mts +0 -39
  295. package/dist/core/create/of.d.mts.map +0 -1
  296. package/dist/core/create/of.mjs +0 -63
  297. package/dist/core/create/of.mjs.map +0 -1
  298. package/dist/core/operators/audit-time.d.mts +0 -62
  299. package/dist/core/operators/audit-time.d.mts.map +0 -1
  300. package/dist/core/operators/audit-time.mjs +0 -109
  301. package/dist/core/operators/audit-time.mjs.map +0 -1
  302. package/dist/core/operators/debounce-time.d.mts +0 -51
  303. package/dist/core/operators/debounce-time.d.mts.map +0 -1
  304. package/dist/core/operators/debounce-time.mjs +0 -93
  305. package/dist/core/operators/debounce-time.mjs.map +0 -1
  306. package/dist/core/operators/map-with-index.d.mts.map +0 -1
  307. package/dist/core/operators/map-with-index.mjs.map +0 -1
  308. package/dist/core/operators/throttle-time.d.mts +0 -62
  309. package/dist/core/operators/throttle-time.d.mts.map +0 -1
  310. package/dist/core/operators/throttle-time.mjs +0 -107
  311. package/dist/core/operators/throttle-time.mjs.map +0 -1
  312. package/dist/core/predefined/operators/map.d.mts +0 -3
  313. package/dist/core/predefined/operators/map.d.mts.map +0 -1
  314. package/dist/core/predefined/operators/map.mjs +0 -8
  315. package/dist/core/predefined/operators/map.mjs.map +0 -1
  316. package/dist/globals.d.mts +0 -4
  317. package/src/core/create/from-array.mts +0 -76
  318. package/src/core/create/of.mts +0 -73
  319. package/src/core/operators/audit-time.mts +0 -136
  320. package/src/core/operators/debounce-time.mts +0 -116
  321. package/src/core/predefined/operators/map.mts +0 -5
  322. package/src/globals.d.mts +0 -4
  323. /package/assets/{synstate-icon.png → old/synstate-icon.png} +0 -0
@@ -0,0 +1,68 @@
1
+ import { type InitializedObservable } from '../core/index.mjs';
2
+ import { createState } from './create-state.mjs';
3
+
4
+ /**
5
+ * Creates a reactive boolean state with convenient methods for boolean operations.
6
+ * Extends `createState` with boolean-specific helpers like `toggle`, `setTrue`, and `setFalse`.
7
+ *
8
+ * @param initialState - The initial boolean value
9
+ * @returns A 2-element tuple: `[state, { setTrue, setFalse, toggle, setState, updateState, resetState, getSnapshot, initialState }]`
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * import type * as React from 'react';
14
+ * import { createBooleanState } from 'synstate';
15
+ * import { useObservableValue } from 'synstate-react-hooks';
16
+ *
17
+ * // Menu drawer open/close state.
18
+ * // setTrue and setFalse can be passed directly as callbacks
19
+ * // — no need to create wrapper functions like `() => setState(true)`.
20
+ * const [menuOpen$, { setTrue: openMenu, setFalse: closeMenu }] =
21
+ * createBooleanState(false);
22
+ *
23
+ * const SampleComponent = (): React.JSX.Element => (
24
+ * <MenuDrawer
25
+ * open={useObservableValue(menuOpen$)}
26
+ * onClose={closeMenu}
27
+ * onOpen={openMenu}
28
+ * />
29
+ * );
30
+ * ```
31
+ */
32
+
33
+ export const createBooleanState = (
34
+ initialState: boolean,
35
+ ): readonly [
36
+ state: InitializedObservable<boolean>,
37
+ Readonly<{
38
+ setTrue: () => void;
39
+ setFalse: () => void;
40
+ setState: (next: boolean) => boolean;
41
+ toggle: () => boolean;
42
+ updateState: (updateFn: (prev: boolean) => boolean) => boolean;
43
+ resetState: () => boolean;
44
+ getSnapshot: () => boolean;
45
+ initialState: boolean;
46
+ }>,
47
+ ] => {
48
+ const [state, setState, { updateState, resetState, getSnapshot }] =
49
+ createState(initialState);
50
+
51
+ return [
52
+ state,
53
+ {
54
+ setTrue: () => {
55
+ setState(true);
56
+ },
57
+ setFalse: () => {
58
+ setState(false);
59
+ },
60
+ toggle: () => updateState((s) => !s),
61
+ setState,
62
+ updateState,
63
+ resetState,
64
+ getSnapshot,
65
+ initialState,
66
+ },
67
+ ] as const;
68
+ };
@@ -51,19 +51,19 @@ export const createEventEmitter = (): readonly [
51
51
  * ```ts
52
52
  * const [message$, emitMessage] = createValueEmitter<string>();
53
53
  *
54
- * const mut_history: string[] = [];
54
+ * const messageHistory: string[] = [];
55
55
  *
56
56
  * message$.subscribe((msg) => {
57
- * mut_history.push(msg);
57
+ * messageHistory.push(msg);
58
58
  * });
59
59
  *
60
60
  * emitMessage('Hello'); // logs: Hello
61
61
  *
62
- * assert.deepStrictEqual(mut_history, ['Hello']);
62
+ * assert.deepStrictEqual(messageHistory, ['Hello']);
63
63
  *
64
64
  * emitMessage('World');
65
65
  *
66
- * assert.deepStrictEqual(mut_history, ['Hello', 'World']);
66
+ * assert.deepStrictEqual(messageHistory, ['Hello', 'World']);
67
67
  * ```
68
68
  */
69
69
  export const createValueEmitter = <A,>(): readonly [
@@ -1,3 +1,4 @@
1
+ import { type Reducer } from 'ts-type-forge';
1
2
  import { source, type InitializedObservable } from '../core/index.mjs';
2
3
 
3
4
  /**
@@ -8,7 +9,7 @@ import { source, type InitializedObservable } from '../core/index.mjs';
8
9
  * @template A - The type of actions
9
10
  * @param reducer - A pure function that takes current state and action, returns new state
10
11
  * @param initialState - The initial value of the state
11
- * @returns An object containing the state observable, dispatch function, and snapshot getter
12
+ * @returns A 3-element tuple: `[state, dispatch, { getSnapshot, initialState }]`
12
13
  *
13
14
  * @example
14
15
  * ```ts
@@ -24,23 +25,23 @@ import { source, type InitializedObservable } from '../core/index.mjs';
24
25
  * 0,
25
26
  * );
26
27
  *
27
- * const mut_history: number[] = [];
28
+ * const stateHistory: number[] = [];
28
29
  *
29
30
  * state.subscribe((value: number) => {
30
- * mut_history.push(value);
31
+ * stateHistory.push(value);
31
32
  * });
32
33
  *
33
- * assert.deepStrictEqual(mut_history, [0]);
34
+ * assert.deepStrictEqual(stateHistory, [0]);
34
35
  *
35
36
  * dispatch({ type: 'increment' }); // logs: 1
36
37
  *
37
- * assert.deepStrictEqual(mut_history, [0, 1]);
38
+ * assert.deepStrictEqual(stateHistory, [0, 1]);
38
39
  *
39
40
  * dispatch({ type: 'increment' });
40
41
  *
41
42
  * dispatch({ type: 'decrement' });
42
43
  *
43
- * assert.deepStrictEqual(mut_history, [0, 1, 2, 1]);
44
+ * assert.deepStrictEqual(stateHistory, [0, 1, 2, 1]);
44
45
  * ```
45
46
  */
46
47
  export const createReducer = <S, A>(
@@ -49,7 +50,10 @@ export const createReducer = <S, A>(
49
50
  ): readonly [
50
51
  state: InitializedObservable<S>,
51
52
  dispatch: (action: A) => S,
52
- getSnapshot: () => S,
53
+ Readonly<{
54
+ getSnapshot: () => S;
55
+ initialState: S;
56
+ }>,
53
57
  ] => {
54
58
  const state = source<S>(initialState);
55
59
 
@@ -63,5 +67,5 @@ export const createReducer = <S, A>(
63
67
 
64
68
  const getSnapshot = (): S => state.getSnapshot().value;
65
69
 
66
- return [state, dispatch, getSnapshot] as const;
70
+ return [state, dispatch, { getSnapshot, initialState }] as const;
67
71
  };
@@ -28,31 +28,31 @@ const reducer = <S,>(state: S, action: Action<S>): S => {
28
28
  *
29
29
  * @template S - The type of the state
30
30
  * @param initialState - The initial value of the state
31
- * @returns An object containing the state observable and methods to manipulate it
31
+ * @returns A 3-element tuple: `[state, setState, { updateState, resetState, getSnapshot, initialState }]`
32
32
  *
33
33
  * @example
34
34
  * ```ts
35
35
  * const [state, setState, { updateState, resetState }] = createState(0);
36
36
  *
37
- * const mut_history: number[] = [];
37
+ * const stateHistory: number[] = [];
38
38
  *
39
39
  * state.subscribe((value: number) => {
40
- * mut_history.push(value);
40
+ * stateHistory.push(value);
41
41
  * });
42
42
  *
43
- * assert.deepStrictEqual(mut_history, [0]);
43
+ * assert.deepStrictEqual(stateHistory, [0]);
44
44
  *
45
45
  * setState(10); // logs: 10
46
46
  *
47
- * assert.deepStrictEqual(mut_history, [0, 10]);
47
+ * assert.deepStrictEqual(stateHistory, [0, 10]);
48
48
  *
49
49
  * updateState((prev: number) => prev + 1); // logs: 11
50
50
  *
51
- * assert.deepStrictEqual(mut_history, [0, 10, 11]);
51
+ * assert.deepStrictEqual(stateHistory, [0, 10, 11]);
52
52
  *
53
53
  * resetState(); // logs: 0
54
54
  *
55
- * assert.deepStrictEqual(mut_history, [0, 10, 11, 0]);
55
+ * assert.deepStrictEqual(stateHistory, [0, 10, 11, 0]);
56
56
  * ```
57
57
  */
58
58
  export const createState = <S,>(
@@ -64,9 +64,10 @@ export const createState = <S,>(
64
64
  updateState: (updateFn: (prev: S) => S) => S;
65
65
  resetState: () => S;
66
66
  getSnapshot: () => S;
67
+ initialState: S;
67
68
  }>,
68
69
  ] => {
69
- const [state, dispatch, getSnapshot] = createReducer<S, Action<S>>(
70
+ const [state, dispatch, { getSnapshot }] = createReducer<S, Action<S>>(
70
71
  reducer,
71
72
  initialState,
72
73
  );
@@ -86,73 +87,7 @@ export const createState = <S,>(
86
87
  updateState,
87
88
  resetState,
88
89
  getSnapshot,
89
- },
90
- ] as const;
91
- };
92
-
93
- /**
94
- * Creates a reactive boolean state with convenient methods for boolean operations.
95
- * Extends `createState` with boolean-specific helpers like `toggle`, `setTrue`, and `setFalse`.
96
- *
97
- * @param initialState - The initial boolean value
98
- * @returns An object with the state observable and boolean-specific methods
99
- *
100
- * @example
101
- * ```ts
102
- * const [state, { setTrue, toggle }] = createBooleanState(false);
103
- *
104
- * const mut_history: boolean[] = [];
105
- *
106
- * state.subscribe((value: boolean) => {
107
- * mut_history.push(value);
108
- * });
109
- *
110
- * assert.deepStrictEqual(mut_history, [false]);
111
- *
112
- * setTrue(); // logs: true
113
- *
114
- * assert.deepStrictEqual(mut_history, [false, true]);
115
- *
116
- * toggle(); // logs: false
117
- *
118
- * assert.deepStrictEqual(mut_history, [false, true, false]);
119
- *
120
- * toggle(); // logs: true
121
- *
122
- * assert.deepStrictEqual(mut_history, [false, true, false, true]);
123
- * ```
124
- */
125
- export const createBooleanState = (
126
- initialState: boolean,
127
- ): readonly [
128
- state: InitializedObservable<boolean>,
129
- Readonly<{
130
- setTrue: () => void;
131
- setFalse: () => void;
132
- setState: (next: boolean) => boolean;
133
- toggle: () => boolean;
134
- updateState: (updateFn: (prev: boolean) => boolean) => boolean;
135
- resetState: () => boolean;
136
- getSnapshot: () => boolean;
137
- }>,
138
- ] => {
139
- const [state, setState, { updateState, resetState, getSnapshot }] =
140
- createState(initialState);
141
-
142
- return [
143
- state,
144
- {
145
- setTrue: () => {
146
- setState(true);
147
- },
148
- setFalse: () => {
149
- setState(false);
150
- },
151
- toggle: () => updateState((s) => !s),
152
- setState,
153
- updateState,
154
- resetState,
155
- getSnapshot,
90
+ initialState,
156
91
  },
157
92
  ] as const;
158
93
  };
@@ -1,3 +1,5 @@
1
+ export * from './collect-to-array.mjs';
2
+ export * from './create-boolean-state.mjs';
1
3
  export * from './create-event-emitter.mjs';
2
4
  export * from './create-reducer.mjs';
3
5
  export * from './create-state.mjs';
@@ -1,39 +0,0 @@
1
- import { type FromArrayObservable } from '../types/index.mjs';
2
- /**
3
- * Creates an observable that emits all values from an array sequentially, then completes.
4
- *
5
- * @template A - The type of array elements
6
- * @param values - The array of values to emit
7
- * @param startManually - If true, waits for manual start (default: false)
8
- * @returns An observable that emits array values
9
- *
10
- * @example
11
- * ```ts
12
- * // Timeline:
13
- * //
14
- * // nums$ 1 2 3 | (completes)
15
- * //
16
- * // Explanation:
17
- * // - fromArray creates an observable from an array
18
- * // - Emits all values synchronously, then completes
19
- *
20
- * const nums$ = fromArray([1, 2, 3]);
21
- *
22
- * const mut_history: number[] = [];
23
- *
24
- * await new Promise<void>((resolve) => {
25
- * nums$.subscribe(
26
- * (x) => {
27
- * mut_history.push(x);
28
- * },
29
- * () => {
30
- * resolve();
31
- * },
32
- * );
33
- * });
34
- *
35
- * assert.deepStrictEqual(mut_history, [1, 2, 3]);
36
- * ```
37
- */
38
- export declare const fromArray: <A>(values: readonly A[], startManually?: boolean) => FromArrayObservable<A>;
39
- //# sourceMappingURL=from-array.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"from-array.d.mts","sourceRoot":"","sources":["../../../src/core/create/from-array.mts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,EACzB,QAAQ,SAAS,CAAC,EAAE,EACpB,gBAAe,OAAe,KAC7B,mBAAmB,CAAC,CAAC,CACgC,CAAC"}
@@ -1,65 +0,0 @@
1
- import { Optional } from 'ts-data-forge';
2
- import '../utils/id-maker.mjs';
3
- import { RootObservableClass } from '../class/root-observable-class.mjs';
4
-
5
- /**
6
- * Creates an observable that emits all values from an array sequentially, then completes.
7
- *
8
- * @template A - The type of array elements
9
- * @param values - The array of values to emit
10
- * @param startManually - If true, waits for manual start (default: false)
11
- * @returns An observable that emits array values
12
- *
13
- * @example
14
- * ```ts
15
- * // Timeline:
16
- * //
17
- * // nums$ 1 2 3 | (completes)
18
- * //
19
- * // Explanation:
20
- * // - fromArray creates an observable from an array
21
- * // - Emits all values synchronously, then completes
22
- *
23
- * const nums$ = fromArray([1, 2, 3]);
24
- *
25
- * const mut_history: number[] = [];
26
- *
27
- * await new Promise<void>((resolve) => {
28
- * nums$.subscribe(
29
- * (x) => {
30
- * mut_history.push(x);
31
- * },
32
- * () => {
33
- * resolve();
34
- * },
35
- * );
36
- * });
37
- *
38
- * assert.deepStrictEqual(mut_history, [1, 2, 3]);
39
- * ```
40
- */
41
- const fromArray = (values, startManually = false) => new FromArrayObservableClass(values, startManually);
42
- class FromArrayObservableClass extends RootObservableClass {
43
- #values;
44
- constructor(values, startManually = false) {
45
- super({ initialValue: Optional.none });
46
- this.#values = values;
47
- if (!startManually) {
48
- setTimeout(() => {
49
- this.emit();
50
- }, 0);
51
- }
52
- }
53
- emit() {
54
- if (this.isCompleted)
55
- return this;
56
- for (const v of this.#values) {
57
- this.startUpdate(v);
58
- }
59
- this.complete();
60
- return this;
61
- }
62
- }
63
-
64
- export { fromArray };
65
- //# sourceMappingURL=from-array.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"from-array.mjs","sources":["../../../src/core/create/from-array.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCG;AACI,MAAM,SAAS,GAAG,CACvB,MAAoB,EACpB,aAAA,GAAyB,KAAK,KAE9B,IAAI,wBAAwB,CAAI,MAAM,EAAE,aAAa;AAEvD,MAAM,wBACJ,SAAQ,mBAAsB,CAAA;AAGrB,IAAA,OAAO;IAEhB,WAAA,CAAY,MAAoB,EAAE,aAAA,GAAyB,KAAK,EAAA;QAC9D,KAAK,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;AAEtC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;QAErB,IAAI,CAAC,aAAa,EAAE;YAClB,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,IAAI,EAAE;YACb,CAAC,EAAE,CAAC,CAAC;QACP;IACF;IAEA,IAAI,GAAA;QACF,IAAI,IAAI,CAAC,WAAW;AAAE,YAAA,OAAO,IAAI;AAEjC,QAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;AAC5B,YAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACrB;QAEA,IAAI,CAAC,QAAQ,EAAE;AAEf,QAAA,OAAO,IAAI;IACb;AACD;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"interval.d.mts","sourceRoot":"","sources":["../../../src/core/create/interval.mts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,eAAO,MAAM,QAAQ,GACnB,cAAc,MAAM,EACpB,gBAAgB,OAAO,KACtB,kBACuD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"interval.mjs","sources":["../../../src/core/create/interval.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CG;AACI,MAAM,QAAQ,GAAG,CACtB,YAAoB,EACpB,aAAuB,KAEvB,IAAI,uBAAuB,CAAC,YAAY,EAAE,aAAa;AAEzD,MAAM,uBACJ,SAAQ,mBAA6B,CAAA;AAG5B,IAAA,aAAa;AACtB,IAAA,YAAY;AACZ,IAAA,aAAa;AACb,IAAA,YAAY;AACZ,IAAA,cAAc;IAEd,WAAA,CAAY,YAAoB,EAAE,aAAuB,EAAA;QACvD,KAAK,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;AAEtC,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY;AAEjC,QAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC;AAEjC,QAAA,IAAI,CAAC,aAAa,GAAG,SAAS;AAE9B,QAAA,IAAI,CAAC,YAAY,GAAG,SAAS;AAE7B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAE3B,QAAA,IAAI,aAAa,KAAK,IAAI,EAAE;YAC1B,IAAI,CAAC,KAAK,EAAE;QACd;IACF;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC;AAElC,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAE1B,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC;AAEzD,YAAA,OAAO,IAAI;QACb;;AAGA,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAK;AACnC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;QACrC,CAAC,EAAE,CAAC,CAAC;AAEL,QAAA,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,MAAK;AACnC,YAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC;AAEtD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AACrC,QAAA,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC;AAEtB,QAAA,OAAO,IAAI;IACb;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;AACvE,YAAA,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;AAEjC,YAAA,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;QAClC;IACF;IAES,QAAQ,GAAA;QACf,IAAI,CAAC,WAAW,EAAE;QAElB,KAAK,CAAC,QAAQ,EAAE;IAClB;AACD;;;;"}
@@ -1,39 +0,0 @@
1
- import { type OfObservable } from '../types/index.mjs';
2
- /**
3
- * Creates an observable that emits a single value and then completes.
4
- *
5
- * @template A - The type of the value
6
- * @param value - The value to emit
7
- * @param startManually - If true, waits for manual start (default: false)
8
- * @returns An observable that emits the value
9
- *
10
- * @example
11
- * ```ts
12
- * // Timeline:
13
- * //
14
- * // num$ 42 | (completes immediately)
15
- * //
16
- * // Explanation:
17
- * // - of creates an observable that emits a single value, then completes
18
- * // - Useful for converting a static value into an observable
19
- *
20
- * const num$ = of(42);
21
- *
22
- * const mut_history: number[] = [];
23
- *
24
- * await new Promise<void>((resolve) => {
25
- * num$.subscribe(
26
- * (x) => {
27
- * mut_history.push(x);
28
- * },
29
- * () => {
30
- * resolve();
31
- * },
32
- * );
33
- * });
34
- *
35
- * assert.deepStrictEqual(mut_history, [42]);
36
- * ```
37
- */
38
- export declare const of: <A>(value: A, startManually?: boolean) => OfObservable<A>;
39
- //# sourceMappingURL=of.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"of.d.mts","sourceRoot":"","sources":["../../../src/core/create/of.mts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,EAAE,GAAI,CAAC,EAClB,OAAO,CAAC,EACR,gBAAe,OAAe,KAC7B,YAAY,CAAC,CAAC,CAAmD,CAAC"}
@@ -1,63 +0,0 @@
1
- import { Optional } from 'ts-data-forge';
2
- import '../utils/id-maker.mjs';
3
- import { RootObservableClass } from '../class/root-observable-class.mjs';
4
-
5
- /**
6
- * Creates an observable that emits a single value and then completes.
7
- *
8
- * @template A - The type of the value
9
- * @param value - The value to emit
10
- * @param startManually - If true, waits for manual start (default: false)
11
- * @returns An observable that emits the value
12
- *
13
- * @example
14
- * ```ts
15
- * // Timeline:
16
- * //
17
- * // num$ 42 | (completes immediately)
18
- * //
19
- * // Explanation:
20
- * // - of creates an observable that emits a single value, then completes
21
- * // - Useful for converting a static value into an observable
22
- *
23
- * const num$ = of(42);
24
- *
25
- * const mut_history: number[] = [];
26
- *
27
- * await new Promise<void>((resolve) => {
28
- * num$.subscribe(
29
- * (x) => {
30
- * mut_history.push(x);
31
- * },
32
- * () => {
33
- * resolve();
34
- * },
35
- * );
36
- * });
37
- *
38
- * assert.deepStrictEqual(mut_history, [42]);
39
- * ```
40
- */
41
- const of = (value, startManually = false) => new OfObservableClass(value, startManually);
42
- class OfObservableClass extends RootObservableClass {
43
- #value;
44
- constructor(value, startManually = false) {
45
- super({ initialValue: Optional.none });
46
- this.#value = value;
47
- if (!startManually) {
48
- setTimeout(() => {
49
- this.emit();
50
- }, 0);
51
- }
52
- }
53
- emit() {
54
- if (this.isCompleted)
55
- return this;
56
- this.startUpdate(this.#value);
57
- this.complete();
58
- return this;
59
- }
60
- }
61
-
62
- export { of };
63
- //# sourceMappingURL=of.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"of.mjs","sources":["../../../src/core/create/of.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCG;AACI,MAAM,EAAE,GAAG,CAChB,KAAQ,EACR,aAAA,GAAyB,KAAK,KACV,IAAI,iBAAiB,CAAI,KAAK,EAAE,aAAa;AAEnE,MAAM,iBACJ,SAAQ,mBAAsB,CAAA;AAGrB,IAAA,MAAM;IAEf,WAAA,CAAY,KAAQ,EAAE,aAAA,GAAyB,KAAK,EAAA;QAClD,KAAK,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;AAEtC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QAEnB,IAAI,CAAC,aAAa,EAAE;YAClB,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,IAAI,EAAE;YACb,CAAC,EAAE,CAAC,CAAC;QACP;IACF;IAEA,IAAI,GAAA;QACF,IAAI,IAAI,CAAC,WAAW;AAAE,YAAA,OAAO,IAAI;AAEjC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;QAE7B,IAAI,CAAC,QAAQ,EAAE;AAEf,QAAA,OAAO,IAAI;IACb;AACD;;;;"}
@@ -1,62 +0,0 @@
1
- import { type KeepInitialValueOperator } from '../types/index.mjs';
2
- /**
3
- * Emits the last value from the source observable after a specified time window has passed.
4
- * Unlike throttleTime which emits the first value, auditTime emits the last value.
5
- *
6
- * @template A - The type of values from the source
7
- * @param milliSeconds - The audit time window in milliseconds
8
- * @returns An operator that audits emissions from the observable
9
- *
10
- * @example
11
- * ```ts
12
- * // Timeline (1000ms audit):
13
- * //
14
- * // Time(ms) 0 100 200 300 400 ... 1000 1100
15
- * // input$ e1 e2 e3 e4 e5
16
- * // audited$ e5 (emitted at end of window)
17
- * // |-------1000ms window------> ^
18
- * //
19
- * // Explanation:
20
- * // - auditTime emits the LAST value received during each time window
21
- * // - Unlike throttleTime (which emits the FIRST value), audit emits the LAST
22
- * // - At 0-1000ms: e1-e5 are received
23
- * // - At 1000ms: e5 (the last value in the window) is emitted
24
- * // - Useful when you want the most recent value after a burst of events
25
- *
26
- * const input$ = source<number>();
27
- *
28
- * const audited$ = input$.pipe(auditTime(200));
29
- *
30
- * const mut_history: number[] = [];
31
- *
32
- * audited$.subscribe((value) => {
33
- * mut_history.push(value);
34
- * });
35
- *
36
- * input$.next(1);
37
- *
38
- * input$.next(2);
39
- *
40
- * input$.next(3);
41
- *
42
- * assert.deepStrictEqual(mut_history, []);
43
- *
44
- * await new Promise((resolve) => {
45
- * setTimeout(resolve, 250);
46
- * });
47
- *
48
- * assert.deepStrictEqual(mut_history, [3]);
49
- *
50
- * input$.next(4);
51
- *
52
- * input$.next(5);
53
- *
54
- * await new Promise((resolve) => {
55
- * setTimeout(resolve, 250);
56
- * });
57
- *
58
- * assert.deepStrictEqual(mut_history, [3, 5]);
59
- * ```
60
- */
61
- export declare const auditTime: <A>(milliSeconds: number) => KeepInitialValueOperator<A, A>;
62
- //# sourceMappingURL=audit-time.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audit-time.d.mts","sourceRoot":"","sources":["../../../src/core/operators/audit-time.mts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,wBAAwB,EAG9B,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,EACzB,cAAc,MAAM,KACnB,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAMQ,CAAC"}