ts-data-forge 14.6.4 → 14.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (558) hide show
  1. package/README.md +2 -1
  2. package/dist/expect-type.d.mts +2 -70
  3. package/dist/expect-type.d.mts.map +1 -1
  4. package/dist/expect-type.mjs +1 -68
  5. package/dist/expect-type.mjs.map +1 -1
  6. package/dist/functional/index.d.mts +11 -6
  7. package/dist/functional/index.d.mts.map +1 -1
  8. package/dist/functional/index.mjs +10 -6
  9. package/dist/functional/index.mjs.map +1 -1
  10. package/dist/guard/has-key.d.mts +2 -51
  11. package/dist/guard/has-key.d.mts.map +1 -1
  12. package/dist/guard/has-key.mjs +1 -41
  13. package/dist/guard/has-key.mjs.map +1 -1
  14. package/dist/guard/is-non-null-object.d.mts +2 -34
  15. package/dist/guard/is-non-null-object.d.mts.map +1 -1
  16. package/dist/guard/is-non-null-object.mjs +1 -34
  17. package/dist/guard/is-non-null-object.mjs.map +1 -1
  18. package/dist/guard/is-record.d.mts +2 -89
  19. package/dist/guard/is-record.d.mts.map +1 -1
  20. package/dist/guard/is-record.mjs +1 -88
  21. package/dist/guard/is-record.mjs.map +1 -1
  22. package/dist/guard/key-is-in.d.mts +2 -42
  23. package/dist/guard/key-is-in.d.mts.map +1 -1
  24. package/dist/guard/key-is-in.mjs +1 -40
  25. package/dist/guard/key-is-in.mjs.map +1 -1
  26. package/dist/number/num.d.mts +9 -1
  27. package/dist/number/num.d.mts.map +1 -1
  28. package/dist/number/num.mjs +24 -16
  29. package/dist/number/num.mjs.map +1 -1
  30. package/dist/others/index.d.mts +1 -0
  31. package/dist/others/index.d.mts.map +1 -1
  32. package/dist/others/index.mjs +1 -0
  33. package/dist/others/index.mjs.map +1 -1
  34. package/dist/others/panic-error.d.mts +9 -0
  35. package/dist/others/panic-error.d.mts.map +1 -0
  36. package/dist/others/panic-error.mjs +9 -0
  37. package/dist/others/panic-error.mjs.map +1 -0
  38. package/dist/others/unknown-to-string.d.mts +2 -37
  39. package/dist/others/unknown-to-string.d.mts.map +1 -1
  40. package/dist/others/unknown-to-string.mjs +1 -92
  41. package/dist/others/unknown-to-string.mjs.map +1 -1
  42. package/dist/types.d.mts +1 -41
  43. package/dist/types.d.mts.map +1 -1
  44. package/dist/types.mjs +0 -1
  45. package/dist/types.mjs.map +1 -1
  46. package/package.json +5 -5
  47. package/src/expect-type.mts +2 -78
  48. package/src/functional/index.mts +31 -6
  49. package/src/guard/has-key.mts +2 -72
  50. package/src/guard/is-non-null-object.mts +2 -36
  51. package/src/guard/is-record.mts +2 -95
  52. package/src/guard/key-is-in.mts +2 -49
  53. package/src/number/num.mts +36 -28
  54. package/src/others/index.mts +1 -0
  55. package/src/others/panic-error.mts +8 -0
  56. package/src/others/unknown-to-string.mts +2 -111
  57. package/src/types.mts +4 -54
  58. package/dist/functional/async-result/async-result.d.mts +0 -16
  59. package/dist/functional/async-result/async-result.d.mts.map +0 -1
  60. package/dist/functional/async-result/async-result.mjs +0 -2
  61. package/dist/functional/async-result/async-result.mjs.map +0 -1
  62. package/dist/functional/async-result/impl/async-result-flat-map.d.mts +0 -39
  63. package/dist/functional/async-result/impl/async-result-flat-map.d.mts.map +0 -1
  64. package/dist/functional/async-result/impl/async-result-flat-map.mjs +0 -23
  65. package/dist/functional/async-result/impl/async-result-flat-map.mjs.map +0 -1
  66. package/dist/functional/async-result/impl/async-result-from-promise.d.mts +0 -47
  67. package/dist/functional/async-result/impl/async-result-from-promise.d.mts.map +0 -1
  68. package/dist/functional/async-result/impl/async-result-from-promise.mjs +0 -10
  69. package/dist/functional/async-result/impl/async-result-from-promise.mjs.map +0 -1
  70. package/dist/functional/async-result/impl/async-result-from-throwable.d.mts +0 -53
  71. package/dist/functional/async-result/impl/async-result-from-throwable.d.mts.map +0 -1
  72. package/dist/functional/async-result/impl/async-result-from-throwable.mjs +0 -15
  73. package/dist/functional/async-result/impl/async-result-from-throwable.mjs.map +0 -1
  74. package/dist/functional/async-result/impl/async-result-map-err.d.mts +0 -35
  75. package/dist/functional/async-result/impl/async-result-map-err.d.mts.map +0 -1
  76. package/dist/functional/async-result/impl/async-result-map-err.mjs +0 -20
  77. package/dist/functional/async-result/impl/async-result-map-err.mjs.map +0 -1
  78. package/dist/functional/async-result/impl/async-result-map.d.mts +0 -45
  79. package/dist/functional/async-result/impl/async-result-map.d.mts.map +0 -1
  80. package/dist/functional/async-result/impl/async-result-map.mjs +0 -20
  81. package/dist/functional/async-result/impl/async-result-map.mjs.map +0 -1
  82. package/dist/functional/async-result/impl/async-result-unwrap-or.d.mts +0 -34
  83. package/dist/functional/async-result/impl/async-result-unwrap-or.d.mts.map +0 -1
  84. package/dist/functional/async-result/impl/async-result-unwrap-or.mjs +0 -37
  85. package/dist/functional/async-result/impl/async-result-unwrap-or.mjs.map +0 -1
  86. package/dist/functional/async-result/impl/index.d.mts +0 -8
  87. package/dist/functional/async-result/impl/index.d.mts.map +0 -1
  88. package/dist/functional/async-result/impl/index.mjs +0 -8
  89. package/dist/functional/async-result/impl/index.mjs.map +0 -1
  90. package/dist/functional/async-result/impl/types.d.mts +0 -45
  91. package/dist/functional/async-result/impl/types.d.mts.map +0 -1
  92. package/dist/functional/async-result/impl/types.mjs +0 -2
  93. package/dist/functional/async-result/impl/types.mjs.map +0 -1
  94. package/dist/functional/async-result/index.d.mts +0 -2
  95. package/dist/functional/async-result/index.d.mts.map +0 -1
  96. package/dist/functional/async-result/index.mjs +0 -2
  97. package/dist/functional/async-result/index.mjs.map +0 -1
  98. package/dist/functional/match.d.mts +0 -80
  99. package/dist/functional/match.d.mts.map +0 -1
  100. package/dist/functional/match.mjs +0 -31
  101. package/dist/functional/match.mjs.map +0 -1
  102. package/dist/functional/optional/impl/index.d.mts +0 -19
  103. package/dist/functional/optional/impl/index.d.mts.map +0 -1
  104. package/dist/functional/optional/impl/index.mjs +0 -19
  105. package/dist/functional/optional/impl/index.mjs.map +0 -1
  106. package/dist/functional/optional/impl/optional-expect-to-be.d.mts +0 -37
  107. package/dist/functional/optional/impl/optional-expect-to-be.d.mts.map +0 -1
  108. package/dist/functional/optional/impl/optional-expect-to-be.mjs +0 -22
  109. package/dist/functional/optional/impl/optional-expect-to-be.mjs.map +0 -1
  110. package/dist/functional/optional/impl/optional-filter.d.mts +0 -33
  111. package/dist/functional/optional/impl/optional-filter.d.mts.map +0 -1
  112. package/dist/functional/optional/impl/optional-filter.mjs +0 -25
  113. package/dist/functional/optional/impl/optional-filter.mjs.map +0 -1
  114. package/dist/functional/optional/impl/optional-flat-map.d.mts +0 -39
  115. package/dist/functional/optional/impl/optional-flat-map.d.mts.map +0 -1
  116. package/dist/functional/optional/impl/optional-flat-map.mjs +0 -18
  117. package/dist/functional/optional/impl/optional-flat-map.mjs.map +0 -1
  118. package/dist/functional/optional/impl/optional-from-nullable.d.mts +0 -27
  119. package/dist/functional/optional/impl/optional-from-nullable.d.mts.map +0 -1
  120. package/dist/functional/optional/impl/optional-from-nullable.mjs +0 -28
  121. package/dist/functional/optional/impl/optional-from-nullable.mjs.map +0 -1
  122. package/dist/functional/optional/impl/optional-is-none.d.mts +0 -23
  123. package/dist/functional/optional/impl/optional-is-none.d.mts.map +0 -1
  124. package/dist/functional/optional/impl/optional-is-none.mjs +0 -22
  125. package/dist/functional/optional/impl/optional-is-none.mjs.map +0 -1
  126. package/dist/functional/optional/impl/optional-is-optional.d.mts +0 -21
  127. package/dist/functional/optional/impl/optional-is-optional.d.mts.map +0 -1
  128. package/dist/functional/optional/impl/optional-is-optional.mjs +0 -26
  129. package/dist/functional/optional/impl/optional-is-optional.mjs.map +0 -1
  130. package/dist/functional/optional/impl/optional-is-some.d.mts +0 -24
  131. package/dist/functional/optional/impl/optional-is-some.d.mts.map +0 -1
  132. package/dist/functional/optional/impl/optional-is-some.mjs +0 -23
  133. package/dist/functional/optional/impl/optional-is-some.mjs.map +0 -1
  134. package/dist/functional/optional/impl/optional-map.d.mts +0 -34
  135. package/dist/functional/optional/impl/optional-map.d.mts.map +0 -1
  136. package/dist/functional/optional/impl/optional-map.mjs +0 -22
  137. package/dist/functional/optional/impl/optional-map.mjs.map +0 -1
  138. package/dist/functional/optional/impl/optional-match.d.mts +0 -48
  139. package/dist/functional/optional/impl/optional-match.d.mts.map +0 -1
  140. package/dist/functional/optional/impl/optional-match.mjs +0 -20
  141. package/dist/functional/optional/impl/optional-match.mjs.map +0 -1
  142. package/dist/functional/optional/impl/optional-none.d.mts +0 -19
  143. package/dist/functional/optional/impl/optional-none.d.mts.map +0 -1
  144. package/dist/functional/optional/impl/optional-none.mjs +0 -19
  145. package/dist/functional/optional/impl/optional-none.mjs.map +0 -1
  146. package/dist/functional/optional/impl/optional-or-else.d.mts +0 -43
  147. package/dist/functional/optional/impl/optional-or-else.d.mts.map +0 -1
  148. package/dist/functional/optional/impl/optional-or-else.mjs +0 -16
  149. package/dist/functional/optional/impl/optional-or-else.mjs.map +0 -1
  150. package/dist/functional/optional/impl/optional-some.d.mts +0 -22
  151. package/dist/functional/optional/impl/optional-some.d.mts.map +0 -1
  152. package/dist/functional/optional/impl/optional-some.mjs +0 -25
  153. package/dist/functional/optional/impl/optional-some.mjs.map +0 -1
  154. package/dist/functional/optional/impl/optional-to-nullable.d.mts +0 -30
  155. package/dist/functional/optional/impl/optional-to-nullable.d.mts.map +0 -1
  156. package/dist/functional/optional/impl/optional-to-nullable.mjs +0 -30
  157. package/dist/functional/optional/impl/optional-to-nullable.mjs.map +0 -1
  158. package/dist/functional/optional/impl/optional-unwrap-or.d.mts +0 -37
  159. package/dist/functional/optional/impl/optional-unwrap-or.d.mts.map +0 -1
  160. package/dist/functional/optional/impl/optional-unwrap-or.mjs +0 -16
  161. package/dist/functional/optional/impl/optional-unwrap-or.mjs.map +0 -1
  162. package/dist/functional/optional/impl/optional-unwrap-throw.d.mts +0 -31
  163. package/dist/functional/optional/impl/optional-unwrap-throw.d.mts.map +0 -1
  164. package/dist/functional/optional/impl/optional-unwrap-throw.mjs +0 -36
  165. package/dist/functional/optional/impl/optional-unwrap-throw.mjs.map +0 -1
  166. package/dist/functional/optional/impl/optional-unwrap.d.mts +0 -32
  167. package/dist/functional/optional/impl/optional-unwrap.d.mts.map +0 -1
  168. package/dist/functional/optional/impl/optional-unwrap.mjs +0 -8
  169. package/dist/functional/optional/impl/optional-unwrap.mjs.map +0 -1
  170. package/dist/functional/optional/impl/optional-zip.d.mts +0 -35
  171. package/dist/functional/optional/impl/optional-zip.d.mts.map +0 -1
  172. package/dist/functional/optional/impl/optional-zip.mjs +0 -39
  173. package/dist/functional/optional/impl/optional-zip.mjs.map +0 -1
  174. package/dist/functional/optional/impl/tag.d.mts +0 -6
  175. package/dist/functional/optional/impl/tag.d.mts.map +0 -1
  176. package/dist/functional/optional/impl/tag.mjs +0 -4
  177. package/dist/functional/optional/impl/tag.mjs.map +0 -1
  178. package/dist/functional/optional/impl/types.d.mts +0 -24
  179. package/dist/functional/optional/impl/types.d.mts.map +0 -1
  180. package/dist/functional/optional/impl/types.mjs +0 -2
  181. package/dist/functional/optional/impl/types.mjs.map +0 -1
  182. package/dist/functional/optional/index.d.mts +0 -2
  183. package/dist/functional/optional/index.d.mts.map +0 -1
  184. package/dist/functional/optional/index.mjs +0 -2
  185. package/dist/functional/optional/index.mjs.map +0 -1
  186. package/dist/functional/optional/optional.d.mts +0 -16
  187. package/dist/functional/optional/optional.d.mts.map +0 -1
  188. package/dist/functional/optional/optional.mjs +0 -2
  189. package/dist/functional/optional/optional.mjs.map +0 -1
  190. package/dist/functional/pipe.d.mts +0 -102
  191. package/dist/functional/pipe.d.mts.map +0 -1
  192. package/dist/functional/pipe.mjs +0 -45
  193. package/dist/functional/pipe.mjs.map +0 -1
  194. package/dist/functional/result/impl/index.d.mts +0 -28
  195. package/dist/functional/result/impl/index.d.mts.map +0 -1
  196. package/dist/functional/result/impl/index.mjs +0 -28
  197. package/dist/functional/result/impl/index.mjs.map +0 -1
  198. package/dist/functional/result/impl/result-err.d.mts +0 -28
  199. package/dist/functional/result/impl/result-err.d.mts.map +0 -1
  200. package/dist/functional/result/impl/result-err.mjs +0 -31
  201. package/dist/functional/result/impl/result-err.mjs.map +0 -1
  202. package/dist/functional/result/impl/result-expect-to-be.d.mts +0 -33
  203. package/dist/functional/result/impl/result-expect-to-be.d.mts.map +0 -1
  204. package/dist/functional/result/impl/result-expect-to-be.mjs +0 -23
  205. package/dist/functional/result/impl/result-expect-to-be.mjs.map +0 -1
  206. package/dist/functional/result/impl/result-flat-map.d.mts +0 -45
  207. package/dist/functional/result/impl/result-flat-map.d.mts.map +0 -1
  208. package/dist/functional/result/impl/result-flat-map.mjs +0 -21
  209. package/dist/functional/result/impl/result-flat-map.mjs.map +0 -1
  210. package/dist/functional/result/impl/result-fold.d.mts +0 -50
  211. package/dist/functional/result/impl/result-fold.d.mts.map +0 -1
  212. package/dist/functional/result/impl/result-fold.mjs +0 -23
  213. package/dist/functional/result/impl/result-fold.mjs.map +0 -1
  214. package/dist/functional/result/impl/result-from-optional.d.mts +0 -41
  215. package/dist/functional/result/impl/result-from-optional.d.mts.map +0 -1
  216. package/dist/functional/result/impl/result-from-optional.mjs +0 -21
  217. package/dist/functional/result/impl/result-from-optional.mjs.map +0 -1
  218. package/dist/functional/result/impl/result-from-promise.d.mts +0 -43
  219. package/dist/functional/result/impl/result-from-promise.d.mts.map +0 -1
  220. package/dist/functional/result/impl/result-from-promise.mjs +0 -39
  221. package/dist/functional/result/impl/result-from-promise.mjs.map +0 -1
  222. package/dist/functional/result/impl/result-from-throwable.d.mts +0 -32
  223. package/dist/functional/result/impl/result-from-throwable.d.mts.map +0 -1
  224. package/dist/functional/result/impl/result-from-throwable.mjs +0 -46
  225. package/dist/functional/result/impl/result-from-throwable.mjs.map +0 -1
  226. package/dist/functional/result/impl/result-is-err.d.mts +0 -23
  227. package/dist/functional/result/impl/result-is-err.d.mts.map +0 -1
  228. package/dist/functional/result/impl/result-is-err.mjs +0 -22
  229. package/dist/functional/result/impl/result-is-err.mjs.map +0 -1
  230. package/dist/functional/result/impl/result-is-ok.d.mts +0 -23
  231. package/dist/functional/result/impl/result-is-ok.d.mts.map +0 -1
  232. package/dist/functional/result/impl/result-is-ok.mjs +0 -22
  233. package/dist/functional/result/impl/result-is-ok.mjs.map +0 -1
  234. package/dist/functional/result/impl/result-is-result.d.mts +0 -22
  235. package/dist/functional/result/impl/result-is-result.d.mts.map +0 -1
  236. package/dist/functional/result/impl/result-is-result.mjs +0 -26
  237. package/dist/functional/result/impl/result-is-result.mjs.map +0 -1
  238. package/dist/functional/result/impl/result-map-err.d.mts +0 -39
  239. package/dist/functional/result/impl/result-map-err.d.mts.map +0 -1
  240. package/dist/functional/result/impl/result-map-err.mjs +0 -22
  241. package/dist/functional/result/impl/result-map-err.mjs.map +0 -1
  242. package/dist/functional/result/impl/result-map.d.mts +0 -39
  243. package/dist/functional/result/impl/result-map.d.mts.map +0 -1
  244. package/dist/functional/result/impl/result-map.mjs +0 -22
  245. package/dist/functional/result/impl/result-map.mjs.map +0 -1
  246. package/dist/functional/result/impl/result-match.d.mts +0 -47
  247. package/dist/functional/result/impl/result-match.d.mts.map +0 -1
  248. package/dist/functional/result/impl/result-match.mjs +0 -20
  249. package/dist/functional/result/impl/result-match.mjs.map +0 -1
  250. package/dist/functional/result/impl/result-ok.d.mts +0 -28
  251. package/dist/functional/result/impl/result-ok.d.mts.map +0 -1
  252. package/dist/functional/result/impl/result-ok.mjs +0 -31
  253. package/dist/functional/result/impl/result-ok.mjs.map +0 -1
  254. package/dist/functional/result/impl/result-or-else.d.mts +0 -40
  255. package/dist/functional/result/impl/result-or-else.d.mts.map +0 -1
  256. package/dist/functional/result/impl/result-or-else.mjs +0 -17
  257. package/dist/functional/result/impl/result-or-else.mjs.map +0 -1
  258. package/dist/functional/result/impl/result-safe-try.d.mts +0 -51
  259. package/dist/functional/result/impl/result-safe-try.d.mts.map +0 -1
  260. package/dist/functional/result/impl/result-safe-try.mjs +0 -35
  261. package/dist/functional/result/impl/result-safe-try.mjs.map +0 -1
  262. package/dist/functional/result/impl/result-safe-unwrap.d.mts +0 -36
  263. package/dist/functional/result/impl/result-safe-unwrap.d.mts.map +0 -1
  264. package/dist/functional/result/impl/result-safe-unwrap.mjs +0 -42
  265. package/dist/functional/result/impl/result-safe-unwrap.mjs.map +0 -1
  266. package/dist/functional/result/impl/result-swap.d.mts +0 -23
  267. package/dist/functional/result/impl/result-swap.d.mts.map +0 -1
  268. package/dist/functional/result/impl/result-swap.mjs +0 -27
  269. package/dist/functional/result/impl/result-swap.mjs.map +0 -1
  270. package/dist/functional/result/impl/result-to-optional.d.mts +0 -32
  271. package/dist/functional/result/impl/result-to-optional.d.mts.map +0 -1
  272. package/dist/functional/result/impl/result-to-optional.mjs +0 -32
  273. package/dist/functional/result/impl/result-to-optional.mjs.map +0 -1
  274. package/dist/functional/result/impl/result-unwrap-err-or.d.mts +0 -33
  275. package/dist/functional/result/impl/result-unwrap-err-or.d.mts.map +0 -1
  276. package/dist/functional/result/impl/result-unwrap-err-or.mjs +0 -17
  277. package/dist/functional/result/impl/result-unwrap-err-or.mjs.map +0 -1
  278. package/dist/functional/result/impl/result-unwrap-err-throw.d.mts +0 -33
  279. package/dist/functional/result/impl/result-unwrap-err-throw.d.mts.map +0 -1
  280. package/dist/functional/result/impl/result-unwrap-err-throw.mjs +0 -46
  281. package/dist/functional/result/impl/result-unwrap-err-throw.mjs.map +0 -1
  282. package/dist/functional/result/impl/result-unwrap-err.d.mts +0 -33
  283. package/dist/functional/result/impl/result-unwrap-err.d.mts.map +0 -1
  284. package/dist/functional/result/impl/result-unwrap-err.mjs +0 -34
  285. package/dist/functional/result/impl/result-unwrap-err.mjs.map +0 -1
  286. package/dist/functional/result/impl/result-unwrap-ok-or.d.mts +0 -33
  287. package/dist/functional/result/impl/result-unwrap-ok-or.d.mts.map +0 -1
  288. package/dist/functional/result/impl/result-unwrap-ok-or.mjs +0 -17
  289. package/dist/functional/result/impl/result-unwrap-ok-or.mjs.map +0 -1
  290. package/dist/functional/result/impl/result-unwrap-ok.d.mts +0 -26
  291. package/dist/functional/result/impl/result-unwrap-ok.d.mts.map +0 -1
  292. package/dist/functional/result/impl/result-unwrap-ok.mjs +0 -8
  293. package/dist/functional/result/impl/result-unwrap-ok.mjs.map +0 -1
  294. package/dist/functional/result/impl/result-unwrap-throw.d.mts +0 -33
  295. package/dist/functional/result/impl/result-unwrap-throw.d.mts.map +0 -1
  296. package/dist/functional/result/impl/result-unwrap-throw.mjs +0 -40
  297. package/dist/functional/result/impl/result-unwrap-throw.mjs.map +0 -1
  298. package/dist/functional/result/impl/result-zip.d.mts +0 -32
  299. package/dist/functional/result/impl/result-zip.d.mts.map +0 -1
  300. package/dist/functional/result/impl/result-zip.mjs +0 -37
  301. package/dist/functional/result/impl/result-zip.mjs.map +0 -1
  302. package/dist/functional/result/impl/tag.d.mts +0 -6
  303. package/dist/functional/result/impl/tag.d.mts.map +0 -1
  304. package/dist/functional/result/impl/tag.mjs +0 -4
  305. package/dist/functional/result/impl/tag.mjs.map +0 -1
  306. package/dist/functional/result/impl/types.d.mts +0 -31
  307. package/dist/functional/result/impl/types.d.mts.map +0 -1
  308. package/dist/functional/result/impl/types.mjs +0 -2
  309. package/dist/functional/result/impl/types.mjs.map +0 -1
  310. package/dist/functional/result/index.d.mts +0 -2
  311. package/dist/functional/result/index.d.mts.map +0 -1
  312. package/dist/functional/result/index.mjs +0 -2
  313. package/dist/functional/result/index.mjs.map +0 -1
  314. package/dist/functional/result/result.d.mts +0 -16
  315. package/dist/functional/result/result.d.mts.map +0 -1
  316. package/dist/functional/result/result.mjs +0 -2
  317. package/dist/functional/result/result.mjs.map +0 -1
  318. package/dist/functional/ternary-result/impl/index.d.mts +0 -29
  319. package/dist/functional/ternary-result/impl/index.d.mts.map +0 -1
  320. package/dist/functional/ternary-result/impl/index.mjs +0 -29
  321. package/dist/functional/ternary-result/impl/index.mjs.map +0 -1
  322. package/dist/functional/ternary-result/impl/tag.d.mts +0 -8
  323. package/dist/functional/ternary-result/impl/tag.d.mts.map +0 -1
  324. package/dist/functional/ternary-result/impl/tag.mjs +0 -6
  325. package/dist/functional/ternary-result/impl/tag.mjs.map +0 -1
  326. package/dist/functional/ternary-result/impl/ternary-result-err.d.mts +0 -16
  327. package/dist/functional/ternary-result/impl/ternary-result-err.d.mts.map +0 -1
  328. package/dist/functional/ternary-result/impl/ternary-result-err.mjs +0 -19
  329. package/dist/functional/ternary-result/impl/ternary-result-err.mjs.map +0 -1
  330. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.d.mts +0 -24
  331. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.d.mts.map +0 -1
  332. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.mjs +0 -21
  333. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.mjs.map +0 -1
  334. package/dist/functional/ternary-result/impl/ternary-result-flat-map.d.mts +0 -39
  335. package/dist/functional/ternary-result/impl/ternary-result-flat-map.d.mts.map +0 -1
  336. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs +0 -38
  337. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs.map +0 -1
  338. package/dist/functional/ternary-result/impl/ternary-result-fold.d.mts +0 -30
  339. package/dist/functional/ternary-result/impl/ternary-result-fold.d.mts.map +0 -1
  340. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs +0 -33
  341. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs.map +0 -1
  342. package/dist/functional/ternary-result/impl/ternary-result-from-promise.d.mts +0 -23
  343. package/dist/functional/ternary-result/impl/ternary-result-from-promise.d.mts.map +0 -1
  344. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs +0 -23
  345. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs.map +0 -1
  346. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.d.mts +0 -20
  347. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.d.mts.map +0 -1
  348. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs +0 -33
  349. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs.map +0 -1
  350. package/dist/functional/ternary-result/impl/ternary-result-is-err.d.mts +0 -21
  351. package/dist/functional/ternary-result/impl/ternary-result-is-err.d.mts.map +0 -1
  352. package/dist/functional/ternary-result/impl/ternary-result-is-err.mjs +0 -20
  353. package/dist/functional/ternary-result/impl/ternary-result-is-err.mjs.map +0 -1
  354. package/dist/functional/ternary-result/impl/ternary-result-is-ok.d.mts +0 -23
  355. package/dist/functional/ternary-result/impl/ternary-result-is-ok.d.mts.map +0 -1
  356. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs +0 -22
  357. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs.map +0 -1
  358. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.d.mts +0 -22
  359. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.d.mts.map +0 -1
  360. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs +0 -28
  361. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs.map +0 -1
  362. package/dist/functional/ternary-result/impl/ternary-result-is-warn.d.mts +0 -22
  363. package/dist/functional/ternary-result/impl/ternary-result-is-warn.d.mts.map +0 -1
  364. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs +0 -21
  365. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs.map +0 -1
  366. package/dist/functional/ternary-result/impl/ternary-result-map-err.d.mts +0 -27
  367. package/dist/functional/ternary-result/impl/ternary-result-map-err.d.mts.map +0 -1
  368. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs +0 -23
  369. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs.map +0 -1
  370. package/dist/functional/ternary-result/impl/ternary-result-map-warn.d.mts +0 -28
  371. package/dist/functional/ternary-result/impl/ternary-result-map-warn.d.mts.map +0 -1
  372. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs +0 -26
  373. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs.map +0 -1
  374. package/dist/functional/ternary-result/impl/ternary-result-map.d.mts +0 -36
  375. package/dist/functional/ternary-result/impl/ternary-result-map.d.mts.map +0 -1
  376. package/dist/functional/ternary-result/impl/ternary-result-map.mjs +0 -32
  377. package/dist/functional/ternary-result/impl/ternary-result-map.mjs.map +0 -1
  378. package/dist/functional/ternary-result/impl/ternary-result-ok.d.mts +0 -17
  379. package/dist/functional/ternary-result/impl/ternary-result-ok.d.mts.map +0 -1
  380. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs +0 -20
  381. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs.map +0 -1
  382. package/dist/functional/ternary-result/impl/ternary-result-or-else.d.mts +0 -29
  383. package/dist/functional/ternary-result/impl/ternary-result-or-else.d.mts.map +0 -1
  384. package/dist/functional/ternary-result/impl/ternary-result-or-else.mjs +0 -16
  385. package/dist/functional/ternary-result/impl/ternary-result-or-else.mjs.map +0 -1
  386. package/dist/functional/ternary-result/impl/ternary-result-to-optional.d.mts +0 -23
  387. package/dist/functional/ternary-result/impl/ternary-result-to-optional.d.mts.map +0 -1
  388. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs +0 -26
  389. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs.map +0 -1
  390. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.d.mts +0 -28
  391. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.d.mts.map +0 -1
  392. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.mjs +0 -14
  393. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.mjs.map +0 -1
  394. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.d.mts +0 -20
  395. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.d.mts.map +0 -1
  396. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs +0 -34
  397. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs.map +0 -1
  398. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.d.mts +0 -20
  399. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.d.mts.map +0 -1
  400. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs +0 -21
  401. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs.map +0 -1
  402. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.d.mts +0 -25
  403. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.d.mts.map +0 -1
  404. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mjs +0 -14
  405. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mjs.map +0 -1
  406. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.d.mts +0 -20
  407. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.d.mts.map +0 -1
  408. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs +0 -10
  409. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs.map +0 -1
  410. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.d.mts +0 -21
  411. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.d.mts.map +0 -1
  412. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs +0 -35
  413. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs.map +0 -1
  414. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.d.mts +0 -22
  415. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.d.mts.map +0 -1
  416. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mjs +0 -14
  417. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mjs.map +0 -1
  418. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.d.mts +0 -20
  419. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.d.mts.map +0 -1
  420. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs +0 -30
  421. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs.map +0 -1
  422. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.d.mts +0 -20
  423. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.d.mts.map +0 -1
  424. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs +0 -21
  425. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs.map +0 -1
  426. package/dist/functional/ternary-result/impl/ternary-result-warn.d.mts +0 -19
  427. package/dist/functional/ternary-result/impl/ternary-result-warn.d.mts.map +0 -1
  428. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs +0 -23
  429. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs.map +0 -1
  430. package/dist/functional/ternary-result/impl/ternary-result-zip.d.mts +0 -34
  431. package/dist/functional/ternary-result/impl/ternary-result-zip.d.mts.map +0 -1
  432. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs +0 -52
  433. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs.map +0 -1
  434. package/dist/functional/ternary-result/impl/types.d.mts +0 -26
  435. package/dist/functional/ternary-result/impl/types.d.mts.map +0 -1
  436. package/dist/functional/ternary-result/impl/types.mjs +0 -2
  437. package/dist/functional/ternary-result/impl/types.mjs.map +0 -1
  438. package/dist/functional/ternary-result/impl/variant-name.d.mts +0 -4
  439. package/dist/functional/ternary-result/impl/variant-name.d.mts.map +0 -1
  440. package/dist/functional/ternary-result/impl/variant-name.mjs +0 -13
  441. package/dist/functional/ternary-result/impl/variant-name.mjs.map +0 -1
  442. package/dist/functional/ternary-result/index.d.mts +0 -2
  443. package/dist/functional/ternary-result/index.d.mts.map +0 -1
  444. package/dist/functional/ternary-result/index.mjs +0 -2
  445. package/dist/functional/ternary-result/index.mjs.map +0 -1
  446. package/dist/functional/ternary-result/ternary-result.d.mts +0 -40
  447. package/dist/functional/ternary-result/ternary-result.d.mts.map +0 -1
  448. package/dist/functional/ternary-result/ternary-result.mjs +0 -2
  449. package/dist/functional/ternary-result/ternary-result.mjs.map +0 -1
  450. package/src/functional/async-result/async-result.mts +0 -17
  451. package/src/functional/async-result/impl/async-result-flat-map.mts +0 -99
  452. package/src/functional/async-result/impl/async-result-from-promise.mts +0 -69
  453. package/src/functional/async-result/impl/async-result-from-throwable.mts +0 -78
  454. package/src/functional/async-result/impl/async-result-map-err.mts +0 -84
  455. package/src/functional/async-result/impl/async-result-map.mts +0 -94
  456. package/src/functional/async-result/impl/async-result-unwrap-or.mts +0 -42
  457. package/src/functional/async-result/impl/index.mts +0 -7
  458. package/src/functional/async-result/impl/types.mts +0 -51
  459. package/src/functional/async-result/index.mts +0 -1
  460. package/src/functional/async-result.test.mts +0 -291
  461. package/src/functional/match.mts +0 -193
  462. package/src/functional/match.test.mts +0 -180
  463. package/src/functional/optional/impl/index.mts +0 -18
  464. package/src/functional/optional/impl/optional-expect-to-be.mts +0 -75
  465. package/src/functional/optional/impl/optional-filter.mts +0 -78
  466. package/src/functional/optional/impl/optional-flat-map.mts +0 -75
  467. package/src/functional/optional/impl/optional-from-nullable.mts +0 -31
  468. package/src/functional/optional/impl/optional-is-none.mts +0 -26
  469. package/src/functional/optional/impl/optional-is-optional.mts +0 -30
  470. package/src/functional/optional/impl/optional-is-some.mts +0 -27
  471. package/src/functional/optional/impl/optional-map.mts +0 -90
  472. package/src/functional/optional/impl/optional-match.mts +0 -108
  473. package/src/functional/optional/impl/optional-none.mts +0 -20
  474. package/src/functional/optional/impl/optional-or-else.mts +0 -83
  475. package/src/functional/optional/impl/optional-some.mts +0 -27
  476. package/src/functional/optional/impl/optional-to-nullable.mts +0 -34
  477. package/src/functional/optional/impl/optional-unwrap-or.mts +0 -70
  478. package/src/functional/optional/impl/optional-unwrap-throw.mts +0 -41
  479. package/src/functional/optional/impl/optional-unwrap.mts +0 -45
  480. package/src/functional/optional/impl/optional-zip.mts +0 -44
  481. package/src/functional/optional/impl/tag.mts +0 -8
  482. package/src/functional/optional/impl/types.mts +0 -31
  483. package/src/functional/optional/index.mts +0 -1
  484. package/src/functional/optional/optional.mts +0 -19
  485. package/src/functional/optional.test.mts +0 -883
  486. package/src/functional/pipe.mts +0 -180
  487. package/src/functional/pipe.test.mts +0 -155
  488. package/src/functional/result/impl/index.mts +0 -27
  489. package/src/functional/result/impl/result-err.mts +0 -33
  490. package/src/functional/result/impl/result-expect-to-be.mts +0 -73
  491. package/src/functional/result/impl/result-flat-map.mts +0 -88
  492. package/src/functional/result/impl/result-fold.mts +0 -102
  493. package/src/functional/result/impl/result-from-optional.mts +0 -80
  494. package/src/functional/result/impl/result-from-promise.mts +0 -51
  495. package/src/functional/result/impl/result-from-throwable.mts +0 -48
  496. package/src/functional/result/impl/result-is-err.mts +0 -26
  497. package/src/functional/result/impl/result-is-ok.mts +0 -26
  498. package/src/functional/result/impl/result-is-result.mts +0 -28
  499. package/src/functional/result/impl/result-map-err.mts +0 -96
  500. package/src/functional/result/impl/result-map.mts +0 -96
  501. package/src/functional/result/impl/result-match.mts +0 -108
  502. package/src/functional/result/impl/result-ok.mts +0 -33
  503. package/src/functional/result/impl/result-or-else.mts +0 -73
  504. package/src/functional/result/impl/result-safe-try.mts +0 -110
  505. package/src/functional/result/impl/result-safe-unwrap.mts +0 -50
  506. package/src/functional/result/impl/result-swap.mts +0 -31
  507. package/src/functional/result/impl/result-to-optional.mts +0 -37
  508. package/src/functional/result/impl/result-unwrap-err-or.mts +0 -66
  509. package/src/functional/result/impl/result-unwrap-err-throw.mts +0 -56
  510. package/src/functional/result/impl/result-unwrap-err.mts +0 -38
  511. package/src/functional/result/impl/result-unwrap-ok-or.mts +0 -66
  512. package/src/functional/result/impl/result-unwrap-ok.mts +0 -39
  513. package/src/functional/result/impl/result-unwrap-throw.mts +0 -46
  514. package/src/functional/result/impl/result-zip.mts +0 -42
  515. package/src/functional/result/impl/tag.mts +0 -8
  516. package/src/functional/result/impl/types.mts +0 -38
  517. package/src/functional/result/index.mts +0 -1
  518. package/src/functional/result/result.mts +0 -19
  519. package/src/functional/result.test.mts +0 -1349
  520. package/src/functional/ternary-result/impl/index.mts +0 -28
  521. package/src/functional/ternary-result/impl/tag.mts +0 -17
  522. package/src/functional/ternary-result/impl/ternary-result-err.mts +0 -21
  523. package/src/functional/ternary-result/impl/ternary-result-expect-to-be.mts +0 -65
  524. package/src/functional/ternary-result/impl/ternary-result-flat-map.mts +0 -112
  525. package/src/functional/ternary-result/impl/ternary-result-fold.mts +0 -102
  526. package/src/functional/ternary-result/impl/ternary-result-from-promise.mts +0 -30
  527. package/src/functional/ternary-result/impl/ternary-result-from-throwable.mts +0 -36
  528. package/src/functional/ternary-result/impl/ternary-result-is-err.mts +0 -24
  529. package/src/functional/ternary-result/impl/ternary-result-is-ok.mts +0 -26
  530. package/src/functional/ternary-result/impl/ternary-result-is-ternary-result.mts +0 -32
  531. package/src/functional/ternary-result/impl/ternary-result-is-warn.mts +0 -25
  532. package/src/functional/ternary-result/impl/ternary-result-map-err.mts +0 -74
  533. package/src/functional/ternary-result/impl/ternary-result-map-warn.mts +0 -79
  534. package/src/functional/ternary-result/impl/ternary-result-map.mts +0 -95
  535. package/src/functional/ternary-result/impl/ternary-result-ok.mts +0 -22
  536. package/src/functional/ternary-result/impl/ternary-result-or-else.mts +0 -72
  537. package/src/functional/ternary-result/impl/ternary-result-to-optional.mts +0 -31
  538. package/src/functional/ternary-result/impl/ternary-result-unwrap-err-or.mts +0 -54
  539. package/src/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mts +0 -42
  540. package/src/functional/ternary-result/impl/ternary-result-unwrap-err.mts +0 -25
  541. package/src/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mts +0 -51
  542. package/src/functional/ternary-result/impl/ternary-result-unwrap-ok.mts +0 -39
  543. package/src/functional/ternary-result/impl/ternary-result-unwrap-throw.mts +0 -48
  544. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mts +0 -48
  545. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mts +0 -40
  546. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn.mts +0 -25
  547. package/src/functional/ternary-result/impl/ternary-result-warn.mts +0 -28
  548. package/src/functional/ternary-result/impl/ternary-result-zip.mts +0 -61
  549. package/src/functional/ternary-result/impl/types.mts +0 -46
  550. package/src/functional/ternary-result/impl/variant-name.mts +0 -18
  551. package/src/functional/ternary-result/index.mts +0 -1
  552. package/src/functional/ternary-result/ternary-result.mts +0 -50
  553. package/src/functional/ternary-result.test.mts +0 -310
  554. package/src/guard/has-key.test.mts +0 -111
  555. package/src/guard/is-non-null-object.test.mts +0 -109
  556. package/src/guard/is-record.test.mts +0 -195
  557. package/src/guard/key-is-in.test.mts +0 -21
  558. package/src/others/unknown-to-string.test.mts +0 -295
@@ -1,34 +0,0 @@
1
- import { type TernaryResult } from '../ternary-result.mjs';
2
- /**
3
- * Combines two `TernaryResult`s, prioritising Err over Warn over Ok.
4
- *
5
- * @example
6
- *
7
- * ```ts
8
- * const okPair = TernaryResult.zip(
9
- * TernaryResult.ok('left'),
10
- * TernaryResult.ok(1),
11
- * );
12
- *
13
- * const warnPair = TernaryResult.zip(
14
- * TernaryResult.warn('left', 'warn'),
15
- * TernaryResult.ok(1),
16
- * );
17
- *
18
- * const errPair = TernaryResult.zip(
19
- * TernaryResult.ok('left'),
20
- * TernaryResult.err('err'),
21
- * );
22
- *
23
- * assert.deepStrictEqual(okPair, TernaryResult.ok(['left', 1] as const));
24
- *
25
- * assert.deepStrictEqual(
26
- * warnPair,
27
- * TernaryResult.warn(['left', 1] as const, 'warn'),
28
- * );
29
- *
30
- * assert.deepStrictEqual(errPair, TernaryResult.err('err'));
31
- * ```
32
- */
33
- export declare const zip: <S1, W1, E1, S2, W2, E2>(resultA: TernaryResult<S1, E1, W1>, resultB: TernaryResult<S2, E2, W2>) => TernaryResult<readonly [S1, S2], E1 | E2, W1 | W2>;
34
- //# sourceMappingURL=ternary-result-zip.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ternary-result-zip.d.mts","sourceRoot":"","sources":["../../../../src/functional/ternary-result/impl/ternary-result-zip.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAM3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,GAAG,GAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,WAC/B,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,WACzB,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KACjC,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAoBnD,CAAC"}
@@ -1,52 +0,0 @@
1
- import { isErr } from './ternary-result-is-err.mjs';
2
- import { isWarn } from './ternary-result-is-warn.mjs';
3
- import { ok } from './ternary-result-ok.mjs';
4
- import { warn } from './ternary-result-warn.mjs';
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 zip = (resultA, resultB) => {
37
- if (isErr(resultA)) {
38
- return resultA;
39
- }
40
- if (isErr(resultB)) {
41
- return resultB;
42
- }
43
- const pair = [resultA.value, resultB.value];
44
- if (isWarn(resultA)) {
45
- return warn(pair, resultA.warning);
46
- }
47
- if (isWarn(resultB)) {
48
- return warn(pair, resultB.warning);
49
- }
50
- return ok(pair);
51
- };
52
- //# sourceMappingURL=ternary-result-zip.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ternary-result-zip.mjs","sourceRoot":"","sources":["../../../../src/functional/ternary-result/impl/ternary-result-zip.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,MAAM,yBAAyB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CACjB,OAAkC,EAClC,OAAkC,EACkB,EAAE;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACnB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACnB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAU,CAAC;IAErD,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC,CAAC"}
@@ -1,26 +0,0 @@
1
- import { type TernaryErr, type TernaryOk, type TernaryWarn, type UnknownTernaryResult } from '../ternary-result.mjs';
2
- /**
3
- * Extracts the success value type `S` from a `TernaryResult.Ok<S>`.
4
- */
5
- export type UnwrapOk<R extends UnknownTernaryResult> = R extends TernaryOk<infer S> ? S : R extends TernaryWarn<infer S, unknown> ? S : never;
6
- /**
7
- * Extracts the warning value type `W` from a `TernaryResult.Warn<W>`.
8
- */
9
- export type UnwrapWarn<R extends UnknownTernaryResult> = R extends TernaryWarn<unknown, infer E> ? E : never;
10
- /**
11
- * Extracts the error value type `E` from a `TernaryResult.Err<E>`.
12
- */
13
- export type UnwrapErr<R extends UnknownTernaryResult> = R extends TernaryErr<infer E> ? E : never;
14
- /**
15
- * Narrows the provided `UnknownTernaryResult` to its Ok variant.
16
- */
17
- export type NarrowToOk<R extends UnknownTernaryResult> = R extends TernaryOk<unknown> ? R : never;
18
- /**
19
- * Narrows the provided `UnknownTernaryResult` to its Warn variant.
20
- */
21
- export type NarrowToWarn<R extends UnknownTernaryResult> = R extends TernaryWarn<unknown, unknown> ? R : never;
22
- /**
23
- * Narrows the provided `UnknownTernaryResult` to its Err variant.
24
- */
25
- export type NarrowToErr<R extends UnknownTernaryResult> = R extends TernaryErr<unknown> ? R : never;
26
- //# sourceMappingURL=types.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../../../../src/functional/ternary-result/impl/types.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAE/B;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,oBAAoB,IACjD,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,GACxB,CAAC,GACD,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,GACrC,CAAC,GACD,KAAK,CAAC;AAEd;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,oBAAoB,IACnD,CAAC,SAAS,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,oBAAoB,IAClD,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,oBAAoB,IACnD,CAAC,SAAS,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE3C;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,oBAAoB,IACrD,CAAC,SAAS,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,oBAAoB,IACpD,CAAC,SAAS,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../../../../src/functional/ternary-result/impl/types.mts"],"names":[],"mappings":""}
@@ -1,4 +0,0 @@
1
- import { type UnknownTernaryResult } from '../ternary-result.mjs';
2
- /** @internal Returns the human readable variant label for the given tag. */
3
- export declare const variantName: (tag: UnknownTernaryResult['$$tag']) => 'Ok' | 'Warn' | 'Err';
4
- //# sourceMappingURL=variant-name.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"variant-name.d.mts","sourceRoot":"","sources":["../../../../src/functional/ternary-result/impl/variant-name.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGlE,4EAA4E;AAC5E,eAAO,MAAM,WAAW,QACjB,oBAAoB,CAAC,OAAO,CAAC,KACjC,IAAI,GAAG,MAAM,GAAG,KAWlB,CAAC"}
@@ -1,13 +0,0 @@
1
- import { ErrTypeTagName, OkTypeTagName, WarnTypeTagName } from './tag.mjs';
2
-
3
- export const variantName = (tag) => {
4
- switch (tag) {
5
- case OkTypeTagName:
6
- return 'Ok';
7
- case WarnTypeTagName:
8
- return 'Warn';
9
- case ErrTypeTagName:
10
- return 'Err';
11
- }
12
- };
13
- //# sourceMappingURL=variant-name.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"variant-name.mjs","sourceRoot":"","sources":["../../../../src/functional/ternary-result/impl/variant-name.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE3E,4EAA4E;AAC5E,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,GAAkC,EACX,EAAE;IACzB,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,aAAa;YAChB,OAAO,IAAI,CAAC;QAEd,KAAK,eAAe;YAClB,OAAO,MAAM,CAAC;QAEhB,KAAK,cAAc;YACjB,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './ternary-result.mjs';
2
- //# sourceMappingURL=index.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/functional/ternary-result/index.mts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './ternary-result.mjs';
2
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../src/functional/ternary-result/index.mts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
@@ -1,40 +0,0 @@
1
- /**
2
- * Represents a `TernaryResult` that is a success, containing a value.
3
- */
4
- export type TernaryOk<S> = Readonly<{
5
- /** @internal Discriminant property for the 'Ok' type. */
6
- $$tag: 'ts-data-forge::Result.ok';
7
- /** The success value. */
8
- value: S;
9
- }>;
10
- /**
11
- * Represents a `TernaryResult` that contains a success value and an attached
12
- * warning.
13
- */
14
- export type TernaryWarn<S, W> = Readonly<{
15
- /** @internal Discriminant property for the 'Warn' type. */
16
- $$tag: 'ts-data-forge::Result.warn';
17
- /** The success value. */
18
- value: S;
19
- /** The warning value. */
20
- warning: W;
21
- }>;
22
- /**
23
- * Represents a `TernaryResult` that is an error, containing an error value.
24
- */
25
- export type TernaryErr<E> = Readonly<{
26
- /** @internal Discriminant property for the 'Err' type. */
27
- $$tag: 'ts-data-forge::Result.err';
28
- /** The error value. */
29
- value: E;
30
- }>;
31
- /**
32
- * Represents a value that can be `Ok`, `Warn`, or `Err`.
33
- */
34
- export type TernaryResult<S, E, W = E> = TernaryOk<S> | TernaryWarn<S, W> | TernaryErr<E>;
35
- /**
36
- * Base type for any `TernaryResult`, used for generic constraints.
37
- */
38
- export type UnknownTernaryResult = TernaryOk<unknown> | TernaryWarn<unknown, unknown> | TernaryErr<unknown>;
39
- export * as TernaryResult from './impl/index.mjs';
40
- //# sourceMappingURL=ternary-result.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ternary-result.d.mts","sourceRoot":"","sources":["../../../src/functional/ternary-result/ternary-result.mts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,QAAQ,CAAC;IAClC,yDAAyD;IACzD,KAAK,EAAE,0BAA0B,CAAC;IAElC,yBAAyB;IACzB,KAAK,EAAE,CAAC,CAAC;CACV,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC;IACvC,2DAA2D;IAC3D,KAAK,EAAE,4BAA4B,CAAC;IAEpC,yBAAyB;IACzB,KAAK,EAAE,CAAC,CAAC;IAET,yBAAyB;IACzB,OAAO,EAAE,CAAC,CAAC;CACZ,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,QAAQ,CAAC;IACnC,0DAA0D;IAC1D,KAAK,EAAE,2BAA2B,CAAC;IAEnC,uBAAuB;IACvB,KAAK,EAAE,CAAC,CAAC;CACV,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IACnC,SAAS,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC9B,SAAS,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;AAE3E,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * as TernaryResult from './impl/index.mjs';
2
- //# sourceMappingURL=ternary-result.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ternary-result.mjs","sourceRoot":"","sources":["../../../src/functional/ternary-result/ternary-result.mts"],"names":[],"mappings":"AAiDA,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC"}
@@ -1,17 +0,0 @@
1
- import { type Result } from '../result/index.mjs';
2
-
3
- /**
4
- * Represents an asynchronous computation that can either succeed (`Ok`) or
5
- * fail (`Err`) — a `Promise` that resolves to a `Result<S, E>`.
6
- *
7
- * Unlike a raw `Promise`, an `AsyncResult` never rejects for expected
8
- * failures: errors are carried in the `Err` channel with a concrete type `E`,
9
- * so they can be handled with the same combinators as a synchronous
10
- * `Result`.
11
- *
12
- * @template S The type of the success value.
13
- * @template E The type of the error value.
14
- */
15
- export type AsyncResult<S, E> = Promise<Result<S, E>>;
16
-
17
- export * as AsyncResult from './impl/index.mjs';
@@ -1,99 +0,0 @@
1
- import { Result, type UnknownResult } from '../../result/index.mjs';
2
- import { type AsyncResult } from '../async-result.mjs';
3
- import {
4
- type UnknownAsyncResult,
5
- type UnwrapErr,
6
- type UnwrapOk,
7
- } from './types.mjs';
8
-
9
- /**
10
- * Applies a function that returns an `AsyncResult` or a `Result` to the
11
- * success value of an `AsyncResult`. If the input resolves to `Err`, the
12
- * original `Err` is passed through and the function is not called. This is
13
- * the monadic bind operation for `AsyncResult`.
14
- *
15
- * @example
16
- *
17
- * ```ts
18
- * const parseNumber = (input: string): Result<number, string> => {
19
- * const num = Number.parseInt(input, 10);
20
- *
21
- * return Number.isNaN(num) ? Result.err('not a number') : Result.ok(num);
22
- * };
23
- *
24
- * const input = AsyncResult.fromPromise(
25
- * Promise.resolve('42'),
26
- * () => 'failed',
27
- * );
28
- *
29
- * const parsed = await AsyncResult.flatMap(input, parseNumber);
30
- *
31
- * assert.deepStrictEqual(parsed, Result.ok(42));
32
- * ```
33
- *
34
- * @template S The type of the success value of the input.
35
- * @template E The type of the error value of the input.
36
- * @template R2 The `AsyncResult` or `Result` type returned by the function.
37
- * @param asyncResult The `AsyncResult` to flat map.
38
- * @param flatMapFn The function to apply that returns an `AsyncResult` or a
39
- * `Result`.
40
- * @returns The result of applying the function, or the original `Err`.
41
- */
42
- export function flatMap<S, E, R2 extends UnknownAsyncResult | UnknownResult>(
43
- asyncResult: AsyncResult<S, E>,
44
- flatMapFn: (value: S) => R2,
45
- ): AsyncResult<UnwrapOk<R2>, E | UnwrapErr<R2>>;
46
-
47
- // Curried version
48
- //
49
- // The function's return type is captured as a whole (`R2`) and unwrapped with
50
- // `UnwrapOk` / `UnwrapErr`, instead of being written as
51
- // `AsyncResult<S2, E2> | Result<S2, E2>` with separate `S2` / `E2` type
52
- // parameters. With the union form, inference for `E2` collects a candidate
53
- // from matching `Ok<S2>` against `Err<E2>` (both have a `value` property), so
54
- // `E2` ends up as the success type and the call fails to type-check even for
55
- // a function annotated as returning `Result<S2, E2>`.
56
- export function flatMap<S, R2 extends UnknownAsyncResult | UnknownResult>(
57
- flatMapFn: (value: S) => R2,
58
- ): <E>(
59
- asyncResult: AsyncResult<S, E>,
60
- ) => AsyncResult<UnwrapOk<R2>, E | UnwrapErr<R2>>;
61
-
62
- export function flatMap<S, E, R2 extends UnknownAsyncResult | UnknownResult>(
63
- ...args:
64
- | readonly [asyncResult: AsyncResult<S, E>, flatMapFn: (value: S) => R2]
65
- | readonly [flatMapFn: (value: S) => R2]
66
- ):
67
- | AsyncResult<UnwrapOk<R2>, E | UnwrapErr<R2>>
68
- | ((
69
- asyncResult: AsyncResult<S, E>,
70
- ) => AsyncResult<UnwrapOk<R2>, E | UnwrapErr<R2>>) {
71
- switch (args.length) {
72
- case 2: {
73
- // Direct version: first argument is asyncResult
74
- const [asyncResult, flatMapFn] = args;
75
-
76
- return flatMapImpl(asyncResult, flatMapFn);
77
- }
78
-
79
- case 1: {
80
- // Curried version
81
- const [flatMapFn] = args;
82
-
83
- return (asyncResult: AsyncResult<S, E>) =>
84
- flatMapImpl(asyncResult, flatMapFn);
85
- }
86
- }
87
- }
88
-
89
- const flatMapImpl = async <S, E, R2 extends UnknownAsyncResult | UnknownResult>(
90
- asyncResult: AsyncResult<S, E>,
91
- flatMapFn: (value: S) => R2,
92
- ): AsyncResult<UnwrapOk<R2>, E | UnwrapErr<R2>> => {
93
- const result = await asyncResult;
94
-
95
- return Result.isErr(result)
96
- ? result
97
- : // eslint-disable-next-line total-functions/no-unsafe-type-assertion
98
- ((await flatMapFn(result.value)) as Result<UnwrapOk<R2>, UnwrapErr<R2>>);
99
- };
@@ -1,69 +0,0 @@
1
- import { Result } from '../../result/index.mjs';
2
- import { type AsyncResult } from '../async-result.mjs';
3
-
4
- /**
5
- * Converts a `Promise` into an `AsyncResult`. If the input Promise resolves,
6
- * the `AsyncResult` resolves to `Ok` with the resolved value. If the input
7
- * Promise rejects, the rejection reason is passed through `mapError` and the
8
- * `AsyncResult` resolves to `Err` with the mapped error.
9
- *
10
- * Passing `mapError` is what gives the error channel a concrete type `E`.
11
- * Omitting it carries the rejection reason through untouched, leaving the
12
- * error channel as `unknown` — the same contract as `Result.fromPromise`.
13
- *
14
- * @example
15
- *
16
- * ```ts
17
- * const resolved = await AsyncResult.fromPromise(
18
- * Promise.resolve('ok'),
19
- * (error) => `failed: ${String(error)}`,
20
- * );
21
- *
22
- * const rejected = await AsyncResult.fromPromise(
23
- * Promise.reject(new Error('boom')),
24
- * (error) => (isError(error) ? error.message : 'unknown'),
25
- * );
26
- *
27
- * assert.deepStrictEqual(resolved, Result.ok('ok'));
28
- *
29
- * assert.deepStrictEqual(rejected, Result.err('boom'));
30
- *
31
- * // Without `mapError`, the rejection reason is carried as-is.
32
- * const untyped = await AsyncResult.fromPromise(
33
- * Promise.reject(new Error('boom')),
34
- * );
35
- *
36
- * assert.isTrue(Result.isErr(untyped));
37
- * ```
38
- *
39
- * @template S The type of the success value.
40
- * @template E The type of the error value.
41
- * @param promise The Promise to convert.
42
- * @param mapError The function applied to the rejection reason to produce the
43
- * error value. Omit it to carry the rejection reason as `unknown`.
44
- * @returns An `AsyncResult<S, E>` that never rejects for the input Promise's
45
- * failure.
46
- */
47
- export function fromPromise<S>(promise: Promise<S>): AsyncResult<S, unknown>;
48
-
49
- export function fromPromise<S, E>(
50
- promise: Promise<S>,
51
- mapError: (error: unknown) => E,
52
- ): AsyncResult<S, E>;
53
-
54
- export function fromPromise<S, E>(
55
- promise: Promise<S>,
56
- mapError?: (error: unknown) => E,
57
- ): AsyncResult<S, E> | AsyncResult<S, unknown> {
58
- return mapError === undefined
59
- ? fromPromiseImpl(promise, (error: unknown) => error)
60
- : fromPromiseImpl(promise, mapError);
61
- }
62
-
63
- const fromPromiseImpl = <S, E>(
64
- promise: Promise<S>,
65
- mapError: (error: unknown) => E,
66
- ): AsyncResult<S, E> =>
67
- promise
68
- .then((value) => Result.ok(value))
69
- .catch((error: unknown) => Result.err(mapError(error)));
@@ -1,78 +0,0 @@
1
- import { Result } from '../../result/index.mjs';
2
- import { type AsyncResult } from '../async-result.mjs';
3
-
4
- /**
5
- * Wraps a function returning a `Promise` in an `AsyncResult`. Both a
6
- * synchronous `throw` while calling `fn` and an asynchronous rejection of the
7
- * returned Promise are caught, passed through `mapError`, and carried as
8
- * `Err`.
9
- *
10
- * Passing `mapError` is what gives the error channel a concrete type `E`.
11
- * Omitting it carries the thrown value through untouched, leaving the error
12
- * channel as `unknown`.
13
- *
14
- * @example
15
- *
16
- * ```ts
17
- * const success = await AsyncResult.fromThrowable(
18
- * () => Promise.resolve(2),
19
- * (error) => `failed: ${String(error)}`,
20
- * );
21
- *
22
- * const failure = await AsyncResult.fromThrowable(
23
- * (): Promise<number> => {
24
- * throw new Error('boom');
25
- * },
26
- * (error) => (isError(error) ? error.message : 'unknown'),
27
- * );
28
- *
29
- * assert.deepStrictEqual(success, Result.ok(2));
30
- *
31
- * assert.deepStrictEqual(failure, Result.err('boom'));
32
- *
33
- * // Without `mapError`, the thrown value is carried as-is.
34
- * const untyped = await AsyncResult.fromThrowable(
35
- * (): Promise<number> => {
36
- * throw new Error('boom');
37
- * },
38
- * );
39
- *
40
- * assert.isTrue(Result.isErr(untyped));
41
- * ```
42
- *
43
- * @template S The type of the success value.
44
- * @template E The type of the error value.
45
- * @param fn The function to execute; it may throw synchronously or return a
46
- * rejecting Promise.
47
- * @param mapError The function applied to the thrown value or rejection
48
- * reason to produce the error value. Omit it to carry the thrown value as
49
- * `unknown`.
50
- * @returns An `AsyncResult<S, E>` containing either the resolved value or the
51
- * mapped error.
52
- */
53
- export function fromThrowable<S>(fn: () => Promise<S>): AsyncResult<S, unknown>;
54
-
55
- export function fromThrowable<S, E>(
56
- fn: () => Promise<S>,
57
- mapError: (error: unknown) => E,
58
- ): AsyncResult<S, E>;
59
-
60
- export function fromThrowable<S, E>(
61
- fn: () => Promise<S>,
62
- mapError?: (error: unknown) => E,
63
- ): AsyncResult<S, E> | AsyncResult<S, unknown> {
64
- return mapError === undefined
65
- ? fromThrowableImpl(fn, (error: unknown) => error)
66
- : fromThrowableImpl(fn, mapError);
67
- }
68
-
69
- const fromThrowableImpl = async <S, E>(
70
- fn: () => Promise<S>,
71
- mapError: (error: unknown) => E,
72
- ): AsyncResult<S, E> => {
73
- try {
74
- return Result.ok(await fn());
75
- } catch (error) {
76
- return Result.err(mapError(error));
77
- }
78
- };
@@ -1,84 +0,0 @@
1
- import { Result } from '../../result/index.mjs';
2
- import { type AsyncResult } from '../async-result.mjs';
3
-
4
- /**
5
- * Maps an `AsyncResult<S, E>` to `AsyncResult<S, E2>` by applying a function
6
- * to the error value. The mapping function may be synchronous or return a
7
- * `Promise`; both are handled transparently. If the `AsyncResult` resolves to
8
- * `Ok`, the original `Ok` is passed through and the function is not called.
9
- *
10
- * If `mapFn` throws or returns a rejecting Promise, the rejection propagates
11
- * as-is — it is **not** caught and converted into an `Err`.
12
- *
13
- * @example
14
- *
15
- * ```ts
16
- * const errValue = AsyncResult.fromPromise(
17
- * Promise.reject(new Error('boom')),
18
- * () => 'failure',
19
- * );
20
- *
21
- * const uppercased = await AsyncResult.mapErr(errValue, (error) =>
22
- * error.toUpperCase(),
23
- * );
24
- *
25
- * assert.deepStrictEqual(uppercased, Result.err('FAILURE'));
26
- * ```
27
- *
28
- * @template S The type of the success value.
29
- * @template E The type of the error value of the input.
30
- * @template E2 The type of the error value returned by the mapping function.
31
- * @param asyncResult The `AsyncResult` to map.
32
- * @param mapFn The function to apply to the error value if present.
33
- * @returns A new `AsyncResult<S, E2>`.
34
- */
35
- export function mapErr<S, E, E2>(
36
- asyncResult: AsyncResult<S, E>,
37
- mapFn: (error: E) => E2 | Promise<E2>,
38
- ): AsyncResult<S, E2>;
39
-
40
- // Curried version
41
- //
42
- // Unlike `Result.mapErr`, the returned function can simply be generic over
43
- // `S`: an `AsyncResult` is a `Promise`, not a discriminated union, so there
44
- // is no literal-narrowing problem that would require the whole-result
45
- // generic trick used by the synchronous combinators.
46
- export function mapErr<E, E2>(
47
- mapFn: (error: E) => E2 | Promise<E2>,
48
- ): <S>(asyncResult: AsyncResult<S, E>) => AsyncResult<S, E2>;
49
-
50
- export function mapErr<S, E, E2>(
51
- ...args:
52
- | readonly [
53
- asyncResult: AsyncResult<S, E>,
54
- mapFn: (error: E) => E2 | Promise<E2>,
55
- ]
56
- | readonly [mapFn: (error: E) => E2 | Promise<E2>]
57
- ):
58
- | AsyncResult<S, E2>
59
- | ((asyncResult: AsyncResult<S, E>) => AsyncResult<S, E2>) {
60
- switch (args.length) {
61
- case 2: {
62
- // Direct version: first argument is asyncResult
63
- const [asyncResult, mapFn] = args;
64
-
65
- return mapErrImpl(asyncResult, mapFn);
66
- }
67
-
68
- case 1: {
69
- // Curried version: first argument is mapping function
70
- const [mapFn] = args;
71
-
72
- return (asyncResult: AsyncResult<S, E>) => mapErrImpl(asyncResult, mapFn);
73
- }
74
- }
75
- }
76
-
77
- const mapErrImpl = async <S, E, E2>(
78
- asyncResult: AsyncResult<S, E>,
79
- mapFn: (error: E) => E2 | Promise<E2>,
80
- ): AsyncResult<S, E2> => {
81
- const result = await asyncResult;
82
-
83
- return Result.isOk(result) ? result : Result.err(await mapFn(result.value));
84
- };