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
@@ -1,4 +1,51 @@
1
- import { Result } from 'ts-data-forge';
1
+ import { Result, type UnknownResult } from 'ts-data-forge';
2
2
  import { type KeepInitialValueOperator } from '../../types/index.mjs';
3
+ /**
4
+ * Transforms the success value (`Ok`) of a `Result` type emitted by the source.
5
+ * If the value is `Ok`, the mapping function is applied; if `Err`, it remains unchanged.
6
+ *
7
+ * @template R - The Result type from the source
8
+ * @template S2 - The type of the mapped success value
9
+ * @param mapFn - A function to transform the Ok value
10
+ * @returns An operator that maps the Ok side of Result emissions
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * // Timeline:
15
+ * //
16
+ * // result$ Ok(2) Err("e") Ok(5)
17
+ * // doubled$ Ok(4) Err("e") Ok(10)
18
+ * //
19
+ * // Explanation:
20
+ * // - mapResultOk transforms the Ok value of Result emissions
21
+ * // - Err values pass through unchanged
22
+ *
23
+ * const result$ = source<Result<number, string>>();
24
+ *
25
+ * const doubled$ = result$.pipe(mapResultOk((x) => x * 2));
26
+ *
27
+ * const valueHistory: Result<number, string>[] = [];
28
+ *
29
+ * doubled$.subscribe((v) => {
30
+ * valueHistory.push(v);
31
+ * });
32
+ *
33
+ * result$.next(Result.ok(2));
34
+ *
35
+ * assert.deepStrictEqual(valueHistory, [Result.ok(4)]);
36
+ *
37
+ * result$.next(Result.err('e'));
38
+ *
39
+ * assert.deepStrictEqual(valueHistory, [Result.ok(4), Result.err('e')]);
40
+ *
41
+ * result$.next(Result.ok(5));
42
+ *
43
+ * assert.deepStrictEqual(valueHistory, [
44
+ * Result.ok(4),
45
+ * Result.err('e'),
46
+ * Result.ok(10),
47
+ * ]);
48
+ * ```
49
+ */
3
50
  export declare const mapResultOk: <R extends UnknownResult, S2>(mapFn: (x: Result.UnwrapOk<R>) => S2) => KeepInitialValueOperator<R, Result<S2, Result.UnwrapErr<R>>>;
4
51
  //# sourceMappingURL=map-result-ok.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"map-result-ok.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/map-result-ok.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGtE,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,aAAa,EAAE,EAAE,EACrD,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,KACnC,wBAAwB,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAC5B,CAAC"}
1
+ {"version":3,"file":"map-result-ok.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/map-result-ok.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,aAAa,EAAE,EAAE,EACrD,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,KACnC,wBAAwB,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAC5B,CAAC"}
@@ -1,6 +1,54 @@
1
1
  import { Result } from 'ts-data-forge';
2
- import { map } from './map.mjs';
2
+ import '../../utils/id-maker.mjs';
3
+ import { map } from '../../operators/map.mjs';
3
4
 
5
+ /**
6
+ * Transforms the success value (`Ok`) of a `Result` type emitted by the source.
7
+ * If the value is `Ok`, the mapping function is applied; if `Err`, it remains unchanged.
8
+ *
9
+ * @template R - The Result type from the source
10
+ * @template S2 - The type of the mapped success value
11
+ * @param mapFn - A function to transform the Ok value
12
+ * @returns An operator that maps the Ok side of Result emissions
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * // Timeline:
17
+ * //
18
+ * // result$ Ok(2) Err("e") Ok(5)
19
+ * // doubled$ Ok(4) Err("e") Ok(10)
20
+ * //
21
+ * // Explanation:
22
+ * // - mapResultOk transforms the Ok value of Result emissions
23
+ * // - Err values pass through unchanged
24
+ *
25
+ * const result$ = source<Result<number, string>>();
26
+ *
27
+ * const doubled$ = result$.pipe(mapResultOk((x) => x * 2));
28
+ *
29
+ * const valueHistory: Result<number, string>[] = [];
30
+ *
31
+ * doubled$.subscribe((v) => {
32
+ * valueHistory.push(v);
33
+ * });
34
+ *
35
+ * result$.next(Result.ok(2));
36
+ *
37
+ * assert.deepStrictEqual(valueHistory, [Result.ok(4)]);
38
+ *
39
+ * result$.next(Result.err('e'));
40
+ *
41
+ * assert.deepStrictEqual(valueHistory, [Result.ok(4), Result.err('e')]);
42
+ *
43
+ * result$.next(Result.ok(5));
44
+ *
45
+ * assert.deepStrictEqual(valueHistory, [
46
+ * Result.ok(4),
47
+ * Result.err('e'),
48
+ * Result.ok(10),
49
+ * ]);
50
+ * ```
51
+ */
4
52
  const mapResultOk = (mapFn) => map((a) => Result.map(a, mapFn));
5
53
 
6
54
  export { mapResultOk };
@@ -1 +1 @@
1
- {"version":3,"file":"map-result-ok.mjs","sources":["../../../../src/core/predefined/operators/map-result-ok.mts"],"sourcesContent":[null],"names":[],"mappings":";;;AAIO,MAAM,WAAW,GAAG,CACzB,KAAoC,KAEpC,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;;;;"}
1
+ {"version":3,"file":"map-result-ok.mjs","sources":["../../../../src/core/predefined/operators/map-result-ok.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CG;AACI,MAAM,WAAW,GAAG,CACzB,KAAoC,KAEpC,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;;;;"}
@@ -1,3 +1,43 @@
1
1
  import { type KeepInitialValueOperator } from '../../types/index.mjs';
2
+ /**
3
+ * Maps all emitted values to a constant value, ignoring the source values.
4
+ * Equivalent to `map(() => value)`.
5
+ *
6
+ * @template A - The type of values from the source
7
+ * @template B - The type of the constant value
8
+ * @param value - The constant value to emit
9
+ * @returns An operator that always emits the given constant
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * // Timeline:
14
+ * //
15
+ * // click$ MouseEvent MouseEvent MouseEvent
16
+ * // count$ 1 1 1
17
+ * //
18
+ * // Explanation:
19
+ * // - mapTo maps all emitted values to a constant value
20
+ * // - Ignores the source values entirely
21
+ * // - Useful for converting events to signals
22
+ *
23
+ * const click$ = source<string>();
24
+ *
25
+ * const one$ = click$.pipe(mapTo(1));
26
+ *
27
+ * const valueHistory: number[] = [];
28
+ *
29
+ * one$.subscribe((value) => {
30
+ * valueHistory.push(value);
31
+ * });
32
+ *
33
+ * click$.next('click1');
34
+ *
35
+ * click$.next('click2');
36
+ *
37
+ * click$.next('click3');
38
+ *
39
+ * assert.deepStrictEqual(valueHistory, [1, 1, 1]);
40
+ * ```
41
+ */
2
42
  export declare const mapTo: <A, B>(value: B) => KeepInitialValueOperator<A, B>;
3
43
  //# sourceMappingURL=map-to.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"map-to.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/map-to.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGtE,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAG,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAClD,CAAC"}
1
+ {"version":3,"file":"map-to.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/map-to.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAG,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAClD,CAAC"}
@@ -1,5 +1,47 @@
1
- import { map } from './map.mjs';
1
+ import 'ts-data-forge';
2
+ import '../../utils/id-maker.mjs';
3
+ import { map } from '../../operators/map.mjs';
2
4
 
5
+ /**
6
+ * Maps all emitted values to a constant value, ignoring the source values.
7
+ * Equivalent to `map(() => value)`.
8
+ *
9
+ * @template A - The type of values from the source
10
+ * @template B - The type of the constant value
11
+ * @param value - The constant value to emit
12
+ * @returns An operator that always emits the given constant
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * // Timeline:
17
+ * //
18
+ * // click$ MouseEvent MouseEvent MouseEvent
19
+ * // count$ 1 1 1
20
+ * //
21
+ * // Explanation:
22
+ * // - mapTo maps all emitted values to a constant value
23
+ * // - Ignores the source values entirely
24
+ * // - Useful for converting events to signals
25
+ *
26
+ * const click$ = source<string>();
27
+ *
28
+ * const one$ = click$.pipe(mapTo(1));
29
+ *
30
+ * const valueHistory: number[] = [];
31
+ *
32
+ * one$.subscribe((value) => {
33
+ * valueHistory.push(value);
34
+ * });
35
+ *
36
+ * click$.next('click1');
37
+ *
38
+ * click$.next('click2');
39
+ *
40
+ * click$.next('click3');
41
+ *
42
+ * assert.deepStrictEqual(valueHistory, [1, 1, 1]);
43
+ * ```
44
+ */
3
45
  const mapTo = (value) => map(() => value);
4
46
 
5
47
  export { mapTo };
@@ -1 +1 @@
1
- {"version":3,"file":"map-to.mjs","sources":["../../../../src/core/predefined/operators/map-to.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAGO,MAAM,KAAK,GAAG,CAAO,KAAQ,KAClC,GAAG,CAAC,MAAM,KAAK;;;;"}
1
+ {"version":3,"file":"map-to.mjs","sources":["../../../../src/core/predefined/operators/map-to.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCG;AACI,MAAM,KAAK,GAAG,CAAO,KAAQ,KAClC,GAAG,CAAC,MAAM,KAAK;;;;"}
@@ -1,4 +1,43 @@
1
1
  import { type KeepInitialValueOperator } from '../../types/index.mjs';
2
+ /**
3
+ * Extracts a property value from each emitted object by key.
4
+ * Equivalent to `map(value => value[key])`.
5
+ *
6
+ * @template A - The type of the emitted object
7
+ * @template K - The key to extract
8
+ * @param key - The property key to pluck
9
+ * @returns An operator that emits the property value
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * // Timeline:
14
+ * //
15
+ * // user$ { name: "Alice", age: 25 } { name: "Bob", age: 30 }
16
+ * // name$ "Alice" "Bob"
17
+ * //
18
+ * // Explanation:
19
+ * // - getKey extracts a property value from each emitted object
20
+ * // - Equivalent to map(value => value[key])
21
+ *
22
+ * const user$ = source<Readonly<{ name: string; age: number }>>();
23
+ *
24
+ * const name$ = user$.pipe(getKey('name'));
25
+ *
26
+ * const valueHistory: string[] = [];
27
+ *
28
+ * name$.subscribe((n) => {
29
+ * valueHistory.push(n);
30
+ * });
31
+ *
32
+ * user$.next({ name: 'Alice', age: 25 });
33
+ *
34
+ * assert.deepStrictEqual(valueHistory, ['Alice']);
35
+ *
36
+ * user$.next({ name: 'Bob', age: 30 });
37
+ *
38
+ * assert.deepStrictEqual(valueHistory, ['Alice', 'Bob']);
39
+ * ```
40
+ */
2
41
  export declare const pluck: <A, K extends keyof A>(key: K) => KeepInitialValueOperator<A, A[K]>;
3
42
  /**
4
43
  * Alias for `pluck`.
@@ -1 +1 @@
1
- {"version":3,"file":"pluck.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/pluck.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGtE,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EACxC,KAAK,CAAC,KACL,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAuB,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,MAAM,GARG,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,OACnC,CAAC,KACL,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAMR,CAAC"}
1
+ {"version":3,"file":"pluck.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/pluck.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EACxC,KAAK,CAAC,KACL,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAuB,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,MAAM,GARG,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,OACnC,CAAC,KACL,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAMR,CAAC"}
@@ -1,5 +1,46 @@
1
- import { map } from './map.mjs';
1
+ import 'ts-data-forge';
2
+ import '../../utils/id-maker.mjs';
3
+ import { map } from '../../operators/map.mjs';
2
4
 
5
+ /**
6
+ * Extracts a property value from each emitted object by key.
7
+ * Equivalent to `map(value => value[key])`.
8
+ *
9
+ * @template A - The type of the emitted object
10
+ * @template K - The key to extract
11
+ * @param key - The property key to pluck
12
+ * @returns An operator that emits the property value
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * // Timeline:
17
+ * //
18
+ * // user$ { name: "Alice", age: 25 } { name: "Bob", age: 30 }
19
+ * // name$ "Alice" "Bob"
20
+ * //
21
+ * // Explanation:
22
+ * // - getKey extracts a property value from each emitted object
23
+ * // - Equivalent to map(value => value[key])
24
+ *
25
+ * const user$ = source<Readonly<{ name: string; age: number }>>();
26
+ *
27
+ * const name$ = user$.pipe(getKey('name'));
28
+ *
29
+ * const valueHistory: string[] = [];
30
+ *
31
+ * name$.subscribe((n) => {
32
+ * valueHistory.push(n);
33
+ * });
34
+ *
35
+ * user$.next({ name: 'Alice', age: 25 });
36
+ *
37
+ * assert.deepStrictEqual(valueHistory, ['Alice']);
38
+ *
39
+ * user$.next({ name: 'Bob', age: 30 });
40
+ *
41
+ * assert.deepStrictEqual(valueHistory, ['Alice', 'Bob']);
42
+ * ```
43
+ */
3
44
  const pluck = (key) => map((a) => a[key]);
4
45
  /**
5
46
  * Alias for `pluck`.
@@ -1 +1 @@
1
- {"version":3,"file":"pluck.mjs","sources":["../../../../src/core/predefined/operators/pluck.mts"],"sourcesContent":[null],"names":[],"mappings":";;MAGa,KAAK,GAAG,CACnB,GAAM,KACgC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;AAEzD;;;AAGG;AACI,MAAM,MAAM,GAAG;;;;"}
1
+ {"version":3,"file":"pluck.mjs","sources":["../../../../src/core/predefined/operators/pluck.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCG;MACU,KAAK,GAAG,CACnB,GAAM,KACgC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;AAEzD;;;AAGG;AACI,MAAM,MAAM,GAAG;;;;"}
@@ -1,3 +1,51 @@
1
+ import { type PositiveSafeIntWithSmallInt } from 'ts-type-forge';
1
2
  import { type DropInitialValueOperator } from '../../types/index.mjs';
3
+ /**
4
+ * Skips the first `n` emissions from the source observable.
5
+ * After `n` values are skipped, all subsequent values pass through.
6
+ *
7
+ * @template A - The type of values from the source
8
+ * @param n - The number of values to skip
9
+ * @returns An operator that skips the first n emissions
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * // Timeline:
14
+ * //
15
+ * // num$ 1 2 3 4 5
16
+ * // skipped$ 3 4 5
17
+ * // |skip 2|
18
+ * //
19
+ * // Explanation:
20
+ * // - skip ignores the first n emissions from the source
21
+ * // - After n values are skipped, all subsequent values pass through
22
+ *
23
+ * const num$ = source<number>();
24
+ *
25
+ * const skipped$ = num$.pipe(skip(2));
26
+ *
27
+ * const valueHistory: number[] = [];
28
+ *
29
+ * skipped$.subscribe((x) => {
30
+ * valueHistory.push(x);
31
+ * });
32
+ *
33
+ * num$.next(1); // skipped
34
+ *
35
+ * num$.next(2); // skipped
36
+ *
37
+ * assert.deepStrictEqual(valueHistory, []);
38
+ *
39
+ * num$.next(3); // logs: 3
40
+ *
41
+ * assert.deepStrictEqual(valueHistory, [3]);
42
+ *
43
+ * num$.next(4); // logs: 4
44
+ *
45
+ * num$.next(5); // logs: 5
46
+ *
47
+ * assert.deepStrictEqual(valueHistory, [3, 4, 5]);
48
+ * ```
49
+ */
2
50
  export declare const skip: <A>(n: PositiveSafeIntWithSmallInt) => DropInitialValueOperator<A, A>;
3
51
  //# sourceMappingURL=skip.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skip.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/skip.mts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,eAAO,MAAM,IAAI,GAAI,CAAC,EACpB,GAAG,2BAA2B,KAC7B,wBAAwB,CAAC,CAAC,EAAE,CAAC,CACyC,CAAC"}
1
+ {"version":3,"file":"skip.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/skip.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,EACpB,GAAG,2BAA2B,KAC7B,wBAAwB,CAAC,CAAC,EAAE,CAAC,CACyC,CAAC"}
@@ -2,6 +2,53 @@ import { PositiveSafeInt } from 'ts-data-forge';
2
2
  import '../../utils/id-maker.mjs';
3
3
  import { skipWhile } from '../../operators/skip-while.mjs';
4
4
 
5
+ /**
6
+ * Skips the first `n` emissions from the source observable.
7
+ * After `n` values are skipped, all subsequent values pass through.
8
+ *
9
+ * @template A - The type of values from the source
10
+ * @param n - The number of values to skip
11
+ * @returns An operator that skips the first n emissions
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * // Timeline:
16
+ * //
17
+ * // num$ 1 2 3 4 5
18
+ * // skipped$ 3 4 5
19
+ * // |skip 2|
20
+ * //
21
+ * // Explanation:
22
+ * // - skip ignores the first n emissions from the source
23
+ * // - After n values are skipped, all subsequent values pass through
24
+ *
25
+ * const num$ = source<number>();
26
+ *
27
+ * const skipped$ = num$.pipe(skip(2));
28
+ *
29
+ * const valueHistory: number[] = [];
30
+ *
31
+ * skipped$.subscribe((x) => {
32
+ * valueHistory.push(x);
33
+ * });
34
+ *
35
+ * num$.next(1); // skipped
36
+ *
37
+ * num$.next(2); // skipped
38
+ *
39
+ * assert.deepStrictEqual(valueHistory, []);
40
+ *
41
+ * num$.next(3); // logs: 3
42
+ *
43
+ * assert.deepStrictEqual(valueHistory, [3]);
44
+ *
45
+ * num$.next(4); // logs: 4
46
+ *
47
+ * num$.next(5); // logs: 5
48
+ *
49
+ * assert.deepStrictEqual(valueHistory, [3, 4, 5]);
50
+ * ```
51
+ */
5
52
  const skip = (n) => !PositiveSafeInt.is(n) ? idFn : skipWhile((_, index) => index + 1 <= n);
6
53
  const idFn = (value) => value;
7
54
 
@@ -1 +1 @@
1
- {"version":3,"file":"skip.mjs","sources":["../../../../src/core/predefined/operators/skip.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAIO,MAAM,IAAI,GAAG,CAClB,CAA8B,KAE9B,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC;AAExE,MAAM,IAAI,GAAG,CAAK,KAAQ,KAAQ,KAAK;;;;"}
1
+ {"version":3,"file":"skip.mjs","sources":["../../../../src/core/predefined/operators/skip.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAKA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CG;AACI,MAAM,IAAI,GAAG,CAClB,CAA8B,KAE9B,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC;AAExE,MAAM,IAAI,GAAG,CAAK,KAAQ,KAAQ,KAAK;;;;"}
@@ -1,3 +1,45 @@
1
+ import { type PositiveSafeIntWithSmallInt } from 'ts-type-forge';
1
2
  import { type DropInitialValueOperator } from '../../types/index.mjs';
3
+ /**
4
+ * Takes only the first `n` emissions from the source observable, then completes.
5
+ *
6
+ * @template A - The type of values from the source
7
+ * @param n - The number of values to take
8
+ * @returns An operator that takes the first n emissions
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * // Timeline:
13
+ * //
14
+ * // num$ 1 2 3 4 (ignored)
15
+ * // taken$ 1 2 3 | (completes)
16
+ * //
17
+ * // Explanation:
18
+ * // - take emits only the first n values, then completes
19
+ * // - Subsequent emissions from the source are ignored
20
+ *
21
+ * const num$ = source<number>();
22
+ *
23
+ * const taken$ = num$.pipe(take(3));
24
+ *
25
+ * const valueHistory: number[] = [];
26
+ *
27
+ * taken$.subscribe((x) => {
28
+ * valueHistory.push(x);
29
+ * });
30
+ *
31
+ * num$.next(1);
32
+ *
33
+ * num$.next(2);
34
+ *
35
+ * num$.next(3);
36
+ *
37
+ * assert.deepStrictEqual(valueHistory, [1, 2, 3]);
38
+ *
39
+ * num$.next(4); // ignored (already completed)
40
+ *
41
+ * assert.deepStrictEqual(valueHistory, [1, 2, 3]);
42
+ * ```
43
+ */
2
44
  export declare const take: <A>(n: PositiveSafeIntWithSmallInt) => DropInitialValueOperator<A, A>;
3
45
  //# sourceMappingURL=take.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"take.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/take.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,eAAO,MAAM,IAAI,GAAI,CAAC,EACpB,GAAG,2BAA2B,KAC7B,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAA4C,CAAC"}
1
+ {"version":3,"file":"take.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/take.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,EACpB,GAAG,2BAA2B,KAC7B,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAA4C,CAAC"}
@@ -2,6 +2,47 @@ import 'ts-data-forge';
2
2
  import '../../utils/id-maker.mjs';
3
3
  import { takeWhile } from '../../operators/take-while.mjs';
4
4
 
5
+ /**
6
+ * Takes only the first `n` emissions from the source observable, then completes.
7
+ *
8
+ * @template A - The type of values from the source
9
+ * @param n - The number of values to take
10
+ * @returns An operator that takes the first n emissions
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * // Timeline:
15
+ * //
16
+ * // num$ 1 2 3 4 (ignored)
17
+ * // taken$ 1 2 3 | (completes)
18
+ * //
19
+ * // Explanation:
20
+ * // - take emits only the first n values, then completes
21
+ * // - Subsequent emissions from the source are ignored
22
+ *
23
+ * const num$ = source<number>();
24
+ *
25
+ * const taken$ = num$.pipe(take(3));
26
+ *
27
+ * const valueHistory: number[] = [];
28
+ *
29
+ * taken$.subscribe((x) => {
30
+ * valueHistory.push(x);
31
+ * });
32
+ *
33
+ * num$.next(1);
34
+ *
35
+ * num$.next(2);
36
+ *
37
+ * num$.next(3);
38
+ *
39
+ * assert.deepStrictEqual(valueHistory, [1, 2, 3]);
40
+ *
41
+ * num$.next(4); // ignored (already completed)
42
+ *
43
+ * assert.deepStrictEqual(valueHistory, [1, 2, 3]);
44
+ * ```
45
+ */
5
46
  const take = (n) => takeWhile((_, index) => index + 1 <= n);
6
47
 
7
48
  export { take };
@@ -1 +1 @@
1
- {"version":3,"file":"take.mjs","sources":["../../../../src/core/predefined/operators/take.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAGO,MAAM,IAAI,GAAG,CAClB,CAA8B,KACK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC;;;;"}
1
+ {"version":3,"file":"take.mjs","sources":["../../../../src/core/predefined/operators/take.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCG;AACI,MAAM,IAAI,GAAG,CAClB,CAA8B,KACK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC;;;;"}
@@ -1,4 +1,44 @@
1
- import { Optional } from 'ts-data-forge';
1
+ import { Optional, type UnknownOptional } from 'ts-data-forge';
2
2
  import { type KeepInitialValueOperator } from '../../types/index.mjs';
3
+ /**
4
+ * Unwraps `Optional` values, converting `Some(value)` to `value` and `None` to `undefined`.
5
+ *
6
+ * @template O - The Optional type from the source
7
+ * @returns An operator that unwraps Optional emissions
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * // Timeline:
12
+ * //
13
+ * // opt$ Some(42) None Some(7)
14
+ * // unwrapped$ 42 undefined 7
15
+ * //
16
+ * // Explanation:
17
+ * // - unwrapOptional converts Some(value) to value, and None to undefined
18
+ * // - Useful for extracting raw values from Optional streams
19
+ *
20
+ * const opt$ = source<Optional<number>>();
21
+ *
22
+ * const unwrapped$ = opt$.pipe(unwrapOptional());
23
+ *
24
+ * const valueHistory: (number | undefined)[] = [];
25
+ *
26
+ * unwrapped$.subscribe((v) => {
27
+ * valueHistory.push(v);
28
+ * });
29
+ *
30
+ * opt$.next(Optional.some(42));
31
+ *
32
+ * assert.deepStrictEqual(valueHistory, [42]);
33
+ *
34
+ * opt$.next(Optional.none);
35
+ *
36
+ * assert.deepStrictEqual(valueHistory, [42, undefined]);
37
+ *
38
+ * opt$.next(Optional.some(7));
39
+ *
40
+ * assert.deepStrictEqual(valueHistory, [42, undefined, 7]);
41
+ * ```
42
+ */
3
43
  export declare const unwrapOptional: <O extends UnknownOptional>() => KeepInitialValueOperator<O, Optional.Unwrap<O> | undefined>;
4
44
  //# sourceMappingURL=unwrap-optional.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unwrap-optional.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/unwrap-optional.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGtE,eAAO,MAAM,cAAc,GACzB,CAAC,SAAS,eAAe,OACtB,wBAAwB,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAEA,CAAC"}
1
+ {"version":3,"file":"unwrap-optional.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/unwrap-optional.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAG/D,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,cAAc,GACzB,CAAC,SAAS,eAAe,OACtB,wBAAwB,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAEA,CAAC"}
@@ -1,6 +1,47 @@
1
1
  import { Optional } from 'ts-data-forge';
2
- import { map } from './map.mjs';
2
+ import '../../utils/id-maker.mjs';
3
+ import { map } from '../../operators/map.mjs';
3
4
 
5
+ /**
6
+ * Unwraps `Optional` values, converting `Some(value)` to `value` and `None` to `undefined`.
7
+ *
8
+ * @template O - The Optional type from the source
9
+ * @returns An operator that unwraps Optional emissions
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * // Timeline:
14
+ * //
15
+ * // opt$ Some(42) None Some(7)
16
+ * // unwrapped$ 42 undefined 7
17
+ * //
18
+ * // Explanation:
19
+ * // - unwrapOptional converts Some(value) to value, and None to undefined
20
+ * // - Useful for extracting raw values from Optional streams
21
+ *
22
+ * const opt$ = source<Optional<number>>();
23
+ *
24
+ * const unwrapped$ = opt$.pipe(unwrapOptional());
25
+ *
26
+ * const valueHistory: (number | undefined)[] = [];
27
+ *
28
+ * unwrapped$.subscribe((v) => {
29
+ * valueHistory.push(v);
30
+ * });
31
+ *
32
+ * opt$.next(Optional.some(42));
33
+ *
34
+ * assert.deepStrictEqual(valueHistory, [42]);
35
+ *
36
+ * opt$.next(Optional.none);
37
+ *
38
+ * assert.deepStrictEqual(valueHistory, [42, undefined]);
39
+ *
40
+ * opt$.next(Optional.some(7));
41
+ *
42
+ * assert.deepStrictEqual(valueHistory, [42, undefined, 7]);
43
+ * ```
44
+ */
4
45
  const unwrapOptional = () =>
5
46
  // eslint-disable-next-line total-functions/no-unsafe-type-assertion
6
47
  map(Optional.unwrap);
@@ -1 +1 @@
1
- {"version":3,"file":"unwrap-optional.mjs","sources":["../../../../src/core/predefined/operators/unwrap-optional.mts"],"sourcesContent":[null],"names":[],"mappings":";;;AAIO,MAAM,cAAc,GAAG;AAG5B;AACA,GAAG,CAAC,QAAQ,CAAC,MAA+C;;;;"}
1
+ {"version":3,"file":"unwrap-optional.mjs","sources":["../../../../src/core/predefined/operators/unwrap-optional.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAKA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCG;AACI,MAAM,cAAc,GAAG;AAG5B;AACA,GAAG,CAAC,QAAQ,CAAC,MAA+C;;;;"}