ts-data-forge 14.6.1 → 14.6.3

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 (420) hide show
  1. package/dist/array/impl/array-utils-creation.mjs +126 -26
  2. package/dist/array/impl/array-utils-creation.mjs.map +1 -1
  3. package/dist/array/impl/array-utils-element-access.mjs +63 -30
  4. package/dist/array/impl/array-utils-element-access.mjs.map +1 -1
  5. package/dist/array/impl/array-utils-iterators.mjs +68 -52
  6. package/dist/array/impl/array-utils-iterators.mjs.map +1 -1
  7. package/dist/array/impl/array-utils-length-bounded-array-cast.mjs +109 -73
  8. package/dist/array/impl/array-utils-length-bounded-array-cast.mjs.map +1 -1
  9. package/dist/array/impl/array-utils-length-bounded-array-guard.mjs +70 -32
  10. package/dist/array/impl/array-utils-length-bounded-array-guard.mjs.map +1 -1
  11. package/dist/array/impl/array-utils-length-bounded-tuple-cast.mjs +102 -73
  12. package/dist/array/impl/array-utils-length-bounded-tuple-cast.mjs.map +1 -1
  13. package/dist/array/impl/array-utils-length-bounded-tuple-guard.mjs +77 -33
  14. package/dist/array/impl/array-utils-length-bounded-tuple-guard.mjs.map +1 -1
  15. package/dist/array/impl/array-utils-modification.mjs +75 -122
  16. package/dist/array/impl/array-utils-modification.mjs.map +1 -1
  17. package/dist/array/impl/array-utils-reducing-value.mjs +99 -149
  18. package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
  19. package/dist/array/impl/array-utils-search.mjs +112 -136
  20. package/dist/array/impl/array-utils-search.mjs.map +1 -1
  21. package/dist/array/impl/array-utils-set-op.mjs +146 -38
  22. package/dist/array/impl/array-utils-set-op.mjs.map +1 -1
  23. package/dist/array/impl/array-utils-size.mjs +10 -8
  24. package/dist/array/impl/array-utils-size.mjs.map +1 -1
  25. package/dist/array/impl/array-utils-slice-clamped.mjs +13 -50
  26. package/dist/array/impl/array-utils-slice-clamped.mjs.map +1 -1
  27. package/dist/array/impl/array-utils-slicing.mjs +92 -76
  28. package/dist/array/impl/array-utils-slicing.mjs.map +1 -1
  29. package/dist/array/impl/array-utils-transformation.mjs +291 -199
  30. package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
  31. package/dist/array/impl/array-utils-validation.mjs +53 -55
  32. package/dist/array/impl/array-utils-validation.mjs.map +1 -1
  33. package/dist/array/impl/index.mjs +17 -17
  34. package/dist/array/impl/index.mjs.map +1 -1
  35. package/dist/array/index.mjs +2 -3
  36. package/dist/array/index.mjs.map +1 -1
  37. package/dist/collections/imap-mapped.mjs +335 -292
  38. package/dist/collections/imap-mapped.mjs.map +1 -1
  39. package/dist/collections/imap.mjs +280 -239
  40. package/dist/collections/imap.mjs.map +1 -1
  41. package/dist/collections/index.mjs +7 -7
  42. package/dist/collections/index.mjs.map +1 -1
  43. package/dist/collections/iset-mapped.mjs +448 -265
  44. package/dist/collections/iset-mapped.mjs.map +1 -1
  45. package/dist/collections/iset.mjs +328 -201
  46. package/dist/collections/iset.mjs.map +1 -1
  47. package/dist/collections/queue.mjs +181 -149
  48. package/dist/collections/queue.mjs.map +1 -1
  49. package/dist/collections/stack.mjs +167 -138
  50. package/dist/collections/stack.mjs.map +1 -1
  51. package/dist/entry-point.mjs +4 -77
  52. package/dist/entry-point.mjs.map +1 -1
  53. package/dist/expect-type.mjs +69 -3
  54. package/dist/expect-type.mjs.map +1 -1
  55. package/dist/functional/async-result/async-result.mjs +2 -3
  56. package/dist/functional/async-result/async-result.mjs.map +1 -1
  57. package/dist/functional/async-result/impl/async-result-flat-map.mjs +18 -20
  58. package/dist/functional/async-result/impl/async-result-flat-map.mjs.map +1 -1
  59. package/dist/functional/async-result/impl/async-result-from-promise.mjs +9 -10
  60. package/dist/functional/async-result/impl/async-result-from-promise.mjs.map +1 -1
  61. package/dist/functional/async-result/impl/async-result-from-throwable.mjs +12 -14
  62. package/dist/functional/async-result/impl/async-result-from-throwable.mjs.map +1 -1
  63. package/dist/functional/async-result/impl/async-result-map-err.mjs +15 -18
  64. package/dist/functional/async-result/impl/async-result-map-err.mjs.map +1 -1
  65. package/dist/functional/async-result/impl/async-result-map.mjs +15 -18
  66. package/dist/functional/async-result/impl/async-result-map.mjs.map +1 -1
  67. package/dist/functional/async-result/impl/async-result-unwrap-or.mjs +35 -8
  68. package/dist/functional/async-result/impl/async-result-unwrap-or.mjs.map +1 -1
  69. package/dist/functional/async-result/impl/index.mjs +8 -7
  70. package/dist/functional/async-result/impl/index.mjs.map +1 -1
  71. package/dist/functional/async-result/impl/types.mjs +2 -2
  72. package/dist/functional/async-result/impl/types.mjs.map +1 -1
  73. package/dist/functional/async-result/index.mjs +2 -3
  74. package/dist/functional/async-result/index.mjs.map +1 -1
  75. package/dist/functional/index.mjs +7 -11
  76. package/dist/functional/index.mjs.map +1 -1
  77. package/dist/functional/match.mjs +27 -13
  78. package/dist/functional/match.mjs.map +1 -1
  79. package/dist/functional/optional/impl/index.mjs +19 -18
  80. package/dist/functional/optional/impl/index.mjs.map +1 -1
  81. package/dist/functional/optional/impl/optional-expect-to-be.mjs +15 -17
  82. package/dist/functional/optional/impl/optional-expect-to-be.mjs.map +1 -1
  83. package/dist/functional/optional/impl/optional-filter.mjs +16 -18
  84. package/dist/functional/optional/impl/optional-filter.mjs.map +1 -1
  85. package/dist/functional/optional/impl/optional-flat-map.mjs +12 -14
  86. package/dist/functional/optional/impl/optional-flat-map.mjs.map +1 -1
  87. package/dist/functional/optional/impl/optional-from-nullable.mjs +24 -3
  88. package/dist/functional/optional/impl/optional-from-nullable.mjs.map +1 -1
  89. package/dist/functional/optional/impl/optional-is-none.mjs +19 -3
  90. package/dist/functional/optional/impl/optional-is-none.mjs.map +1 -1
  91. package/dist/functional/optional/impl/optional-is-optional.mjs +24 -6
  92. package/dist/functional/optional/impl/optional-is-optional.mjs.map +1 -1
  93. package/dist/functional/optional/impl/optional-is-some.mjs +20 -3
  94. package/dist/functional/optional/impl/optional-is-some.mjs.map +1 -1
  95. package/dist/functional/optional/impl/optional-map.mjs +15 -17
  96. package/dist/functional/optional/impl/optional-map.mjs.map +1 -1
  97. package/dist/functional/optional/impl/optional-match.mjs +15 -17
  98. package/dist/functional/optional/impl/optional-match.mjs.map +1 -1
  99. package/dist/functional/optional/impl/optional-none.mjs +16 -3
  100. package/dist/functional/optional/impl/optional-none.mjs.map +1 -1
  101. package/dist/functional/optional/impl/optional-or-else.mjs +12 -14
  102. package/dist/functional/optional/impl/optional-or-else.mjs.map +1 -1
  103. package/dist/functional/optional/impl/optional-some.mjs +22 -6
  104. package/dist/functional/optional/impl/optional-some.mjs.map +1 -1
  105. package/dist/functional/optional/impl/optional-to-nullable.mjs +26 -3
  106. package/dist/functional/optional/impl/optional-to-nullable.mjs.map +1 -1
  107. package/dist/functional/optional/impl/optional-unwrap-or.mjs +11 -13
  108. package/dist/functional/optional/impl/optional-unwrap-or.mjs.map +1 -1
  109. package/dist/functional/optional/impl/optional-unwrap-throw.mjs +33 -8
  110. package/dist/functional/optional/impl/optional-unwrap-throw.mjs.map +1 -1
  111. package/dist/functional/optional/impl/optional-unwrap.mjs +6 -9
  112. package/dist/functional/optional/impl/optional-unwrap.mjs.map +1 -1
  113. package/dist/functional/optional/impl/optional-zip.mjs +34 -3
  114. package/dist/functional/optional/impl/optional-zip.mjs.map +1 -1
  115. package/dist/functional/optional/impl/tag.mjs +3 -4
  116. package/dist/functional/optional/impl/tag.mjs.map +1 -1
  117. package/dist/functional/optional/impl/types.mjs +2 -2
  118. package/dist/functional/optional/impl/types.mjs.map +1 -1
  119. package/dist/functional/optional/index.mjs +2 -3
  120. package/dist/functional/optional/index.mjs.map +1 -1
  121. package/dist/functional/optional/optional.mjs +2 -3
  122. package/dist/functional/optional/optional.mjs.map +1 -1
  123. package/dist/functional/pipe.mjs +42 -14
  124. package/dist/functional/pipe.mjs.map +1 -1
  125. package/dist/functional/result/impl/index.mjs +28 -27
  126. package/dist/functional/result/impl/index.mjs.map +1 -1
  127. package/dist/functional/result/impl/result-err.mjs +28 -6
  128. package/dist/functional/result/impl/result-err.mjs.map +1 -1
  129. package/dist/functional/result/impl/result-expect-to-be.mjs +16 -17
  130. package/dist/functional/result/impl/result-expect-to-be.mjs.map +1 -1
  131. package/dist/functional/result/impl/result-flat-map.mjs +17 -20
  132. package/dist/functional/result/impl/result-flat-map.mjs.map +1 -1
  133. package/dist/functional/result/impl/result-fold.mjs +17 -20
  134. package/dist/functional/result/impl/result-fold.mjs.map +1 -1
  135. package/dist/functional/result/impl/result-from-optional.mjs +16 -19
  136. package/dist/functional/result/impl/result-from-optional.mjs.map +1 -1
  137. package/dist/functional/result/impl/result-from-promise.mjs +35 -6
  138. package/dist/functional/result/impl/result-from-promise.mjs.map +1 -1
  139. package/dist/functional/result/impl/result-from-throwable.mjs +40 -13
  140. package/dist/functional/result/impl/result-from-throwable.mjs.map +1 -1
  141. package/dist/functional/result/impl/result-is-err.mjs +19 -3
  142. package/dist/functional/result/impl/result-is-err.mjs.map +1 -1
  143. package/dist/functional/result/impl/result-is-ok.mjs +19 -3
  144. package/dist/functional/result/impl/result-is-ok.mjs.map +1 -1
  145. package/dist/functional/result/impl/result-is-result.mjs +23 -5
  146. package/dist/functional/result/impl/result-is-result.mjs.map +1 -1
  147. package/dist/functional/result/impl/result-map-err.mjs +17 -20
  148. package/dist/functional/result/impl/result-map-err.mjs.map +1 -1
  149. package/dist/functional/result/impl/result-map.mjs +17 -20
  150. package/dist/functional/result/impl/result-map.mjs.map +1 -1
  151. package/dist/functional/result/impl/result-match.mjs +16 -20
  152. package/dist/functional/result/impl/result-match.mjs.map +1 -1
  153. package/dist/functional/result/impl/result-ok.mjs +28 -6
  154. package/dist/functional/result/impl/result-ok.mjs.map +1 -1
  155. package/dist/functional/result/impl/result-or-else.mjs +13 -14
  156. package/dist/functional/result/impl/result-or-else.mjs.map +1 -1
  157. package/dist/functional/result/impl/result-safe-try.mjs +32 -21
  158. package/dist/functional/result/impl/result-safe-try.mjs.map +1 -1
  159. package/dist/functional/result/impl/result-safe-unwrap.mjs +39 -11
  160. package/dist/functional/result/impl/result-safe-unwrap.mjs.map +1 -1
  161. package/dist/functional/result/impl/result-swap.mjs +21 -6
  162. package/dist/functional/result/impl/result-swap.mjs.map +1 -1
  163. package/dist/functional/result/impl/result-to-optional.mjs +28 -5
  164. package/dist/functional/result/impl/result-to-optional.mjs.map +1 -1
  165. package/dist/functional/result/impl/result-unwrap-err-or.mjs +12 -13
  166. package/dist/functional/result/impl/result-unwrap-err-or.mjs.map +1 -1
  167. package/dist/functional/result/impl/result-unwrap-err-throw.mjs +42 -19
  168. package/dist/functional/result/impl/result-unwrap-err-throw.mjs.map +1 -1
  169. package/dist/functional/result/impl/result-unwrap-err.mjs +31 -6
  170. package/dist/functional/result/impl/result-unwrap-err.mjs.map +1 -1
  171. package/dist/functional/result/impl/result-unwrap-ok-or.mjs +12 -13
  172. package/dist/functional/result/impl/result-unwrap-ok-or.mjs.map +1 -1
  173. package/dist/functional/result/impl/result-unwrap-ok.mjs +6 -9
  174. package/dist/functional/result/impl/result-unwrap-ok.mjs.map +1 -1
  175. package/dist/functional/result/impl/result-unwrap-throw.mjs +37 -10
  176. package/dist/functional/result/impl/result-unwrap-throw.mjs.map +1 -1
  177. package/dist/functional/result/impl/result-zip.mjs +33 -3
  178. package/dist/functional/result/impl/result-zip.mjs.map +1 -1
  179. package/dist/functional/result/impl/tag.mjs +3 -4
  180. package/dist/functional/result/impl/tag.mjs.map +1 -1
  181. package/dist/functional/result/impl/types.mjs +2 -2
  182. package/dist/functional/result/impl/types.mjs.map +1 -1
  183. package/dist/functional/result/index.mjs +2 -3
  184. package/dist/functional/result/index.mjs.map +1 -1
  185. package/dist/functional/result/result.mjs +2 -3
  186. package/dist/functional/result/result.mjs.map +1 -1
  187. package/dist/functional/ternary-result/impl/index.mjs +29 -28
  188. package/dist/functional/ternary-result/impl/index.mjs.map +1 -1
  189. package/dist/functional/ternary-result/impl/tag.mjs +5 -5
  190. package/dist/functional/ternary-result/impl/tag.mjs.map +1 -1
  191. package/dist/functional/ternary-result/impl/ternary-result-err.mjs +16 -6
  192. package/dist/functional/ternary-result/impl/ternary-result-err.mjs.map +1 -1
  193. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.mjs +15 -18
  194. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.mjs.map +1 -1
  195. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs +29 -33
  196. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs.map +1 -1
  197. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs +24 -26
  198. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs.map +1 -1
  199. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs +19 -6
  200. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs.map +1 -1
  201. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs +27 -12
  202. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs.map +1 -1
  203. package/dist/functional/ternary-result/impl/ternary-result-is-err.mjs +17 -3
  204. package/dist/functional/ternary-result/impl/ternary-result-is-err.mjs.map +1 -1
  205. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs +19 -3
  206. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs.map +1 -1
  207. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs +26 -6
  208. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs.map +1 -1
  209. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs +18 -3
  210. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs.map +1 -1
  211. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs +17 -18
  212. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs.map +1 -1
  213. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs +20 -23
  214. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs.map +1 -1
  215. package/dist/functional/ternary-result/impl/ternary-result-map.mjs +24 -26
  216. package/dist/functional/ternary-result/impl/ternary-result-map.mjs.map +1 -1
  217. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs +17 -6
  218. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs.map +1 -1
  219. package/dist/functional/ternary-result/impl/ternary-result-or-else.mjs +11 -14
  220. package/dist/functional/ternary-result/impl/ternary-result-or-else.mjs.map +1 -1
  221. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs +22 -8
  222. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs.map +1 -1
  223. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.mjs +11 -14
  224. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.mjs.map +1 -1
  225. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs +29 -18
  226. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs.map +1 -1
  227. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs +18 -6
  228. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs.map +1 -1
  229. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mjs +11 -14
  230. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mjs.map +1 -1
  231. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs +6 -8
  232. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs.map +1 -1
  233. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs +31 -23
  234. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs.map +1 -1
  235. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mjs +11 -14
  236. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mjs.map +1 -1
  237. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs +26 -16
  238. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs.map +1 -1
  239. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs +18 -6
  240. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs.map +1 -1
  241. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs +20 -7
  242. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs.map +1 -1
  243. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs +46 -18
  244. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs.map +1 -1
  245. package/dist/functional/ternary-result/impl/types.mjs +2 -2
  246. package/dist/functional/ternary-result/impl/types.mjs.map +1 -1
  247. package/dist/functional/ternary-result/impl/variant-name.mjs +11 -13
  248. package/dist/functional/ternary-result/impl/variant-name.mjs.map +1 -1
  249. package/dist/functional/ternary-result/index.mjs +2 -3
  250. package/dist/functional/ternary-result/index.mjs.map +1 -1
  251. package/dist/functional/ternary-result/ternary-result.mjs +2 -3
  252. package/dist/functional/ternary-result/ternary-result.mjs.map +1 -1
  253. package/dist/guard/has-key.mjs +42 -3
  254. package/dist/guard/has-key.mjs.map +1 -1
  255. package/dist/guard/index.mjs +8 -8
  256. package/dist/guard/index.mjs.map +1 -1
  257. package/dist/guard/is-non-empty-string.mjs +38 -3
  258. package/dist/guard/is-non-empty-string.mjs.map +1 -1
  259. package/dist/guard/is-non-null-object.mjs +35 -3
  260. package/dist/guard/is-non-null-object.mjs.map +1 -1
  261. package/dist/guard/is-primitive.mjs +46 -15
  262. package/dist/guard/is-primitive.mjs.map +1 -1
  263. package/dist/guard/is-record.mjs +87 -4
  264. package/dist/guard/is-record.mjs.map +1 -1
  265. package/dist/guard/is-type.mjs +404 -19
  266. package/dist/guard/is-type.mjs.map +1 -1
  267. package/dist/guard/key-is-in.mjs +41 -3
  268. package/dist/guard/key-is-in.mjs.map +1 -1
  269. package/dist/index.mjs +12 -65
  270. package/dist/index.mjs.map +1 -1
  271. package/dist/iterator/index.mjs +2 -2
  272. package/dist/iterator/index.mjs.map +1 -1
  273. package/dist/iterator/range.mjs +18 -56
  274. package/dist/iterator/range.mjs.map +1 -1
  275. package/dist/json/index.mjs +2 -2
  276. package/dist/json/index.mjs.map +1 -1
  277. package/dist/json/json.mjs +346 -105
  278. package/dist/json/json.mjs.map +1 -1
  279. package/dist/number/branded-types/finite-number.mjs +148 -137
  280. package/dist/number/branded-types/finite-number.mjs.map +1 -1
  281. package/dist/number/branded-types/index.mjs +33 -33
  282. package/dist/number/branded-types/index.mjs.map +1 -1
  283. package/dist/number/branded-types/int.mjs +245 -209
  284. package/dist/number/branded-types/int.mjs.map +1 -1
  285. package/dist/number/branded-types/int16.mjs +141 -131
  286. package/dist/number/branded-types/int16.mjs.map +1 -1
  287. package/dist/number/branded-types/int32.mjs +141 -131
  288. package/dist/number/branded-types/int32.mjs.map +1 -1
  289. package/dist/number/branded-types/negative-finite-number.mjs +155 -149
  290. package/dist/number/branded-types/negative-finite-number.mjs.map +1 -1
  291. package/dist/number/branded-types/negative-int.mjs +125 -110
  292. package/dist/number/branded-types/negative-int.mjs.map +1 -1
  293. package/dist/number/branded-types/negative-safe-int.mjs +126 -115
  294. package/dist/number/branded-types/negative-safe-int.mjs.map +1 -1
  295. package/dist/number/branded-types/non-negative-finite-number.mjs +164 -154
  296. package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
  297. package/dist/number/branded-types/non-negative-int16.mjs +137 -125
  298. package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
  299. package/dist/number/branded-types/non-negative-int32.mjs +137 -125
  300. package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
  301. package/dist/number/branded-types/non-positive-finite-number.mjs +143 -139
  302. package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -1
  303. package/dist/number/branded-types/non-positive-int.mjs +116 -99
  304. package/dist/number/branded-types/non-positive-int.mjs.map +1 -1
  305. package/dist/number/branded-types/non-positive-safe-int.mjs +118 -107
  306. package/dist/number/branded-types/non-positive-safe-int.mjs.map +1 -1
  307. package/dist/number/branded-types/non-zero-finite-number.mjs +144 -129
  308. package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
  309. package/dist/number/branded-types/non-zero-int.mjs +102 -82
  310. package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
  311. package/dist/number/branded-types/non-zero-int16.mjs +118 -105
  312. package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
  313. package/dist/number/branded-types/non-zero-int32.mjs +118 -105
  314. package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
  315. package/dist/number/branded-types/non-zero-safe-int.mjs +121 -107
  316. package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
  317. package/dist/number/branded-types/non-zero-uint16.mjs +118 -104
  318. package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
  319. package/dist/number/branded-types/non-zero-uint32.mjs +118 -104
  320. package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
  321. package/dist/number/branded-types/positive-finite-number.mjs +167 -160
  322. package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
  323. package/dist/number/branded-types/positive-int.mjs +260 -224
  324. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  325. package/dist/number/branded-types/positive-int16.mjs +134 -122
  326. package/dist/number/branded-types/positive-int16.mjs.map +1 -1
  327. package/dist/number/branded-types/positive-int32.mjs +134 -122
  328. package/dist/number/branded-types/positive-int32.mjs.map +1 -1
  329. package/dist/number/branded-types/positive-safe-int.mjs +291 -257
  330. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  331. package/dist/number/branded-types/positive-uint16.mjs +134 -122
  332. package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
  333. package/dist/number/branded-types/positive-uint32.mjs +134 -122
  334. package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
  335. package/dist/number/branded-types/safe-int.mjs +283 -254
  336. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  337. package/dist/number/branded-types/safe-uint.mjs +134 -123
  338. package/dist/number/branded-types/safe-uint.mjs.map +1 -1
  339. package/dist/number/branded-types/uint.mjs +248 -211
  340. package/dist/number/branded-types/uint.mjs.map +1 -1
  341. package/dist/number/branded-types/uint16.mjs +132 -121
  342. package/dist/number/branded-types/uint16.mjs.map +1 -1
  343. package/dist/number/branded-types/uint32.mjs +132 -121
  344. package/dist/number/branded-types/uint32.mjs.map +1 -1
  345. package/dist/number/enum/index.mjs +3 -3
  346. package/dist/number/enum/index.mjs.map +1 -1
  347. package/dist/number/enum/int8.mjs +146 -131
  348. package/dist/number/enum/int8.mjs.map +1 -1
  349. package/dist/number/enum/uint8.mjs +133 -119
  350. package/dist/number/enum/uint8.mjs.map +1 -1
  351. package/dist/number/index.mjs +6 -37
  352. package/dist/number/index.mjs.map +1 -1
  353. package/dist/number/num-arithmetic-types.mjs +42 -1
  354. package/dist/number/num-arithmetic-types.mjs.map +1 -1
  355. package/dist/number/num.mjs +549 -91
  356. package/dist/number/num.mjs.map +1 -1
  357. package/dist/number/refined-number-utils.mjs +294 -133
  358. package/dist/number/refined-number-utils.mjs.map +1 -1
  359. package/dist/object/index.mjs +2 -2
  360. package/dist/object/index.mjs.map +1 -1
  361. package/dist/object/object.mjs +356 -203
  362. package/dist/object/object.mjs.map +1 -1
  363. package/dist/others/cast-mutable.mjs +38 -11
  364. package/dist/others/cast-mutable.mjs.map +1 -1
  365. package/dist/others/cast-readonly.mjs +37 -11
  366. package/dist/others/cast-readonly.mjs.map +1 -1
  367. package/dist/others/debounce-function.mjs +22 -11
  368. package/dist/others/debounce-function.mjs.map +1 -1
  369. package/dist/others/fast-deep-equal.mjs +70 -51
  370. package/dist/others/fast-deep-equal.mjs.map +1 -1
  371. package/dist/others/if-then.mjs +31 -4
  372. package/dist/others/if-then.mjs.map +1 -1
  373. package/dist/others/index.mjs +10 -10
  374. package/dist/others/index.mjs.map +1 -1
  375. package/dist/others/map-nullable.mjs +11 -13
  376. package/dist/others/map-nullable.mjs.map +1 -1
  377. package/dist/others/memoize-function.mjs +14 -16
  378. package/dist/others/memoize-function.mjs.map +1 -1
  379. package/dist/others/tuple.mjs +51 -3
  380. package/dist/others/tuple.mjs.map +1 -1
  381. package/dist/others/unknown-to-string.mjs +91 -47
  382. package/dist/others/unknown-to-string.mjs.map +1 -1
  383. package/dist/promise/index.mjs +2 -2
  384. package/dist/promise/index.mjs.map +1 -1
  385. package/dist/promise/promise.mjs +49 -8
  386. package/dist/promise/promise.mjs.map +1 -1
  387. package/dist/string/index.mjs +2 -2
  388. package/dist/string/index.mjs.map +1 -1
  389. package/dist/string/str.mjs +250 -83
  390. package/dist/string/str.mjs.map +1 -1
  391. package/dist/types.mjs +2 -1
  392. package/dist/types.mjs.map +1 -1
  393. package/package.json +6 -7
  394. package/src/guard/is-type.test.mts +2 -2
  395. package/src/number/branded-types/finite-number.test.mts +1 -1
  396. package/src/number/branded-types/int.test.mts +1 -1
  397. package/src/number/branded-types/int16.test.mts +1 -1
  398. package/src/number/branded-types/int32.test.mts +1 -1
  399. package/src/number/branded-types/non-negative-finite-number.test.mts +1 -1
  400. package/src/number/branded-types/non-negative-int16.test.mts +1 -1
  401. package/src/number/branded-types/non-negative-int32.test.mts +1 -1
  402. package/src/number/branded-types/non-zero-finite-number.test.mts +1 -1
  403. package/src/number/branded-types/non-zero-int.test.mts +1 -1
  404. package/src/number/branded-types/non-zero-int16.test.mts +1 -1
  405. package/src/number/branded-types/non-zero-int32.test.mts +1 -1
  406. package/src/number/branded-types/non-zero-safe-int.test.mts +1 -1
  407. package/src/number/branded-types/non-zero-uint16.test.mts +1 -1
  408. package/src/number/branded-types/non-zero-uint32.test.mts +1 -1
  409. package/src/number/branded-types/positive-finite-number.test.mts +1 -1
  410. package/src/number/branded-types/positive-int.test.mts +1 -1
  411. package/src/number/branded-types/positive-int16.test.mts +1 -1
  412. package/src/number/branded-types/positive-int32.test.mts +1 -1
  413. package/src/number/branded-types/positive-safe-int.test.mts +1 -1
  414. package/src/number/branded-types/positive-uint16.test.mts +1 -1
  415. package/src/number/branded-types/positive-uint32.test.mts +1 -1
  416. package/src/number/branded-types/safe-int.test.mts +1 -1
  417. package/src/number/branded-types/safe-uint.test.mts +1 -1
  418. package/src/number/branded-types/uint.test.mts +1 -1
  419. package/src/number/branded-types/uint16.test.mts +1 -1
  420. package/src/number/branded-types/uint32.test.mts +1 -1
@@ -1,17 +1,45 @@
1
- import { isOptional } from './optional/impl/optional-is-optional.mjs';
2
- import { map } from './optional/impl/optional-map.mjs';
3
1
 
4
- const pipe = (a) => (
5
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
6
- {
2
+ import { Optional } from './optional/index.mjs';
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+ export const pipe = (a) =>
22
+
23
+ ({
7
24
  value: a,
8
25
  map: (fn) => pipe(fn(a)),
9
- mapNullable: (fn) => pipe(a == null ? void 0 : fn(a)),
10
- ...isOptional(a) ? {
11
- mapOptional: (fn) => pipe(map(a, fn))
12
- } : {}
13
- }
14
- );
15
-
16
- export { pipe };
17
- //# sourceMappingURL=pipe.mjs.map
26
+ mapNullable: (fn) => pipe(a == null ? undefined : fn(a)),
27
+ ...(Optional.isOptional(a)
28
+ ? {
29
+ mapOptional: (fn) => pipe(Optional.map(a, fn)),
30
+ }
31
+ : {}),
32
+ });
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+ //# sourceMappingURL=pipe.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipe.mjs","sources":["../../src/functional/pipe.mts"],"sourcesContent":["import { expectType } from '../expect-type.mjs';\nimport { Optional, type UnknownOptional } from './optional/index.mjs';\n\n/**\n * Creates a new pipe object that allows for chaining operations on a value.\n *\n * This function provides a fluent interface for applying transformations to\n * values, with intelligent method selection based on the input type:\n *\n * - For `Optional` values: Provides `mapOptional` for safe Optional\n * transformations\n * - For other values: Provides `mapNullable` for null-safe transformations\n * - All types get the basic `map` method for general transformations\n *\n * The pipe maintains type safety throughout the chain, automatically selecting\n * the appropriate overload based on the current value type.\n *\n * @template A The type of the initial value to wrap in a pipe.\n * @param a The initial value to wrap in a pipe.\n * @returns A pipe object with chaining methods appropriate for the value type.\n */\nexport const pipe = <const A,>(a: A): Pipe<A> =>\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n ({\n value: a,\n map: (fn) => pipe(fn(a)),\n mapNullable: (fn) => pipe(a == null ? undefined : fn(a)),\n\n ...(Optional.isOptional(a)\n ? {\n mapOptional: (fn) => pipe(Optional.map(a, fn)),\n }\n : {}),\n }) satisfies PipeImpl<A> as unknown as Pipe<A>;\n\n// `PipeBase<A>` is always present; the conditional only *adds* `mapOptional`\n// for Optional values. Two subtleties motivate this shape:\n//\n// 1. The check is `[A] extends [UnknownOptional]` (a 1-tuple), not the bare\n// `A extends UnknownOptional`. A bare check distributes over unions, so a\n// piped union value such as `Result<D, E> | undefined` would expand into\n// `Pipe<Ok<D>> | Pipe<Err<E>> | Pipe<undefined>`. Calling a chained method\n// on that union of pipe objects forces TypeScript to synthesize a merged\n// call signature, during which a branded member like `Ok<D>` is widened to\n// its constraint (`Ok<number>`) — losing the brand `D`.\n//\n// 2. `value: A` lives on `PipeBase<A>`, *outside* the conditional. If `value`\n// flowed through the conditional, then for a not-yet-resolved generic `A`\n// the deferred true branch narrows `A` to `A & UnknownOptional`, so\n// `.value` would surface as the noisy `(A & UnknownOptional) | A`. Keeping\n// it on the unconditional base yields a clean `A`.\nexport type Pipe<A> = PipeBase<A> &\n PipeMapNullable<A> &\n ([A] extends [UnknownOptional] ? PipeMapOptional<A> : unknown);\n\n// NOTE: 以下では 'typing when used with generics' test で型エラーが出る。\n// 詳細は documents/reports/pipe-typing.md の 「mapNullable を条件付きで含めるのがうまくいかない理由」を参照。\n// export type Pipe<A> = PipeBase<A> &\n// ([A] extends [UnknownOptional] ? PipeMapOptional<A> : unknown) &\n// ([undefined] extends [A] ? PipeMapNullable<A> : unknown) &\n// ([null] extends [A] ? PipeMapNullable<A> : unknown);\n\nexpectType<Optional<number>, UnknownOptional>('<=');\n\nexpectType<number | undefined, undefined>('>=');\n\nexpectType<keyof Pipe<number | undefined>, 'value' | 'map' | 'mapNullable'>(\n '=',\n);\n\nexpectType<\n keyof Pipe<Optional<number>>,\n 'value' | 'map' | 'mapNullable' | 'mapOptional'\n>('=');\n\nexpectType<\n keyof Pipe<Optional<number | undefined>>,\n 'value' | 'map' | 'mapNullable' | 'mapOptional'\n>('=');\n\nexpectType<\n keyof Pipe<Optional<number> | undefined>,\n 'value' | 'map' | 'mapNullable'\n>('=');\n\ntype PipeBase<A> = Readonly<{\n /** The current value being piped. */\n value: A;\n\n /**\n * Maps the current value to a new value using the provided function.\n *\n * @example\n *\n * ```ts\n * const result = pipe(2)\n * .map((value) => value * 3)\n * .map((value) => `value: ${value}`);\n *\n * assert.deepStrictEqual(result.value, 'value: 6');\n * ```\n *\n * @template B The type of the new value.\n * @param fn Function to transform the current value.\n * @returns A new pipe containing the transformed value.\n */\n map: <B>(fn: (a: A) => B) => Pipe<B>;\n}>;\n\ntype PipeMapNullable<A> = Readonly<{\n /**\n * Maps the current value only if it's not null or undefined. If the current\n * value is null/undefined, the transformation is skipped and undefined is\n * propagated through the pipe.\n *\n * @example\n *\n * ```ts\n * const result = pipe<string | undefined>('hello')\n * .mapNullable((value) => value.toUpperCase())\n * .mapNullable((value) => value.slice(0, 2));\n *\n * assert.deepStrictEqual(result.value, 'HE');\n *\n * const empty = pipe<string | undefined>(undefined).mapNullable((value) =>\n * value.toUpperCase(),\n * );\n *\n * assert.isTrue(empty.value === undefined);\n * ```\n *\n * @template B The type of the transformed value.\n * @param fn Function to transform the non-null value.\n * @returns A new pipe containing the transformed value or undefined.\n */\n mapNullable: <B>(fn: (a: NonNullable<A>) => B) => Pipe<B | undefined>;\n}>;\n\ntype PipeMapOptional<A extends UnknownOptional> = Readonly<{\n /**\n * Maps the value inside an Optional using Optional.map semantics. If the\n * Optional is None, the transformation is skipped and None is propagated.\n * If the Optional is Some, the transformation is applied to the inner\n * value.\n *\n * @example\n *\n * ```ts\n * const result = pipe(Optional.some(10))\n * .mapOptional((value) => value * 2)\n * .mapOptional((value) => value + 5);\n *\n * assert.deepStrictEqual(result.value, Optional.some(25));\n *\n * const empty = pipe(Optional.none as Optional<number>).mapOptional(\n * (value) => value * 2,\n * );\n *\n * assert.isTrue(Optional.isNone(empty.value));\n * ```\n *\n * @template B The type of the transformed inner value.\n * @param fn Function to transform the inner value of the Optional.\n * @returns A new pipe containing an Optional with the transformed value.\n */\n mapOptional: <B>(fn: (a: Optional.Unwrap<A>) => B) => Pipe<Optional<B>>;\n}>;\n\n/** @internal */\ntype Cast<T, U> = T & U;\n\n/** @internal */\ntype PipeImpl<A> = Readonly<{\n value: A;\n map: <B>(fn: (a: A) => B) => PipeImpl<B>;\n mapNullable?: <B>(fn: (a: NonNullable<A>) => B) => PipeImpl<B | undefined>;\n mapOptional?: <B>(\n fn: (a: Optional.Unwrap<Cast<A, UnknownOptional>>) => B,\n ) => PipeImpl<Optional<B>>;\n}>;\n"],"names":["Optional.isOptional","Optional.map"],"mappings":";;;AAqBO,MAAM,OAAO,CAAW,CAAA;AAAA;AAAA,EAE5B;AAAA,IACC,KAAA,EAAO,CAAA;AAAA,IACP,KAAK,CAAC,EAAA,KAAO,IAAA,CAAK,EAAA,CAAG,CAAC,CAAC,CAAA;AAAA,IACvB,WAAA,EAAa,CAAC,EAAA,KAAO,IAAA,CAAK,KAAK,IAAA,GAAO,MAAA,GAAY,EAAA,CAAG,CAAC,CAAC,CAAA;AAAA,IAEvD,GAAIA,UAAS,CAAW,CAAC,CAAA,GACrB;AAAA,MACE,WAAA,EAAa,CAAC,EAAA,KAAO,IAAA,CAAKC,GAAS,CAAI,CAAA,EAAG,EAAE,CAAC;AAAA,QAE/C;AAAC;AACP;;;;"}
1
+ {"version":3,"file":"pipe.mjs","sourceRoot":"","sources":["../../src/functional/pipe.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAwB,MAAM,sBAAsB,CAAC;AAEtE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAW,CAAI,EAAW,EAAE;AAC9C,oEAAoE;AACpE,CAAC;IACC,KAAK,EAAE,CAAC;IACR,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxB,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAExD,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC;YACE,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SAC/C;QACH,CAAC,CAAC,EAAE,CAAC;CACR,CAA6C,CAAC;AAsBjD,6DAA6D;AAC7D,gFAAgF;AAChF,sCAAsC;AACtC,qEAAqE;AACrE,+DAA+D;AAC/D,yDAAyD;AAEzD,UAAU,CAAoC,IAAI,CAAC,CAAC;AAEpD,UAAU,CAAgC,IAAI,CAAC,CAAC;AAEhD,UAAU,CACR,GAAG,CACJ,CAAC;AAEF,UAAU,CAGR,GAAG,CAAC,CAAC;AAEP,UAAU,CAGR,GAAG,CAAC,CAAC;AAEP,UAAU,CAGR,GAAG,CAAC,CAAC"}
@@ -1,27 +1,28 @@
1
- export { err } from './result-err.mjs';
2
- export { expectToBe } from './result-expect-to-be.mjs';
3
- export { flatMap } from './result-flat-map.mjs';
4
- export { fold } from './result-fold.mjs';
5
- export { fromOptional } from './result-from-optional.mjs';
6
- export { fromPromise } from './result-from-promise.mjs';
7
- export { fromThrowable } from './result-from-throwable.mjs';
8
- export { isErr } from './result-is-err.mjs';
9
- export { isOk } from './result-is-ok.mjs';
10
- export { isResult } from './result-is-result.mjs';
11
- export { mapErr } from './result-map-err.mjs';
12
- export { map } from './result-map.mjs';
13
- export { match } from './result-match.mjs';
14
- export { ok } from './result-ok.mjs';
15
- export { orElse } from './result-or-else.mjs';
16
- export { safeTry } from './result-safe-try.mjs';
17
- export { safeUnwrap } from './result-safe-unwrap.mjs';
18
- export { swap } from './result-swap.mjs';
19
- export { toOptional } from './result-to-optional.mjs';
20
- export { unwrapErrOr } from './result-unwrap-err-or.mjs';
21
- export { unwrapErrThrow } from './result-unwrap-err-throw.mjs';
22
- export { unwrapErr } from './result-unwrap-err.mjs';
23
- export { unwrapOkOr } from './result-unwrap-ok-or.mjs';
24
- export { unwrapOk } from './result-unwrap-ok.mjs';
25
- export { unwrapThrow } from './result-unwrap-throw.mjs';
26
- export { zip } from './result-zip.mjs';
27
- //# sourceMappingURL=index.mjs.map
1
+ export * from './result-err.mjs';
2
+ export * from './result-expect-to-be.mjs';
3
+ export * from './result-flat-map.mjs';
4
+ export * from './result-fold.mjs';
5
+ export * from './result-from-optional.mjs';
6
+ export * from './result-from-promise.mjs';
7
+ export * from './result-from-throwable.mjs';
8
+ export * from './result-is-err.mjs';
9
+ export * from './result-is-ok.mjs';
10
+ export * from './result-is-result.mjs';
11
+ export * from './result-map-err.mjs';
12
+ export * from './result-map.mjs';
13
+ export * from './result-match.mjs';
14
+ export * from './result-ok.mjs';
15
+ export * from './result-or-else.mjs';
16
+ export * from './result-safe-try.mjs';
17
+ export * from './result-safe-unwrap.mjs';
18
+ export * from './result-swap.mjs';
19
+ export * from './result-to-optional.mjs';
20
+ export * from './result-unwrap-err-or.mjs';
21
+ export * from './result-unwrap-err-throw.mjs';
22
+ export * from './result-unwrap-err.mjs';
23
+ export * from './result-unwrap-ok-or.mjs';
24
+ export * from './result-unwrap-ok.mjs';
25
+ export * from './result-unwrap-throw.mjs';
26
+ export * from './result-zip.mjs';
27
+ export * from './types.mjs';
28
+ //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../../src/functional/result/impl/index.mts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC"}
@@ -1,9 +1,31 @@
1
1
  import { ErrTypeTagName } from './tag.mjs';
2
2
 
3
- const err = (value) => ({
4
- $$tag: ErrTypeTagName,
5
- value
6
- });
7
3
 
8
- export { err };
9
- //# sourceMappingURL=result-err.mjs.map
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+ export const err = (value) => ({
28
+ $$tag: ErrTypeTagName,
29
+ value,
30
+ });
31
+ //# sourceMappingURL=result-err.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"result-err.mjs","sources":["../../../../src/functional/result/impl/result-err.mts"],"sourcesContent":["import { type Err } from '../../../types.mjs';\nimport { ErrTypeTagName } from './tag.mjs';\n\n/**\n * Creates a `Result.Err` containing the given error value.\n *\n * Use this constructor when an operation fails and you want to wrap the error\n * information in a Result type for consistent error handling.\n *\n * @example\n *\n * ```ts\n * const success = Result.ok({ id: 1 });\n *\n * const failure = Result.err(new Error('missing data'));\n *\n * assert.deepStrictEqual(success, {\n * $$tag: 'ts-data-forge::Result.ok',\n * value: { id: 1 },\n * });\n *\n * assert.isTrue(Result.isErr(failure));\n * ```\n *\n * @template E The type of the error value.\n * @param value The error value.\n * @returns A `Result.Err<E>` containing the value.\n */\nexport const err = <const E,>(value: E): Err<E> =>\n ({\n $$tag: ErrTypeTagName,\n value,\n }) as const;\n"],"names":[],"mappings":";;AA4BO,MAAM,GAAA,GAAM,CAAW,KAAA,MAC3B;AAAA,EACC,KAAA,EAAO,cAAA;AAAA,EACP;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"result-err.mjs","sourceRoot":"","sources":["../../../../src/functional/result/impl/result-err.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAW,KAAQ,EAAU,EAAE,CAChD,CAAC;IACC,KAAK,EAAE,cAAc;IACrB,KAAK;CACN,CAAU,CAAC"}
@@ -1,24 +1,23 @@
1
1
  import { isOk } from './result-is-ok.mjs';
2
2
  import { unwrapOk } from './result-unwrap-ok.mjs';
3
+ export function expectToBe(...args) {
4
+ switch (args.length) {
5
+ case 2: {
3
6
 
4
- function expectToBe(...args) {
5
- switch (args.length) {
6
- case 2: {
7
- const [result, message] = args;
8
- return expectToBeImpl(result, message);
9
- }
10
- case 1: {
11
- const [message] = args;
12
- return (result) => expectToBeImpl(result, message);
7
+ const [result, message] = args;
8
+ return expectToBeImpl(result, message);
9
+ }
10
+ case 1: {
11
+
12
+ const [message] = args;
13
+ return (result) => expectToBeImpl(result, message);
14
+ }
13
15
  }
14
- }
15
16
  }
16
17
  const expectToBeImpl = (result, message) => {
17
- if (isOk(result)) {
18
- return unwrapOk(result);
19
- }
20
- throw new Error(message);
18
+ if (isOk(result)) {
19
+ return unwrapOk(result);
20
+ }
21
+ throw new Error(message);
21
22
  };
22
-
23
- export { expectToBe };
24
- //# sourceMappingURL=result-expect-to-be.mjs.map
23
+ //# sourceMappingURL=result-expect-to-be.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"result-expect-to-be.mjs","sources":["../../../../src/functional/result/impl/result-expect-to-be.mts"],"sourcesContent":["import { type UnknownResult } from '../result.mjs';\nimport { isOk } from './result-is-ok.mjs';\nimport { unwrapOk } from './result-unwrap-ok.mjs';\nimport { type UnwrapOk } from './types.mjs';\n\n/**\n * Unwraps a `Result`, returning the success value or throwing an error with\n * the provided message.\n *\n * @example\n *\n * ```ts\n * const okValue = Result.ok('data');\n *\n * assert.isTrue(Result.expectToBe(okValue, 'should have value') === 'data');\n *\n * const expectResult = Result.expectToBe('missing result');\n *\n * const throwTest = (): void => {\n * expectResult(Result.err('boom'));\n * };\n *\n * assert.throws(throwTest, /missing result/u);\n *\n * assert.isTrue(expectResult(Result.ok('value')) === 'value');\n * ```\n *\n * @template R The `UnknownResult` type to unwrap.\n * @param result The `Result` to unwrap.\n * @param message The error message to throw if the `Result` is `Result.Err`.\n * @returns The success value if `Result.Ok`.\n * @throws Error with the provided message if the `Result` is `Result.Err`.\n */\nexport function expectToBe<R extends UnknownResult>(\n result: R,\n message: string,\n): UnwrapOk<R>;\n\n// Curried version\nexport function expectToBe(\n message: string,\n): <R extends UnknownResult>(result: R) => UnwrapOk<R>;\n\nexport function expectToBe<R extends UnknownResult>(\n ...args: readonly [result: R, message: string] | readonly [message: string]\n): UnwrapOk<R> | ((result: R) => UnwrapOk<R>) {\n switch (args.length) {\n case 2: {\n // Direct version: first argument is result\n const [result, message] = args;\n\n return expectToBeImpl(result, message);\n }\n\n case 1: {\n // Curried version: first argument is message\n const [message] = args;\n\n return (result: R): UnwrapOk<R> => expectToBeImpl(result, message);\n }\n }\n}\n\nconst expectToBeImpl = <R extends UnknownResult>(\n result: R,\n message: string,\n): UnwrapOk<R> => {\n if (isOk(result)) {\n return unwrapOk(result);\n }\n\n throw new Error(message);\n};\n"],"names":[],"mappings":";;;AA2CO,SAAS,cACX,IAAA,EACyC;AAC5C,EAAA,QAAQ,KAAK,MAAA;AAAQ,IACnB,KAAK,CAAA,EAAG;AAEN,MAAA,MAAM,CAAC,MAAA,EAAQ,OAAO,CAAA,GAAI,IAAA;AAE1B,MAAA,OAAO,cAAA,CAAe,QAAQ,OAAO,CAAA;AAAA,IACvC;AAAA,IAEA,KAAK,CAAA,EAAG;AAEN,MAAA,MAAM,CAAC,OAAO,CAAA,GAAI,IAAA;AAElB,MAAA,OAAO,CAAC,MAAA,KAA2B,cAAA,CAAe,MAAA,EAAQ,OAAO,CAAA;AAAA,IACnE;AAAA;AAEJ;AAEA,MAAM,cAAA,GAAiB,CACrB,MAAA,EACA,OAAA,KACgB;AAChB,EAAA,IAAI,IAAA,CAAK,MAAM,CAAA,EAAG;AAChB,IAAA,OAAO,SAAS,MAAM,CAAA;AAAA,EACxB;AAEA,EAAA,MAAM,IAAI,MAAM,OAAO,CAAA;AACzB,CAAA;;;;"}
1
+ {"version":3,"file":"result-expect-to-be.mjs","sourceRoot":"","sources":["../../../../src/functional/result/impl/result-expect-to-be.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAyClD,MAAM,UAAU,UAAU,CACxB,GAAG,IAAwE;IAE3E,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,EAAE,CAAC;YACP,2CAA2C;YAC3C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;YAE/B,OAAO,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;QAED,KAAK,CAAC,EAAE,CAAC;YACP,6CAA6C;YAC7C,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;YAEvB,OAAO,CAAC,MAAS,EAAe,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,cAAc,GAAG,CACrB,MAAS,EACT,OAAe,EACF,EAAE;IACf,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACjB,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC,CAAC"}
@@ -1,24 +1,21 @@
1
1
  import { isErr } from './result-is-err.mjs';
2
+ export function flatMap(...args) {
3
+ switch (args.length) {
4
+ case 2: {
2
5
 
3
- function flatMap(...args) {
4
- switch (args.length) {
5
- case 2: {
6
- const [result, flatMapFn] = args;
7
- return flatMapImpl(result, flatMapFn);
8
- }
9
- case 1: {
10
- const [flatMapFn] = args;
11
- return (result) => flatMapImpl(result, flatMapFn);
6
+ const [result, flatMapFn] = args;
7
+ return flatMapImpl(result, flatMapFn);
8
+ }
9
+ case 1: {
10
+
11
+ const [flatMapFn] = args;
12
+ return (result) => flatMapImpl(result, flatMapFn);
13
+ }
12
14
  }
13
- }
14
15
  }
15
- const flatMapImpl = (result, flatMapFn) => isErr(result) ? (
16
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
17
- result
18
- ) : (
19
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
20
- flatMapFn(result.value)
21
- );
22
-
23
- export { flatMap };
24
- //# sourceMappingURL=result-flat-map.mjs.map
16
+ const flatMapImpl = (result, flatMapFn) => isErr(result)
17
+ ?
18
+ result
19
+ :
20
+ flatMapFn(result.value);
21
+ //# sourceMappingURL=result-flat-map.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"result-flat-map.mjs","sources":["../../../../src/functional/result/impl/result-flat-map.mts"],"sourcesContent":["import { type Err } from '../../../types.mjs';\nimport { type Result, type UnknownResult } from '../result.mjs';\nimport { isErr } from './result-is-err.mjs';\nimport { type UnwrapErr, type UnwrapOk } from './types.mjs';\n\n/**\n * Applies a function that returns a `Result` to the success value of a\n * `Result`. If the input is `Err`, returns the original `Err`. This is the\n * monadic bind operation for `Result`.\n *\n * @example\n *\n * ```ts\n * const parseNumber = (input: string): Result<number, string> => {\n * const num = Num.safeParseInt(input);\n *\n * return Result.mapErr(num, () => 'not a number');\n * };\n *\n * const parsed = Result.flatMap(Result.ok('42'), parseNumber);\n *\n * const failure = Result.flatMap(Result.ok('abc'), parseNumber);\n *\n * const passthrough = Result.flatMap(Result.err('fail'), parseNumber);\n *\n * assert.deepStrictEqual(parsed, Result.ok(42));\n *\n * assert.deepStrictEqual(failure, Result.err('not a number'));\n *\n * assert.deepStrictEqual(passthrough, Result.err('fail'));\n *\n * const parseThenDouble = Result.flatMap((input: string) =>\n * Result.map(parseNumber(input), (value) => value * 2),\n * );\n *\n * assert.deepStrictEqual(parseThenDouble(Result.ok('10')), Result.ok(20));\n * ```\n *\n * @template R The input `UnknownResult` type.\n * @template S2 The success type of the `Result` returned by the function.\n * @template E2 The error type of the `Result` returned by the function.\n * @param result The `Result` to flat map.\n * @param flatMapFn The function to apply that returns a `Result`.\n * @returns The result of applying the function, or the original `Err`.\n */\nexport function flatMap<R extends UnknownResult, S2, E2>(\n result: R,\n flatMapFn: (value: UnwrapOk<R>) => Result<S2, E2>,\n): Result<S2, E2 | UnwrapErr<R>>;\n\n// Curried version\nexport function flatMap<S, S2, E2>(\n flatMapFn: (value: S) => Result<S2, E2>,\n): <E>(result: Result<S, E>) => Result<S2, E | E2>;\n\nexport function flatMap<R extends UnknownResult, S2, E2>(\n ...args:\n | readonly [result: R, flatMapFn: (value: UnwrapOk<R>) => Result<S2, E2>]\n | readonly [flatMapFn: (value: UnwrapOk<R>) => Result<S2, E2>]\n):\n | Result<S2, E2 | UnwrapErr<R>>\n | ((result: R) => Result<S2, UnwrapErr<R> | E2>) {\n switch (args.length) {\n case 2: {\n // Direct version: first argument is result\n const [result, flatMapFn] = args;\n\n return flatMapImpl(result, flatMapFn);\n }\n\n case 1: {\n // Curried version\n const [flatMapFn] = args;\n\n return (result: R) => flatMapImpl(result, flatMapFn);\n }\n }\n}\n\nconst flatMapImpl = <R extends UnknownResult, S2, E2>(\n result: R,\n flatMapFn: (value: UnwrapOk<R>) => Result<S2, E2>,\n): Result<S2, E2 | UnwrapErr<R>> =>\n isErr(result)\n ? // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n (result as Err<UnwrapErr<R>>)\n : // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n flatMapFn(result.value as UnwrapOk<R>);\n"],"names":[],"mappings":";;AAuDO,SAAS,WACX,IAAA,EAK8C;AACjD,EAAA,QAAQ,KAAK,MAAA;AAAQ,IACnB,KAAK,CAAA,EAAG;AAEN,MAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,IAAA;AAE5B,MAAA,OAAO,WAAA,CAAY,QAAQ,SAAS,CAAA;AAAA,IACtC;AAAA,IAEA,KAAK,CAAA,EAAG;AAEN,MAAA,MAAM,CAAC,SAAS,CAAA,GAAI,IAAA;AAEpB,MAAA,OAAO,CAAC,MAAA,KAAc,WAAA,CAAY,MAAA,EAAQ,SAAS,CAAA;AAAA,IACrD;AAAA;AAEJ;AAEA,MAAM,WAAA,GAAc,CAClB,MAAA,EACA,SAAA,KAEA,MAAM,MAAM,CAAA;AAAA;AAAA,EAEP;AAAA;AAAA;AAAA,EAED,SAAA,CAAU,OAAO,KAAoB;AAAA,CAAA;;;;"}
1
+ {"version":3,"file":"result-flat-map.mjs","sourceRoot":"","sources":["../../../../src/functional/result/impl/result-flat-map.mts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAqD5C,MAAM,UAAU,OAAO,CACrB,GAAG,IAE6D;IAIhE,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,EAAE,CAAC;YACP,2CAA2C;YAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC;YAEjC,OAAO,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACxC,CAAC;QAED,KAAK,CAAC,EAAE,CAAC;YACP,kBAAkB;YAClB,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;YAEzB,OAAO,CAAC,MAAS,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,WAAW,GAAG,CAClB,MAAS,EACT,SAAiD,EAClB,EAAE,CACjC,KAAK,CAAC,MAAM,CAAC;IACX,CAAC,CAAC,oEAAoE;QACnE,MAA4B;IAC/B,CAAC,CAAC,oEAAoE;QACpE,SAAS,CAAC,MAAM,CAAC,KAAoB,CAAC,CAAC"}
@@ -1,26 +1,23 @@
1
1
  import { err } from './result-err.mjs';
2
2
  import { isOk } from './result-is-ok.mjs';
3
3
  import { ok } from './result-ok.mjs';
4
+ export function fold(...args) {
5
+ switch (args.length) {
6
+ case 3: {
4
7
 
5
- function fold(...args) {
6
- switch (args.length) {
7
- case 3: {
8
- const [result, mapFn, mapErrFn] = args;
9
- return foldImpl(result, mapFn, mapErrFn);
10
- }
11
- case 2: {
12
- const [mapFn, mapErrFn] = args;
13
- return (result) => foldImpl(result, mapFn, mapErrFn);
8
+ const [result, mapFn, mapErrFn] = args;
9
+ return foldImpl(result, mapFn, mapErrFn);
10
+ }
11
+ case 2: {
12
+
13
+ const [mapFn, mapErrFn] = args;
14
+ return (result) => foldImpl(result, mapFn, mapErrFn);
15
+ }
14
16
  }
15
- }
16
17
  }
17
- const foldImpl = (result, mapFn, mapErrFn) => isOk(result) ? (
18
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
19
- ok(mapFn(result.value))
20
- ) : (
21
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
22
- err(mapErrFn(result.value))
23
- );
24
-
25
- export { fold };
26
- //# sourceMappingURL=result-fold.mjs.map
18
+ const foldImpl = (result, mapFn, mapErrFn) => isOk(result)
19
+ ?
20
+ ok(mapFn(result.value))
21
+ :
22
+ err(mapErrFn(result.value));
23
+ //# sourceMappingURL=result-fold.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"result-fold.mjs","sources":["../../../../src/functional/result/impl/result-fold.mts"],"sourcesContent":["import { type Result, type UnknownResult } from '../result.mjs';\nimport { err } from './result-err.mjs';\nimport { isOk } from './result-is-ok.mjs';\nimport { ok } from './result-ok.mjs';\nimport { type UnwrapErr, type UnwrapOk } from './types.mjs';\n\n/**\n * Applies one of two functions depending on whether the `Result` is `Ok` or\n * `Err`.\n *\n * @example\n *\n * ```ts\n * const okValue = Result.ok(2);\n *\n * const errValue = Result.err('bad');\n *\n * const foldedOk = Result.fold(\n * okValue,\n * (value) => value * 2,\n * (error) => error,\n * );\n *\n * const foldedErr = Result.fold(\n * errValue,\n * (value: number) => value * 2,\n * (error) => error.toUpperCase(),\n * );\n *\n * assert.deepStrictEqual(foldedOk, Result.ok(4));\n *\n * assert.deepStrictEqual(foldedErr, Result.err('BAD'));\n *\n * const foldNumbers = Result.fold(\n * (value: number) => value * 3,\n * (error: string) => error.length,\n * );\n *\n * assert.deepStrictEqual(foldNumbers(Result.ok(3)), Result.ok(9));\n *\n * assert.deepStrictEqual(foldNumbers(Result.err('oops')), Result.err(4));\n * ```\n *\n * @template R The input `UnknownResult` type.\n * @template S2 The type of the success value returned by `mapFn`.\n * @template E2 The type of the error value returned by `mapErrFn`.\n * @param result The `Result` to fold.\n * @param mapFn The function to apply if `result` is `Ok`.\n * @param mapErrFn The function to apply if `result` is `Err`.\n * @returns A new `Result<S2, E2>` based on the applied function.\n */\nexport function fold<R extends UnknownResult, S2, E2>(\n result: R,\n mapFn: (value: UnwrapOk<R>) => S2,\n mapErrFn: (error: UnwrapErr<R>) => E2,\n): Result<S2, E2>;\n\n// Curried version\nexport function fold<S, E, S2, E2>(\n mapFn: (value: S) => S2,\n mapErrFn: (error: E) => E2,\n): (result: Result<S, E>) => Result<S2, E2>;\n\nexport function fold<R extends UnknownResult, S2, E2>(\n ...args:\n | readonly [\n result: R,\n mapFn: (value: UnwrapOk<R>) => S2,\n mapErrFn: (error: UnwrapErr<R>) => E2,\n ]\n | readonly [\n mapFn: (value: UnwrapOk<R>) => S2,\n mapErrFn: (error: UnwrapErr<R>) => E2,\n ]\n): Result<S2, E2> | ((result: R) => Result<S2, E2>) {\n switch (args.length) {\n case 3: {\n // Direct version: first argument is result\n const [result, mapFn, mapErrFn] = args;\n\n return foldImpl(result, mapFn, mapErrFn);\n }\n\n case 2: {\n // Curried version\n const [mapFn, mapErrFn] = args;\n\n return (result: R) => foldImpl(result, mapFn, mapErrFn);\n }\n }\n}\n\nconst foldImpl = <R extends UnknownResult, S2, E2>(\n result: R,\n mapFn: (value: UnwrapOk<R>) => S2,\n mapErrFn: (error: UnwrapErr<R>) => E2,\n): Result<S2, E2> =>\n isOk(result)\n ? // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n ok(mapFn(result.value as UnwrapOk<R>))\n : // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n err(mapErrFn(result.value as UnwrapErr<R>));\n"],"names":[],"mappings":";;;;AA+DO,SAAS,QACX,IAAA,EAU+C;AAClD,EAAA,QAAQ,KAAK,MAAA;AAAQ,IACnB,KAAK,CAAA,EAAG;AAEN,MAAA,MAAM,CAAC,MAAA,EAAQ,KAAA,EAAO,QAAQ,CAAA,GAAI,IAAA;AAElC,MAAA,OAAO,QAAA,CAAS,MAAA,EAAQ,KAAA,EAAO,QAAQ,CAAA;AAAA,IACzC;AAAA,IAEA,KAAK,CAAA,EAAG;AAEN,MAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,IAAA;AAE1B,MAAA,OAAO,CAAC,MAAA,KAAc,QAAA,CAAS,MAAA,EAAQ,OAAO,QAAQ,CAAA;AAAA,IACxD;AAAA;AAEJ;AAEA,MAAM,WAAW,CACf,MAAA,EACA,KAAA,EACA,QAAA,KAEA,KAAK,MAAM,CAAA;AAAA;AAAA,EAEP,EAAA,CAAG,KAAA,CAAM,MAAA,CAAO,KAAoB,CAAC;AAAA;AAAA;AAAA,EAErC,GAAA,CAAI,QAAA,CAAS,MAAA,CAAO,KAAqB,CAAC;AAAA,CAAA;;;;"}
1
+ {"version":3,"file":"result-fold.mjs","sourceRoot":"","sources":["../../../../src/functional/result/impl/result-fold.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AA4DrC,MAAM,UAAU,IAAI,CAClB,GAAG,IASE;IAEL,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,EAAE,CAAC;YACP,2CAA2C;YAC3C,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;YAEvC,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;QAED,KAAK,CAAC,EAAE,CAAC;YACP,kBAAkB;YAClB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;YAE/B,OAAO,CAAC,MAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,QAAQ,GAAG,CACf,MAAS,EACT,KAAiC,EACjC,QAAqC,EACrB,EAAE,CAClB,IAAI,CAAC,MAAM,CAAC;IACV,CAAC,CAAC,oEAAoE;QACpE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAoB,CAAC,CAAC;IACxC,CAAC,CAAC,oEAAoE;QACpE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAqB,CAAC,CAAC,CAAC"}
@@ -1,24 +1,21 @@
1
- import { isSome } from '../../optional/impl/optional-is-some.mjs';
2
- import { unwrap } from '../../optional/impl/optional-unwrap.mjs';
1
+ import { Optional } from '../../optional/index.mjs';
3
2
  import { err } from './result-err.mjs';
4
3
  import { ok } from './result-ok.mjs';
4
+ export function fromOptional(...args) {
5
+ switch (args.length) {
6
+ case 2: {
7
+ const [optional, error] = args;
8
+ return fromOptionalImpl(optional, error);
9
+ }
10
+ case 1: {
5
11
 
6
- function fromOptional(...args) {
7
- switch (args.length) {
8
- case 2: {
9
- const [optional, error] = args;
10
- return fromOptionalImpl(optional, error);
12
+ const [error] = args;
13
+ return (optional) => fromOptionalImpl(optional, error);
14
+ }
11
15
  }
12
- case 1: {
13
- const [error] = args;
14
- return (optional) => fromOptionalImpl(optional, error);
15
- }
16
- }
17
16
  }
18
- const fromOptionalImpl = (optional, error) => isSome(optional) ? (
19
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
20
- ok(unwrap(optional))
21
- ) : err(error);
22
-
23
- export { fromOptional };
24
- //# sourceMappingURL=result-from-optional.mjs.map
17
+ const fromOptionalImpl = (optional, error) => Optional.isSome(optional)
18
+ ?
19
+ ok(Optional.unwrap(optional))
20
+ : err(error);
21
+ //# sourceMappingURL=result-from-optional.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"result-from-optional.mjs","sources":["../../../../src/functional/result/impl/result-from-optional.mts"],"sourcesContent":["import { Optional, type UnknownOptional } from '../../optional/index.mjs';\nimport { type Result } from '../result.mjs';\nimport { err } from './result-err.mjs';\nimport { ok } from './result-ok.mjs';\n\n/**\n * Converts an {@link Optional} to a `Result` (the inverse of\n * {@link Result.toOptional}, and the equivalent of Rust's `Option::ok_or`).\n *\n * If the {@link Optional} is `Some`, returns `Ok` with the contained value.\n * If it is `None`, returns `Err` with the provided error value.\n *\n * @example\n *\n * ```ts\n * assert.deepStrictEqual(\n * Result.fromOptional(Optional.some(42), 'missing'),\n * Result.ok(42),\n * );\n *\n * assert.deepStrictEqual(\n * Result.fromOptional(Optional.none, 'missing'),\n * Result.err('missing'),\n * );\n *\n * const withMissingError = Result.fromOptional('missing');\n *\n * assert.deepStrictEqual(withMissingError(Optional.some(1)), Result.ok(1));\n *\n * assert.deepStrictEqual(\n * withMissingError(Optional.none),\n * Result.err('missing'),\n * );\n * ```\n *\n * @template O The input `UnknownOptional` type.\n * @template E The type of the error value used for the `None` case.\n * @param optional The `Optional` to convert.\n * @param error The error value to use if the `Optional` is `None`.\n * @returns `Ok` with the contained value, or `Err` with `error`.\n */\nexport function fromOptional<O extends UnknownOptional, const E>(\n optional: O,\n error: E,\n): Result<Optional.Unwrap<O>, E>;\n\n// Curried version\nexport function fromOptional<const E>(\n error: E,\n): <O extends UnknownOptional>(optional: O) => Result<Optional.Unwrap<O>, E>;\n\nexport function fromOptional<O extends UnknownOptional, const E>(\n ...args: readonly [optional: O, error: E] | readonly [error: E]\n):\n | Result<Optional.Unwrap<O>, E>\n | ((optional: O) => Result<Optional.Unwrap<O>, E>) {\n switch (args.length) {\n case 2: {\n const [optional, error] = args;\n\n return fromOptionalImpl(optional, error);\n }\n\n case 1: {\n // Curried version: the only argument is the error value\n const [error] = args;\n\n return (optional: O) => fromOptionalImpl(optional, error);\n }\n }\n}\n\nconst fromOptionalImpl = <O extends UnknownOptional, E>(\n optional: O,\n error: E,\n): Result<Optional.Unwrap<O>, E> =>\n Optional.isSome(optional)\n ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n ok(Optional.unwrap(optional)!)\n : err(error);\n"],"names":["Optional.isSome","Optional.unwrap"],"mappings":";;;;;AAmDO,SAAS,gBACX,IAAA,EAGgD;AACnD,EAAA,QAAQ,KAAK,MAAA;AAAQ,IACnB,KAAK,CAAA,EAAG;AACN,MAAA,MAAM,CAAC,QAAA,EAAU,KAAK,CAAA,GAAI,IAAA;AAE1B,MAAA,OAAO,gBAAA,CAAiB,UAAU,KAAK,CAAA;AAAA,IACzC;AAAA,IAEA,KAAK,CAAA,EAAG;AAEN,MAAA,MAAM,CAAC,KAAK,CAAA,GAAI,IAAA;AAEhB,MAAA,OAAO,CAAC,QAAA,KAAgB,gBAAA,CAAiB,QAAA,EAAU,KAAK,CAAA;AAAA,IAC1D;AAAA;AAEJ;AAEA,MAAM,mBAAmB,CACvB,QAAA,EACA,KAAA,KAEAA,OAAgB,QAAQ,CAAA;AAAA;AAAA,EAEpB,EAAA,CAAGC,MAAS,CAAO,QAAQ,CAAE;AAAA,IAC7B,IAAI,KAAK,CAAA;;;;"}
1
+ {"version":3,"file":"result-from-optional.mjs","sourceRoot":"","sources":["../../../../src/functional/result/impl/result-from-optional.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAwB,MAAM,0BAA0B,CAAC;AAE1E,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAgDrC,MAAM,UAAU,YAAY,CAC1B,GAAG,IAA4D;IAI/D,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,EAAE,CAAC;YACP,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;YAE/B,OAAO,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QAED,KAAK,CAAC,EAAE,CAAC;YACP,wDAAwD;YACxD,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;YAErB,OAAO,CAAC,QAAW,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,gBAAgB,GAAG,CACvB,QAAW,EACX,KAAQ,EACuB,EAAE,CACjC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;IACvB,CAAC,CAAC,oEAAoE;QACpE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAE,CAAC;IAChC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC"}
@@ -1,10 +1,39 @@
1
1
  import { err } from './result-err.mjs';
2
2
  import { ok } from './result-ok.mjs';
3
3
 
4
- const fromPromise = (promise) => (
5
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
6
- promise.then((v) => ok(v)).catch(err)
7
- );
8
4
 
9
- export { fromPromise };
10
- //# sourceMappingURL=result-from-promise.mjs.map
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+ export const fromPromise = (promise) =>
37
+
38
+ promise.then((v) => ok(v)).catch(err);
39
+ //# sourceMappingURL=result-from-promise.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"result-from-promise.mjs","sources":["../../../../src/functional/result/impl/result-from-promise.mts"],"sourcesContent":["import { type Ok } from '../../../types.mjs';\nimport { type Result } from '../result.mjs';\nimport { err } from './result-err.mjs';\nimport { ok } from './result-ok.mjs';\n\n/**\n * @template P The Promise type.\n * @internal\n * Utility type to extract the resolved value type from a Promise.\n */\ntype UnwrapPromise<P extends Promise<unknown>> =\n P extends Promise<infer V> ? V : never;\n\n/**\n * Converts a Promise into a Promise that resolves to a `Result`. If the input\n * Promise resolves, the `Result` will be `Ok` with the resolved value. If the\n * input Promise rejects, the `Result` will be `Err` with the rejection\n * reason.\n *\n * The error channel is `unknown`, since the rejection reason is carried\n * through untouched. For a concrete error type, use `AsyncResult.fromPromise`\n * with a `mapError` function; called without one it behaves exactly as this\n * function does.\n *\n * @example\n *\n * ```ts\n * const successPromise = Result.fromPromise(Promise.resolve('ok'));\n *\n * const failurePromise = Result.fromPromise(\n * Promise.reject(new Error('fail')),\n * );\n *\n * const resolved = await successPromise;\n *\n * const rejected = await failurePromise;\n *\n * assert.deepStrictEqual(resolved, Result.ok('ok'));\n *\n * assert.isTrue(Result.isErr(rejected));\n * ```\n *\n * @template P The type of the input Promise.\n * @param promise The Promise to convert.\n * @returns A Promise that resolves to `Result<UnwrapPromise<P>, unknown>`.\n */\nexport const fromPromise = <P extends Promise<unknown>>(\n promise: P,\n): Promise<Result<UnwrapPromise<P>, unknown>> =>\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n promise.then((v) => ok(v) as Ok<UnwrapPromise<P>>).catch(err);\n"],"names":[],"mappings":";;;AA8CO,MAAM,cAAc,CACzB,OAAA;AAAA;AAAA,EAGA,OAAA,CAAQ,KAAK,CAAC,CAAA,KAAM,GAAG,CAAC,CAAyB,CAAA,CAAE,KAAA,CAAM,GAAG;AAAA;;;;"}
1
+ {"version":3,"file":"result-from-promise.mjs","sourceRoot":"","sources":["../../../../src/functional/result/impl/result-from-promise.mts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAUrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,OAAU,EACkC,EAAE;AAC9C,oEAAoE;AACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAyB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC"}
@@ -1,19 +1,46 @@
1
1
  import { isError } from '@sindresorhus/is';
2
- import { unknownToString } from '../../../others/unknown-to-string.mjs';
2
+ import { unknownToString } from '../../../others/index.mjs';
3
3
  import { err } from './result-err.mjs';
4
4
  import { ok } from './result-ok.mjs';
5
5
 
6
- const fromThrowable = (fn) => {
7
- try {
8
- return ok(fn());
9
- } catch (error) {
10
- if (isError(error)) {
11
- return err(error);
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+ export const fromThrowable = (fn) => {
35
+ try {
36
+ return ok(fn());
37
+ }
38
+ catch (error) {
39
+ if (isError(error)) {
40
+ return err(error);
41
+ }
42
+ const msg = unknownToString(error);
43
+ return err(new Error(msg));
12
44
  }
13
- const msg = unknownToString(error);
14
- return err(new Error(msg));
15
- }
16
45
  };
17
-
18
- export { fromThrowable };
19
- //# sourceMappingURL=result-from-throwable.mjs.map
46
+ //# sourceMappingURL=result-from-throwable.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"result-from-throwable.mjs","sources":["../../../../src/functional/result/impl/result-from-throwable.mts"],"sourcesContent":["import { isError } from '@sindresorhus/is';\nimport { unknownToString } from '../../../others/index.mjs';\nimport { type Result } from '../result.mjs';\nimport { err } from './result-err.mjs';\nimport { ok } from './result-ok.mjs';\n\n/**\n * Wraps a function that may throw an exception in a `Result`.\n *\n * This is a fundamental utility for converting traditional exception-based\n * error handling into Result-based error handling. Any thrown value is\n * converted to an Error object for consistent error handling.\n *\n * If the function executes successfully, returns `Result.Ok` with the result.\n * If the function throws, returns `Result.Err` with the caught error.\n *\n * @example\n *\n * ```ts\n * const success = Result.fromThrowable(() => 1 + 1);\n *\n * const failure = Result.fromThrowable(() => {\n * throw new Error('boom');\n * });\n *\n * assert.deepStrictEqual(success, Result.ok(2));\n *\n * assert.isTrue(Result.isErr(failure));\n * ```\n *\n * @template T The return type of the function.\n * @param fn The function to execute that may throw.\n * @returns A `Result<T, Error>` containing either the successful result or\n * the caught error.\n */\nexport const fromThrowable = <T,>(fn: () => T): Result<T, Error> => {\n try {\n return ok(fn());\n } catch (error) {\n if (isError(error)) {\n return err(error);\n }\n\n const msg = unknownToString(error);\n\n return err(new Error(msg));\n }\n};\n"],"names":[],"mappings":";;;;;AAmCO,MAAM,aAAA,GAAgB,CAAK,EAAA,KAAkC;AAClE,EAAA,IAAI;AACF,IAAA,OAAO,EAAA,CAAG,IAAI,CAAA;AAAA,EAChB,SAAS,KAAA,EAAO;AACd,IAAA,IAAI,OAAA,CAAQ,KAAK,CAAA,EAAG;AAClB,MAAA,OAAO,IAAI,KAAK,CAAA;AAAA,IAClB;AAEA,IAAA,MAAM,GAAA,GAAM,gBAAgB,KAAK,CAAA;AAEjC,IAAA,OAAO,GAAA,CAAI,IAAI,KAAA,CAAM,GAAG,CAAC,CAAA;AAAA,EAC3B;AACF;;;;"}
1
+ {"version":3,"file":"result-from-throwable.mjs","sourceRoot":"","sources":["../../../../src/functional/result/impl/result-from-throwable.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAK,EAAW,EAAoB,EAAE;IACjE,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;QAED,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAEnC,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC,CAAC"}
@@ -1,6 +1,22 @@
1
1
  import { ErrTypeTagName } from './tag.mjs';
2
2
 
3
- const isErr = (result) => result.$$tag === ErrTypeTagName;
4
3
 
5
- export { isErr };
6
- //# sourceMappingURL=result-is-err.mjs.map
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+ export const isErr = (result) => result.$$tag === ErrTypeTagName;
22
+ //# sourceMappingURL=result-is-err.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"result-is-err.mjs","sources":["../../../../src/functional/result/impl/result-is-err.mts"],"sourcesContent":["import { type UnknownResult } from '../result.mjs';\nimport { ErrTypeTagName } from './tag.mjs';\nimport { type NarrowToErr } from './types.mjs';\n\n/**\n * Type guard for the error variant.\n *\n * @example\n *\n * ```ts\n * const operation = Result.ok(3);\n *\n * const failure = Result.err('error');\n *\n * if (Result.isOk(operation)) {\n * const value: number = operation.value;\n *\n * assert.isTrue(value === 3);\n * }\n *\n * assert.isTrue(Result.isErr(failure));\n * ```\n */\nexport const isErr = <R extends UnknownResult>(\n result: R,\n): result is NarrowToErr<R> => result.$$tag === ErrTypeTagName;\n"],"names":[],"mappings":";;AAuBO,MAAM,KAAA,GAAQ,CACnB,MAAA,KAC6B,MAAA,CAAO,KAAA,KAAU;;;;"}
1
+ {"version":3,"file":"result-is-err.mjs","sourceRoot":"","sources":["../../../../src/functional/result/impl/result-is-err.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,MAAS,EACiB,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,cAAc,CAAC"}
@@ -1,6 +1,22 @@
1
1
  import { OkTypeTagName } from './tag.mjs';
2
2
 
3
- const isOk = (result) => result.$$tag === OkTypeTagName;
4
3
 
5
- export { isOk };
6
- //# sourceMappingURL=result-is-ok.mjs.map
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+ export const isOk = (result) => result.$$tag === OkTypeTagName;
22
+ //# sourceMappingURL=result-is-ok.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"result-is-ok.mjs","sources":["../../../../src/functional/result/impl/result-is-ok.mts"],"sourcesContent":["import { type UnknownResult } from '../result.mjs';\nimport { OkTypeTagName } from './tag.mjs';\nimport { type NarrowToOk } from './types.mjs';\n\n/**\n * Type guard for the ok variant.\n *\n * @example\n *\n * ```ts\n * const operation = Result.ok(3);\n *\n * const failure = Result.err('error');\n *\n * if (Result.isOk(operation)) {\n * const value: number = operation.value;\n *\n * assert.isTrue(value === 3);\n * }\n *\n * assert.isTrue(Result.isErr(failure));\n * ```\n */\nexport const isOk = <R extends UnknownResult>(\n result: R,\n): result is NarrowToOk<R> => result.$$tag === OkTypeTagName;\n"],"names":[],"mappings":";;AAuBO,MAAM,IAAA,GAAO,CAClB,MAAA,KAC4B,MAAA,CAAO,KAAA,KAAU;;;;"}
1
+ {"version":3,"file":"result-is-ok.mjs","sourceRoot":"","sources":["../../../../src/functional/result/impl/result-is-ok.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,MAAS,EACgB,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,aAAa,CAAC"}