ts-data-forge 14.6.3 → 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 (560) hide show
  1. package/README.md +2 -1
  2. package/dist/array/impl/array-utils-modification.mjs +1 -1
  3. package/dist/array/impl/array-utils-transformation.mjs +2 -2
  4. package/dist/expect-type.d.mts +2 -70
  5. package/dist/expect-type.d.mts.map +1 -1
  6. package/dist/expect-type.mjs +1 -68
  7. package/dist/expect-type.mjs.map +1 -1
  8. package/dist/functional/index.d.mts +11 -6
  9. package/dist/functional/index.d.mts.map +1 -1
  10. package/dist/functional/index.mjs +10 -6
  11. package/dist/functional/index.mjs.map +1 -1
  12. package/dist/guard/has-key.d.mts +2 -51
  13. package/dist/guard/has-key.d.mts.map +1 -1
  14. package/dist/guard/has-key.mjs +1 -41
  15. package/dist/guard/has-key.mjs.map +1 -1
  16. package/dist/guard/is-non-null-object.d.mts +2 -34
  17. package/dist/guard/is-non-null-object.d.mts.map +1 -1
  18. package/dist/guard/is-non-null-object.mjs +1 -34
  19. package/dist/guard/is-non-null-object.mjs.map +1 -1
  20. package/dist/guard/is-record.d.mts +2 -89
  21. package/dist/guard/is-record.d.mts.map +1 -1
  22. package/dist/guard/is-record.mjs +1 -88
  23. package/dist/guard/is-record.mjs.map +1 -1
  24. package/dist/guard/key-is-in.d.mts +2 -42
  25. package/dist/guard/key-is-in.d.mts.map +1 -1
  26. package/dist/guard/key-is-in.mjs +1 -40
  27. package/dist/guard/key-is-in.mjs.map +1 -1
  28. package/dist/number/num.d.mts +9 -1
  29. package/dist/number/num.d.mts.map +1 -1
  30. package/dist/number/num.mjs +24 -16
  31. package/dist/number/num.mjs.map +1 -1
  32. package/dist/others/index.d.mts +1 -0
  33. package/dist/others/index.d.mts.map +1 -1
  34. package/dist/others/index.mjs +1 -0
  35. package/dist/others/index.mjs.map +1 -1
  36. package/dist/others/panic-error.d.mts +9 -0
  37. package/dist/others/panic-error.d.mts.map +1 -0
  38. package/dist/others/panic-error.mjs +9 -0
  39. package/dist/others/panic-error.mjs.map +1 -0
  40. package/dist/others/unknown-to-string.d.mts +2 -37
  41. package/dist/others/unknown-to-string.d.mts.map +1 -1
  42. package/dist/others/unknown-to-string.mjs +1 -92
  43. package/dist/others/unknown-to-string.mjs.map +1 -1
  44. package/dist/types.d.mts +1 -41
  45. package/dist/types.d.mts.map +1 -1
  46. package/dist/types.mjs +0 -1
  47. package/dist/types.mjs.map +1 -1
  48. package/package.json +6 -6
  49. package/src/expect-type.mts +2 -78
  50. package/src/functional/index.mts +31 -6
  51. package/src/guard/has-key.mts +2 -72
  52. package/src/guard/is-non-null-object.mts +2 -36
  53. package/src/guard/is-record.mts +2 -95
  54. package/src/guard/key-is-in.mts +2 -49
  55. package/src/number/num.mts +36 -28
  56. package/src/others/index.mts +1 -0
  57. package/src/others/panic-error.mts +8 -0
  58. package/src/others/unknown-to-string.mts +2 -111
  59. package/src/types.mts +4 -54
  60. package/dist/functional/async-result/async-result.d.mts +0 -16
  61. package/dist/functional/async-result/async-result.d.mts.map +0 -1
  62. package/dist/functional/async-result/async-result.mjs +0 -2
  63. package/dist/functional/async-result/async-result.mjs.map +0 -1
  64. package/dist/functional/async-result/impl/async-result-flat-map.d.mts +0 -39
  65. package/dist/functional/async-result/impl/async-result-flat-map.d.mts.map +0 -1
  66. package/dist/functional/async-result/impl/async-result-flat-map.mjs +0 -23
  67. package/dist/functional/async-result/impl/async-result-flat-map.mjs.map +0 -1
  68. package/dist/functional/async-result/impl/async-result-from-promise.d.mts +0 -47
  69. package/dist/functional/async-result/impl/async-result-from-promise.d.mts.map +0 -1
  70. package/dist/functional/async-result/impl/async-result-from-promise.mjs +0 -10
  71. package/dist/functional/async-result/impl/async-result-from-promise.mjs.map +0 -1
  72. package/dist/functional/async-result/impl/async-result-from-throwable.d.mts +0 -53
  73. package/dist/functional/async-result/impl/async-result-from-throwable.d.mts.map +0 -1
  74. package/dist/functional/async-result/impl/async-result-from-throwable.mjs +0 -15
  75. package/dist/functional/async-result/impl/async-result-from-throwable.mjs.map +0 -1
  76. package/dist/functional/async-result/impl/async-result-map-err.d.mts +0 -35
  77. package/dist/functional/async-result/impl/async-result-map-err.d.mts.map +0 -1
  78. package/dist/functional/async-result/impl/async-result-map-err.mjs +0 -20
  79. package/dist/functional/async-result/impl/async-result-map-err.mjs.map +0 -1
  80. package/dist/functional/async-result/impl/async-result-map.d.mts +0 -45
  81. package/dist/functional/async-result/impl/async-result-map.d.mts.map +0 -1
  82. package/dist/functional/async-result/impl/async-result-map.mjs +0 -20
  83. package/dist/functional/async-result/impl/async-result-map.mjs.map +0 -1
  84. package/dist/functional/async-result/impl/async-result-unwrap-or.d.mts +0 -34
  85. package/dist/functional/async-result/impl/async-result-unwrap-or.d.mts.map +0 -1
  86. package/dist/functional/async-result/impl/async-result-unwrap-or.mjs +0 -37
  87. package/dist/functional/async-result/impl/async-result-unwrap-or.mjs.map +0 -1
  88. package/dist/functional/async-result/impl/index.d.mts +0 -8
  89. package/dist/functional/async-result/impl/index.d.mts.map +0 -1
  90. package/dist/functional/async-result/impl/index.mjs +0 -8
  91. package/dist/functional/async-result/impl/index.mjs.map +0 -1
  92. package/dist/functional/async-result/impl/types.d.mts +0 -45
  93. package/dist/functional/async-result/impl/types.d.mts.map +0 -1
  94. package/dist/functional/async-result/impl/types.mjs +0 -2
  95. package/dist/functional/async-result/impl/types.mjs.map +0 -1
  96. package/dist/functional/async-result/index.d.mts +0 -2
  97. package/dist/functional/async-result/index.d.mts.map +0 -1
  98. package/dist/functional/async-result/index.mjs +0 -2
  99. package/dist/functional/async-result/index.mjs.map +0 -1
  100. package/dist/functional/match.d.mts +0 -80
  101. package/dist/functional/match.d.mts.map +0 -1
  102. package/dist/functional/match.mjs +0 -31
  103. package/dist/functional/match.mjs.map +0 -1
  104. package/dist/functional/optional/impl/index.d.mts +0 -19
  105. package/dist/functional/optional/impl/index.d.mts.map +0 -1
  106. package/dist/functional/optional/impl/index.mjs +0 -19
  107. package/dist/functional/optional/impl/index.mjs.map +0 -1
  108. package/dist/functional/optional/impl/optional-expect-to-be.d.mts +0 -37
  109. package/dist/functional/optional/impl/optional-expect-to-be.d.mts.map +0 -1
  110. package/dist/functional/optional/impl/optional-expect-to-be.mjs +0 -22
  111. package/dist/functional/optional/impl/optional-expect-to-be.mjs.map +0 -1
  112. package/dist/functional/optional/impl/optional-filter.d.mts +0 -33
  113. package/dist/functional/optional/impl/optional-filter.d.mts.map +0 -1
  114. package/dist/functional/optional/impl/optional-filter.mjs +0 -25
  115. package/dist/functional/optional/impl/optional-filter.mjs.map +0 -1
  116. package/dist/functional/optional/impl/optional-flat-map.d.mts +0 -39
  117. package/dist/functional/optional/impl/optional-flat-map.d.mts.map +0 -1
  118. package/dist/functional/optional/impl/optional-flat-map.mjs +0 -18
  119. package/dist/functional/optional/impl/optional-flat-map.mjs.map +0 -1
  120. package/dist/functional/optional/impl/optional-from-nullable.d.mts +0 -27
  121. package/dist/functional/optional/impl/optional-from-nullable.d.mts.map +0 -1
  122. package/dist/functional/optional/impl/optional-from-nullable.mjs +0 -28
  123. package/dist/functional/optional/impl/optional-from-nullable.mjs.map +0 -1
  124. package/dist/functional/optional/impl/optional-is-none.d.mts +0 -23
  125. package/dist/functional/optional/impl/optional-is-none.d.mts.map +0 -1
  126. package/dist/functional/optional/impl/optional-is-none.mjs +0 -22
  127. package/dist/functional/optional/impl/optional-is-none.mjs.map +0 -1
  128. package/dist/functional/optional/impl/optional-is-optional.d.mts +0 -21
  129. package/dist/functional/optional/impl/optional-is-optional.d.mts.map +0 -1
  130. package/dist/functional/optional/impl/optional-is-optional.mjs +0 -26
  131. package/dist/functional/optional/impl/optional-is-optional.mjs.map +0 -1
  132. package/dist/functional/optional/impl/optional-is-some.d.mts +0 -24
  133. package/dist/functional/optional/impl/optional-is-some.d.mts.map +0 -1
  134. package/dist/functional/optional/impl/optional-is-some.mjs +0 -23
  135. package/dist/functional/optional/impl/optional-is-some.mjs.map +0 -1
  136. package/dist/functional/optional/impl/optional-map.d.mts +0 -34
  137. package/dist/functional/optional/impl/optional-map.d.mts.map +0 -1
  138. package/dist/functional/optional/impl/optional-map.mjs +0 -22
  139. package/dist/functional/optional/impl/optional-map.mjs.map +0 -1
  140. package/dist/functional/optional/impl/optional-match.d.mts +0 -48
  141. package/dist/functional/optional/impl/optional-match.d.mts.map +0 -1
  142. package/dist/functional/optional/impl/optional-match.mjs +0 -20
  143. package/dist/functional/optional/impl/optional-match.mjs.map +0 -1
  144. package/dist/functional/optional/impl/optional-none.d.mts +0 -19
  145. package/dist/functional/optional/impl/optional-none.d.mts.map +0 -1
  146. package/dist/functional/optional/impl/optional-none.mjs +0 -19
  147. package/dist/functional/optional/impl/optional-none.mjs.map +0 -1
  148. package/dist/functional/optional/impl/optional-or-else.d.mts +0 -43
  149. package/dist/functional/optional/impl/optional-or-else.d.mts.map +0 -1
  150. package/dist/functional/optional/impl/optional-or-else.mjs +0 -16
  151. package/dist/functional/optional/impl/optional-or-else.mjs.map +0 -1
  152. package/dist/functional/optional/impl/optional-some.d.mts +0 -22
  153. package/dist/functional/optional/impl/optional-some.d.mts.map +0 -1
  154. package/dist/functional/optional/impl/optional-some.mjs +0 -25
  155. package/dist/functional/optional/impl/optional-some.mjs.map +0 -1
  156. package/dist/functional/optional/impl/optional-to-nullable.d.mts +0 -30
  157. package/dist/functional/optional/impl/optional-to-nullable.d.mts.map +0 -1
  158. package/dist/functional/optional/impl/optional-to-nullable.mjs +0 -30
  159. package/dist/functional/optional/impl/optional-to-nullable.mjs.map +0 -1
  160. package/dist/functional/optional/impl/optional-unwrap-or.d.mts +0 -37
  161. package/dist/functional/optional/impl/optional-unwrap-or.d.mts.map +0 -1
  162. package/dist/functional/optional/impl/optional-unwrap-or.mjs +0 -16
  163. package/dist/functional/optional/impl/optional-unwrap-or.mjs.map +0 -1
  164. package/dist/functional/optional/impl/optional-unwrap-throw.d.mts +0 -31
  165. package/dist/functional/optional/impl/optional-unwrap-throw.d.mts.map +0 -1
  166. package/dist/functional/optional/impl/optional-unwrap-throw.mjs +0 -36
  167. package/dist/functional/optional/impl/optional-unwrap-throw.mjs.map +0 -1
  168. package/dist/functional/optional/impl/optional-unwrap.d.mts +0 -32
  169. package/dist/functional/optional/impl/optional-unwrap.d.mts.map +0 -1
  170. package/dist/functional/optional/impl/optional-unwrap.mjs +0 -8
  171. package/dist/functional/optional/impl/optional-unwrap.mjs.map +0 -1
  172. package/dist/functional/optional/impl/optional-zip.d.mts +0 -35
  173. package/dist/functional/optional/impl/optional-zip.d.mts.map +0 -1
  174. package/dist/functional/optional/impl/optional-zip.mjs +0 -39
  175. package/dist/functional/optional/impl/optional-zip.mjs.map +0 -1
  176. package/dist/functional/optional/impl/tag.d.mts +0 -6
  177. package/dist/functional/optional/impl/tag.d.mts.map +0 -1
  178. package/dist/functional/optional/impl/tag.mjs +0 -4
  179. package/dist/functional/optional/impl/tag.mjs.map +0 -1
  180. package/dist/functional/optional/impl/types.d.mts +0 -24
  181. package/dist/functional/optional/impl/types.d.mts.map +0 -1
  182. package/dist/functional/optional/impl/types.mjs +0 -2
  183. package/dist/functional/optional/impl/types.mjs.map +0 -1
  184. package/dist/functional/optional/index.d.mts +0 -2
  185. package/dist/functional/optional/index.d.mts.map +0 -1
  186. package/dist/functional/optional/index.mjs +0 -2
  187. package/dist/functional/optional/index.mjs.map +0 -1
  188. package/dist/functional/optional/optional.d.mts +0 -16
  189. package/dist/functional/optional/optional.d.mts.map +0 -1
  190. package/dist/functional/optional/optional.mjs +0 -2
  191. package/dist/functional/optional/optional.mjs.map +0 -1
  192. package/dist/functional/pipe.d.mts +0 -102
  193. package/dist/functional/pipe.d.mts.map +0 -1
  194. package/dist/functional/pipe.mjs +0 -45
  195. package/dist/functional/pipe.mjs.map +0 -1
  196. package/dist/functional/result/impl/index.d.mts +0 -28
  197. package/dist/functional/result/impl/index.d.mts.map +0 -1
  198. package/dist/functional/result/impl/index.mjs +0 -28
  199. package/dist/functional/result/impl/index.mjs.map +0 -1
  200. package/dist/functional/result/impl/result-err.d.mts +0 -28
  201. package/dist/functional/result/impl/result-err.d.mts.map +0 -1
  202. package/dist/functional/result/impl/result-err.mjs +0 -31
  203. package/dist/functional/result/impl/result-err.mjs.map +0 -1
  204. package/dist/functional/result/impl/result-expect-to-be.d.mts +0 -33
  205. package/dist/functional/result/impl/result-expect-to-be.d.mts.map +0 -1
  206. package/dist/functional/result/impl/result-expect-to-be.mjs +0 -23
  207. package/dist/functional/result/impl/result-expect-to-be.mjs.map +0 -1
  208. package/dist/functional/result/impl/result-flat-map.d.mts +0 -45
  209. package/dist/functional/result/impl/result-flat-map.d.mts.map +0 -1
  210. package/dist/functional/result/impl/result-flat-map.mjs +0 -21
  211. package/dist/functional/result/impl/result-flat-map.mjs.map +0 -1
  212. package/dist/functional/result/impl/result-fold.d.mts +0 -50
  213. package/dist/functional/result/impl/result-fold.d.mts.map +0 -1
  214. package/dist/functional/result/impl/result-fold.mjs +0 -23
  215. package/dist/functional/result/impl/result-fold.mjs.map +0 -1
  216. package/dist/functional/result/impl/result-from-optional.d.mts +0 -41
  217. package/dist/functional/result/impl/result-from-optional.d.mts.map +0 -1
  218. package/dist/functional/result/impl/result-from-optional.mjs +0 -21
  219. package/dist/functional/result/impl/result-from-optional.mjs.map +0 -1
  220. package/dist/functional/result/impl/result-from-promise.d.mts +0 -43
  221. package/dist/functional/result/impl/result-from-promise.d.mts.map +0 -1
  222. package/dist/functional/result/impl/result-from-promise.mjs +0 -39
  223. package/dist/functional/result/impl/result-from-promise.mjs.map +0 -1
  224. package/dist/functional/result/impl/result-from-throwable.d.mts +0 -32
  225. package/dist/functional/result/impl/result-from-throwable.d.mts.map +0 -1
  226. package/dist/functional/result/impl/result-from-throwable.mjs +0 -46
  227. package/dist/functional/result/impl/result-from-throwable.mjs.map +0 -1
  228. package/dist/functional/result/impl/result-is-err.d.mts +0 -23
  229. package/dist/functional/result/impl/result-is-err.d.mts.map +0 -1
  230. package/dist/functional/result/impl/result-is-err.mjs +0 -22
  231. package/dist/functional/result/impl/result-is-err.mjs.map +0 -1
  232. package/dist/functional/result/impl/result-is-ok.d.mts +0 -23
  233. package/dist/functional/result/impl/result-is-ok.d.mts.map +0 -1
  234. package/dist/functional/result/impl/result-is-ok.mjs +0 -22
  235. package/dist/functional/result/impl/result-is-ok.mjs.map +0 -1
  236. package/dist/functional/result/impl/result-is-result.d.mts +0 -22
  237. package/dist/functional/result/impl/result-is-result.d.mts.map +0 -1
  238. package/dist/functional/result/impl/result-is-result.mjs +0 -26
  239. package/dist/functional/result/impl/result-is-result.mjs.map +0 -1
  240. package/dist/functional/result/impl/result-map-err.d.mts +0 -39
  241. package/dist/functional/result/impl/result-map-err.d.mts.map +0 -1
  242. package/dist/functional/result/impl/result-map-err.mjs +0 -22
  243. package/dist/functional/result/impl/result-map-err.mjs.map +0 -1
  244. package/dist/functional/result/impl/result-map.d.mts +0 -39
  245. package/dist/functional/result/impl/result-map.d.mts.map +0 -1
  246. package/dist/functional/result/impl/result-map.mjs +0 -22
  247. package/dist/functional/result/impl/result-map.mjs.map +0 -1
  248. package/dist/functional/result/impl/result-match.d.mts +0 -47
  249. package/dist/functional/result/impl/result-match.d.mts.map +0 -1
  250. package/dist/functional/result/impl/result-match.mjs +0 -20
  251. package/dist/functional/result/impl/result-match.mjs.map +0 -1
  252. package/dist/functional/result/impl/result-ok.d.mts +0 -28
  253. package/dist/functional/result/impl/result-ok.d.mts.map +0 -1
  254. package/dist/functional/result/impl/result-ok.mjs +0 -31
  255. package/dist/functional/result/impl/result-ok.mjs.map +0 -1
  256. package/dist/functional/result/impl/result-or-else.d.mts +0 -40
  257. package/dist/functional/result/impl/result-or-else.d.mts.map +0 -1
  258. package/dist/functional/result/impl/result-or-else.mjs +0 -17
  259. package/dist/functional/result/impl/result-or-else.mjs.map +0 -1
  260. package/dist/functional/result/impl/result-safe-try.d.mts +0 -51
  261. package/dist/functional/result/impl/result-safe-try.d.mts.map +0 -1
  262. package/dist/functional/result/impl/result-safe-try.mjs +0 -35
  263. package/dist/functional/result/impl/result-safe-try.mjs.map +0 -1
  264. package/dist/functional/result/impl/result-safe-unwrap.d.mts +0 -36
  265. package/dist/functional/result/impl/result-safe-unwrap.d.mts.map +0 -1
  266. package/dist/functional/result/impl/result-safe-unwrap.mjs +0 -42
  267. package/dist/functional/result/impl/result-safe-unwrap.mjs.map +0 -1
  268. package/dist/functional/result/impl/result-swap.d.mts +0 -23
  269. package/dist/functional/result/impl/result-swap.d.mts.map +0 -1
  270. package/dist/functional/result/impl/result-swap.mjs +0 -27
  271. package/dist/functional/result/impl/result-swap.mjs.map +0 -1
  272. package/dist/functional/result/impl/result-to-optional.d.mts +0 -32
  273. package/dist/functional/result/impl/result-to-optional.d.mts.map +0 -1
  274. package/dist/functional/result/impl/result-to-optional.mjs +0 -32
  275. package/dist/functional/result/impl/result-to-optional.mjs.map +0 -1
  276. package/dist/functional/result/impl/result-unwrap-err-or.d.mts +0 -33
  277. package/dist/functional/result/impl/result-unwrap-err-or.d.mts.map +0 -1
  278. package/dist/functional/result/impl/result-unwrap-err-or.mjs +0 -17
  279. package/dist/functional/result/impl/result-unwrap-err-or.mjs.map +0 -1
  280. package/dist/functional/result/impl/result-unwrap-err-throw.d.mts +0 -33
  281. package/dist/functional/result/impl/result-unwrap-err-throw.d.mts.map +0 -1
  282. package/dist/functional/result/impl/result-unwrap-err-throw.mjs +0 -46
  283. package/dist/functional/result/impl/result-unwrap-err-throw.mjs.map +0 -1
  284. package/dist/functional/result/impl/result-unwrap-err.d.mts +0 -33
  285. package/dist/functional/result/impl/result-unwrap-err.d.mts.map +0 -1
  286. package/dist/functional/result/impl/result-unwrap-err.mjs +0 -34
  287. package/dist/functional/result/impl/result-unwrap-err.mjs.map +0 -1
  288. package/dist/functional/result/impl/result-unwrap-ok-or.d.mts +0 -33
  289. package/dist/functional/result/impl/result-unwrap-ok-or.d.mts.map +0 -1
  290. package/dist/functional/result/impl/result-unwrap-ok-or.mjs +0 -17
  291. package/dist/functional/result/impl/result-unwrap-ok-or.mjs.map +0 -1
  292. package/dist/functional/result/impl/result-unwrap-ok.d.mts +0 -26
  293. package/dist/functional/result/impl/result-unwrap-ok.d.mts.map +0 -1
  294. package/dist/functional/result/impl/result-unwrap-ok.mjs +0 -8
  295. package/dist/functional/result/impl/result-unwrap-ok.mjs.map +0 -1
  296. package/dist/functional/result/impl/result-unwrap-throw.d.mts +0 -33
  297. package/dist/functional/result/impl/result-unwrap-throw.d.mts.map +0 -1
  298. package/dist/functional/result/impl/result-unwrap-throw.mjs +0 -40
  299. package/dist/functional/result/impl/result-unwrap-throw.mjs.map +0 -1
  300. package/dist/functional/result/impl/result-zip.d.mts +0 -32
  301. package/dist/functional/result/impl/result-zip.d.mts.map +0 -1
  302. package/dist/functional/result/impl/result-zip.mjs +0 -37
  303. package/dist/functional/result/impl/result-zip.mjs.map +0 -1
  304. package/dist/functional/result/impl/tag.d.mts +0 -6
  305. package/dist/functional/result/impl/tag.d.mts.map +0 -1
  306. package/dist/functional/result/impl/tag.mjs +0 -4
  307. package/dist/functional/result/impl/tag.mjs.map +0 -1
  308. package/dist/functional/result/impl/types.d.mts +0 -31
  309. package/dist/functional/result/impl/types.d.mts.map +0 -1
  310. package/dist/functional/result/impl/types.mjs +0 -2
  311. package/dist/functional/result/impl/types.mjs.map +0 -1
  312. package/dist/functional/result/index.d.mts +0 -2
  313. package/dist/functional/result/index.d.mts.map +0 -1
  314. package/dist/functional/result/index.mjs +0 -2
  315. package/dist/functional/result/index.mjs.map +0 -1
  316. package/dist/functional/result/result.d.mts +0 -16
  317. package/dist/functional/result/result.d.mts.map +0 -1
  318. package/dist/functional/result/result.mjs +0 -2
  319. package/dist/functional/result/result.mjs.map +0 -1
  320. package/dist/functional/ternary-result/impl/index.d.mts +0 -29
  321. package/dist/functional/ternary-result/impl/index.d.mts.map +0 -1
  322. package/dist/functional/ternary-result/impl/index.mjs +0 -29
  323. package/dist/functional/ternary-result/impl/index.mjs.map +0 -1
  324. package/dist/functional/ternary-result/impl/tag.d.mts +0 -8
  325. package/dist/functional/ternary-result/impl/tag.d.mts.map +0 -1
  326. package/dist/functional/ternary-result/impl/tag.mjs +0 -6
  327. package/dist/functional/ternary-result/impl/tag.mjs.map +0 -1
  328. package/dist/functional/ternary-result/impl/ternary-result-err.d.mts +0 -16
  329. package/dist/functional/ternary-result/impl/ternary-result-err.d.mts.map +0 -1
  330. package/dist/functional/ternary-result/impl/ternary-result-err.mjs +0 -19
  331. package/dist/functional/ternary-result/impl/ternary-result-err.mjs.map +0 -1
  332. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.d.mts +0 -24
  333. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.d.mts.map +0 -1
  334. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.mjs +0 -21
  335. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.mjs.map +0 -1
  336. package/dist/functional/ternary-result/impl/ternary-result-flat-map.d.mts +0 -39
  337. package/dist/functional/ternary-result/impl/ternary-result-flat-map.d.mts.map +0 -1
  338. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs +0 -38
  339. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs.map +0 -1
  340. package/dist/functional/ternary-result/impl/ternary-result-fold.d.mts +0 -30
  341. package/dist/functional/ternary-result/impl/ternary-result-fold.d.mts.map +0 -1
  342. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs +0 -33
  343. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs.map +0 -1
  344. package/dist/functional/ternary-result/impl/ternary-result-from-promise.d.mts +0 -23
  345. package/dist/functional/ternary-result/impl/ternary-result-from-promise.d.mts.map +0 -1
  346. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs +0 -23
  347. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs.map +0 -1
  348. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.d.mts +0 -20
  349. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.d.mts.map +0 -1
  350. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs +0 -33
  351. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs.map +0 -1
  352. package/dist/functional/ternary-result/impl/ternary-result-is-err.d.mts +0 -21
  353. package/dist/functional/ternary-result/impl/ternary-result-is-err.d.mts.map +0 -1
  354. package/dist/functional/ternary-result/impl/ternary-result-is-err.mjs +0 -20
  355. package/dist/functional/ternary-result/impl/ternary-result-is-err.mjs.map +0 -1
  356. package/dist/functional/ternary-result/impl/ternary-result-is-ok.d.mts +0 -23
  357. package/dist/functional/ternary-result/impl/ternary-result-is-ok.d.mts.map +0 -1
  358. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs +0 -22
  359. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs.map +0 -1
  360. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.d.mts +0 -22
  361. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.d.mts.map +0 -1
  362. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs +0 -28
  363. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs.map +0 -1
  364. package/dist/functional/ternary-result/impl/ternary-result-is-warn.d.mts +0 -22
  365. package/dist/functional/ternary-result/impl/ternary-result-is-warn.d.mts.map +0 -1
  366. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs +0 -21
  367. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs.map +0 -1
  368. package/dist/functional/ternary-result/impl/ternary-result-map-err.d.mts +0 -27
  369. package/dist/functional/ternary-result/impl/ternary-result-map-err.d.mts.map +0 -1
  370. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs +0 -23
  371. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs.map +0 -1
  372. package/dist/functional/ternary-result/impl/ternary-result-map-warn.d.mts +0 -28
  373. package/dist/functional/ternary-result/impl/ternary-result-map-warn.d.mts.map +0 -1
  374. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs +0 -26
  375. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs.map +0 -1
  376. package/dist/functional/ternary-result/impl/ternary-result-map.d.mts +0 -36
  377. package/dist/functional/ternary-result/impl/ternary-result-map.d.mts.map +0 -1
  378. package/dist/functional/ternary-result/impl/ternary-result-map.mjs +0 -32
  379. package/dist/functional/ternary-result/impl/ternary-result-map.mjs.map +0 -1
  380. package/dist/functional/ternary-result/impl/ternary-result-ok.d.mts +0 -17
  381. package/dist/functional/ternary-result/impl/ternary-result-ok.d.mts.map +0 -1
  382. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs +0 -20
  383. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs.map +0 -1
  384. package/dist/functional/ternary-result/impl/ternary-result-or-else.d.mts +0 -29
  385. package/dist/functional/ternary-result/impl/ternary-result-or-else.d.mts.map +0 -1
  386. package/dist/functional/ternary-result/impl/ternary-result-or-else.mjs +0 -16
  387. package/dist/functional/ternary-result/impl/ternary-result-or-else.mjs.map +0 -1
  388. package/dist/functional/ternary-result/impl/ternary-result-to-optional.d.mts +0 -23
  389. package/dist/functional/ternary-result/impl/ternary-result-to-optional.d.mts.map +0 -1
  390. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs +0 -26
  391. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs.map +0 -1
  392. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.d.mts +0 -28
  393. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.d.mts.map +0 -1
  394. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.mjs +0 -14
  395. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.mjs.map +0 -1
  396. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.d.mts +0 -20
  397. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.d.mts.map +0 -1
  398. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs +0 -34
  399. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs.map +0 -1
  400. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.d.mts +0 -20
  401. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.d.mts.map +0 -1
  402. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs +0 -21
  403. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs.map +0 -1
  404. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.d.mts +0 -25
  405. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.d.mts.map +0 -1
  406. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mjs +0 -14
  407. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mjs.map +0 -1
  408. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.d.mts +0 -20
  409. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.d.mts.map +0 -1
  410. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs +0 -10
  411. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs.map +0 -1
  412. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.d.mts +0 -21
  413. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.d.mts.map +0 -1
  414. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs +0 -35
  415. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs.map +0 -1
  416. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.d.mts +0 -22
  417. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.d.mts.map +0 -1
  418. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mjs +0 -14
  419. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mjs.map +0 -1
  420. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.d.mts +0 -20
  421. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.d.mts.map +0 -1
  422. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs +0 -30
  423. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs.map +0 -1
  424. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.d.mts +0 -20
  425. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.d.mts.map +0 -1
  426. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs +0 -21
  427. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs.map +0 -1
  428. package/dist/functional/ternary-result/impl/ternary-result-warn.d.mts +0 -19
  429. package/dist/functional/ternary-result/impl/ternary-result-warn.d.mts.map +0 -1
  430. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs +0 -23
  431. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs.map +0 -1
  432. package/dist/functional/ternary-result/impl/ternary-result-zip.d.mts +0 -34
  433. package/dist/functional/ternary-result/impl/ternary-result-zip.d.mts.map +0 -1
  434. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs +0 -52
  435. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs.map +0 -1
  436. package/dist/functional/ternary-result/impl/types.d.mts +0 -26
  437. package/dist/functional/ternary-result/impl/types.d.mts.map +0 -1
  438. package/dist/functional/ternary-result/impl/types.mjs +0 -2
  439. package/dist/functional/ternary-result/impl/types.mjs.map +0 -1
  440. package/dist/functional/ternary-result/impl/variant-name.d.mts +0 -4
  441. package/dist/functional/ternary-result/impl/variant-name.d.mts.map +0 -1
  442. package/dist/functional/ternary-result/impl/variant-name.mjs +0 -13
  443. package/dist/functional/ternary-result/impl/variant-name.mjs.map +0 -1
  444. package/dist/functional/ternary-result/index.d.mts +0 -2
  445. package/dist/functional/ternary-result/index.d.mts.map +0 -1
  446. package/dist/functional/ternary-result/index.mjs +0 -2
  447. package/dist/functional/ternary-result/index.mjs.map +0 -1
  448. package/dist/functional/ternary-result/ternary-result.d.mts +0 -40
  449. package/dist/functional/ternary-result/ternary-result.d.mts.map +0 -1
  450. package/dist/functional/ternary-result/ternary-result.mjs +0 -2
  451. package/dist/functional/ternary-result/ternary-result.mjs.map +0 -1
  452. package/src/functional/async-result/async-result.mts +0 -17
  453. package/src/functional/async-result/impl/async-result-flat-map.mts +0 -99
  454. package/src/functional/async-result/impl/async-result-from-promise.mts +0 -69
  455. package/src/functional/async-result/impl/async-result-from-throwable.mts +0 -78
  456. package/src/functional/async-result/impl/async-result-map-err.mts +0 -84
  457. package/src/functional/async-result/impl/async-result-map.mts +0 -94
  458. package/src/functional/async-result/impl/async-result-unwrap-or.mts +0 -42
  459. package/src/functional/async-result/impl/index.mts +0 -7
  460. package/src/functional/async-result/impl/types.mts +0 -51
  461. package/src/functional/async-result/index.mts +0 -1
  462. package/src/functional/async-result.test.mts +0 -291
  463. package/src/functional/match.mts +0 -193
  464. package/src/functional/match.test.mts +0 -180
  465. package/src/functional/optional/impl/index.mts +0 -18
  466. package/src/functional/optional/impl/optional-expect-to-be.mts +0 -75
  467. package/src/functional/optional/impl/optional-filter.mts +0 -78
  468. package/src/functional/optional/impl/optional-flat-map.mts +0 -75
  469. package/src/functional/optional/impl/optional-from-nullable.mts +0 -31
  470. package/src/functional/optional/impl/optional-is-none.mts +0 -26
  471. package/src/functional/optional/impl/optional-is-optional.mts +0 -30
  472. package/src/functional/optional/impl/optional-is-some.mts +0 -27
  473. package/src/functional/optional/impl/optional-map.mts +0 -90
  474. package/src/functional/optional/impl/optional-match.mts +0 -108
  475. package/src/functional/optional/impl/optional-none.mts +0 -20
  476. package/src/functional/optional/impl/optional-or-else.mts +0 -83
  477. package/src/functional/optional/impl/optional-some.mts +0 -27
  478. package/src/functional/optional/impl/optional-to-nullable.mts +0 -34
  479. package/src/functional/optional/impl/optional-unwrap-or.mts +0 -70
  480. package/src/functional/optional/impl/optional-unwrap-throw.mts +0 -41
  481. package/src/functional/optional/impl/optional-unwrap.mts +0 -45
  482. package/src/functional/optional/impl/optional-zip.mts +0 -44
  483. package/src/functional/optional/impl/tag.mts +0 -8
  484. package/src/functional/optional/impl/types.mts +0 -31
  485. package/src/functional/optional/index.mts +0 -1
  486. package/src/functional/optional/optional.mts +0 -19
  487. package/src/functional/optional.test.mts +0 -883
  488. package/src/functional/pipe.mts +0 -180
  489. package/src/functional/pipe.test.mts +0 -155
  490. package/src/functional/result/impl/index.mts +0 -27
  491. package/src/functional/result/impl/result-err.mts +0 -33
  492. package/src/functional/result/impl/result-expect-to-be.mts +0 -73
  493. package/src/functional/result/impl/result-flat-map.mts +0 -88
  494. package/src/functional/result/impl/result-fold.mts +0 -102
  495. package/src/functional/result/impl/result-from-optional.mts +0 -80
  496. package/src/functional/result/impl/result-from-promise.mts +0 -51
  497. package/src/functional/result/impl/result-from-throwable.mts +0 -48
  498. package/src/functional/result/impl/result-is-err.mts +0 -26
  499. package/src/functional/result/impl/result-is-ok.mts +0 -26
  500. package/src/functional/result/impl/result-is-result.mts +0 -28
  501. package/src/functional/result/impl/result-map-err.mts +0 -96
  502. package/src/functional/result/impl/result-map.mts +0 -96
  503. package/src/functional/result/impl/result-match.mts +0 -108
  504. package/src/functional/result/impl/result-ok.mts +0 -33
  505. package/src/functional/result/impl/result-or-else.mts +0 -73
  506. package/src/functional/result/impl/result-safe-try.mts +0 -110
  507. package/src/functional/result/impl/result-safe-unwrap.mts +0 -50
  508. package/src/functional/result/impl/result-swap.mts +0 -31
  509. package/src/functional/result/impl/result-to-optional.mts +0 -37
  510. package/src/functional/result/impl/result-unwrap-err-or.mts +0 -66
  511. package/src/functional/result/impl/result-unwrap-err-throw.mts +0 -56
  512. package/src/functional/result/impl/result-unwrap-err.mts +0 -38
  513. package/src/functional/result/impl/result-unwrap-ok-or.mts +0 -66
  514. package/src/functional/result/impl/result-unwrap-ok.mts +0 -39
  515. package/src/functional/result/impl/result-unwrap-throw.mts +0 -46
  516. package/src/functional/result/impl/result-zip.mts +0 -42
  517. package/src/functional/result/impl/tag.mts +0 -8
  518. package/src/functional/result/impl/types.mts +0 -38
  519. package/src/functional/result/index.mts +0 -1
  520. package/src/functional/result/result.mts +0 -19
  521. package/src/functional/result.test.mts +0 -1349
  522. package/src/functional/ternary-result/impl/index.mts +0 -28
  523. package/src/functional/ternary-result/impl/tag.mts +0 -17
  524. package/src/functional/ternary-result/impl/ternary-result-err.mts +0 -21
  525. package/src/functional/ternary-result/impl/ternary-result-expect-to-be.mts +0 -65
  526. package/src/functional/ternary-result/impl/ternary-result-flat-map.mts +0 -112
  527. package/src/functional/ternary-result/impl/ternary-result-fold.mts +0 -102
  528. package/src/functional/ternary-result/impl/ternary-result-from-promise.mts +0 -30
  529. package/src/functional/ternary-result/impl/ternary-result-from-throwable.mts +0 -36
  530. package/src/functional/ternary-result/impl/ternary-result-is-err.mts +0 -24
  531. package/src/functional/ternary-result/impl/ternary-result-is-ok.mts +0 -26
  532. package/src/functional/ternary-result/impl/ternary-result-is-ternary-result.mts +0 -32
  533. package/src/functional/ternary-result/impl/ternary-result-is-warn.mts +0 -25
  534. package/src/functional/ternary-result/impl/ternary-result-map-err.mts +0 -74
  535. package/src/functional/ternary-result/impl/ternary-result-map-warn.mts +0 -79
  536. package/src/functional/ternary-result/impl/ternary-result-map.mts +0 -95
  537. package/src/functional/ternary-result/impl/ternary-result-ok.mts +0 -22
  538. package/src/functional/ternary-result/impl/ternary-result-or-else.mts +0 -72
  539. package/src/functional/ternary-result/impl/ternary-result-to-optional.mts +0 -31
  540. package/src/functional/ternary-result/impl/ternary-result-unwrap-err-or.mts +0 -54
  541. package/src/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mts +0 -42
  542. package/src/functional/ternary-result/impl/ternary-result-unwrap-err.mts +0 -25
  543. package/src/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mts +0 -51
  544. package/src/functional/ternary-result/impl/ternary-result-unwrap-ok.mts +0 -39
  545. package/src/functional/ternary-result/impl/ternary-result-unwrap-throw.mts +0 -48
  546. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mts +0 -48
  547. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mts +0 -40
  548. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn.mts +0 -25
  549. package/src/functional/ternary-result/impl/ternary-result-warn.mts +0 -28
  550. package/src/functional/ternary-result/impl/ternary-result-zip.mts +0 -61
  551. package/src/functional/ternary-result/impl/types.mts +0 -46
  552. package/src/functional/ternary-result/impl/variant-name.mts +0 -18
  553. package/src/functional/ternary-result/index.mts +0 -1
  554. package/src/functional/ternary-result/ternary-result.mts +0 -50
  555. package/src/functional/ternary-result.test.mts +0 -310
  556. package/src/guard/has-key.test.mts +0 -111
  557. package/src/guard/is-non-null-object.test.mts +0 -109
  558. package/src/guard/is-record.test.mts +0 -195
  559. package/src/guard/key-is-in.test.mts +0 -21
  560. package/src/others/unknown-to-string.test.mts +0 -295
@@ -1,180 +0,0 @@
1
- import { expectType } from '../expect-type.mjs';
2
- import { Optional, type UnknownOptional } from './optional/index.mjs';
3
-
4
- /**
5
- * Creates a new pipe object that allows for chaining operations on a value.
6
- *
7
- * This function provides a fluent interface for applying transformations to
8
- * values, with intelligent method selection based on the input type:
9
- *
10
- * - For `Optional` values: Provides `mapOptional` for safe Optional
11
- * transformations
12
- * - For other values: Provides `mapNullable` for null-safe transformations
13
- * - All types get the basic `map` method for general transformations
14
- *
15
- * The pipe maintains type safety throughout the chain, automatically selecting
16
- * the appropriate overload based on the current value type.
17
- *
18
- * @template A The type of the initial value to wrap in a pipe.
19
- * @param a The initial value to wrap in a pipe.
20
- * @returns A pipe object with chaining methods appropriate for the value type.
21
- */
22
- export const pipe = <const A,>(a: A): Pipe<A> =>
23
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
24
- ({
25
- value: a,
26
- map: (fn) => pipe(fn(a)),
27
- mapNullable: (fn) => pipe(a == null ? undefined : fn(a)),
28
-
29
- ...(Optional.isOptional(a)
30
- ? {
31
- mapOptional: (fn) => pipe(Optional.map(a, fn)),
32
- }
33
- : {}),
34
- }) satisfies PipeImpl<A> as unknown as Pipe<A>;
35
-
36
- // `PipeBase<A>` is always present; the conditional only *adds* `mapOptional`
37
- // for Optional values. Two subtleties motivate this shape:
38
- //
39
- // 1. The check is `[A] extends [UnknownOptional]` (a 1-tuple), not the bare
40
- // `A extends UnknownOptional`. A bare check distributes over unions, so a
41
- // piped union value such as `Result<D, E> | undefined` would expand into
42
- // `Pipe<Ok<D>> | Pipe<Err<E>> | Pipe<undefined>`. Calling a chained method
43
- // on that union of pipe objects forces TypeScript to synthesize a merged
44
- // call signature, during which a branded member like `Ok<D>` is widened to
45
- // its constraint (`Ok<number>`) — losing the brand `D`.
46
- //
47
- // 2. `value: A` lives on `PipeBase<A>`, *outside* the conditional. If `value`
48
- // flowed through the conditional, then for a not-yet-resolved generic `A`
49
- // the deferred true branch narrows `A` to `A & UnknownOptional`, so
50
- // `.value` would surface as the noisy `(A & UnknownOptional) | A`. Keeping
51
- // it on the unconditional base yields a clean `A`.
52
- export type Pipe<A> = PipeBase<A> &
53
- PipeMapNullable<A> &
54
- ([A] extends [UnknownOptional] ? PipeMapOptional<A> : unknown);
55
-
56
- // NOTE: 以下では 'typing when used with generics' test で型エラーが出る。
57
- // 詳細は documents/reports/pipe-typing.md の 「mapNullable を条件付きで含めるのがうまくいかない理由」を参照。
58
- // export type Pipe<A> = PipeBase<A> &
59
- // ([A] extends [UnknownOptional] ? PipeMapOptional<A> : unknown) &
60
- // ([undefined] extends [A] ? PipeMapNullable<A> : unknown) &
61
- // ([null] extends [A] ? PipeMapNullable<A> : unknown);
62
-
63
- expectType<Optional<number>, UnknownOptional>('<=');
64
-
65
- expectType<number | undefined, undefined>('>=');
66
-
67
- expectType<keyof Pipe<number | undefined>, 'value' | 'map' | 'mapNullable'>(
68
- '=',
69
- );
70
-
71
- expectType<
72
- keyof Pipe<Optional<number>>,
73
- 'value' | 'map' | 'mapNullable' | 'mapOptional'
74
- >('=');
75
-
76
- expectType<
77
- keyof Pipe<Optional<number | undefined>>,
78
- 'value' | 'map' | 'mapNullable' | 'mapOptional'
79
- >('=');
80
-
81
- expectType<
82
- keyof Pipe<Optional<number> | undefined>,
83
- 'value' | 'map' | 'mapNullable'
84
- >('=');
85
-
86
- type PipeBase<A> = Readonly<{
87
- /** The current value being piped. */
88
- value: A;
89
-
90
- /**
91
- * Maps the current value to a new value using the provided function.
92
- *
93
- * @example
94
- *
95
- * ```ts
96
- * const result = pipe(2)
97
- * .map((value) => value * 3)
98
- * .map((value) => `value: ${value}`);
99
- *
100
- * assert.deepStrictEqual(result.value, 'value: 6');
101
- * ```
102
- *
103
- * @template B The type of the new value.
104
- * @param fn Function to transform the current value.
105
- * @returns A new pipe containing the transformed value.
106
- */
107
- map: <B>(fn: (a: A) => B) => Pipe<B>;
108
- }>;
109
-
110
- type PipeMapNullable<A> = Readonly<{
111
- /**
112
- * Maps the current value only if it's not null or undefined. If the current
113
- * value is null/undefined, the transformation is skipped and undefined is
114
- * propagated through the pipe.
115
- *
116
- * @example
117
- *
118
- * ```ts
119
- * const result = pipe<string | undefined>('hello')
120
- * .mapNullable((value) => value.toUpperCase())
121
- * .mapNullable((value) => value.slice(0, 2));
122
- *
123
- * assert.deepStrictEqual(result.value, 'HE');
124
- *
125
- * const empty = pipe<string | undefined>(undefined).mapNullable((value) =>
126
- * value.toUpperCase(),
127
- * );
128
- *
129
- * assert.isTrue(empty.value === undefined);
130
- * ```
131
- *
132
- * @template B The type of the transformed value.
133
- * @param fn Function to transform the non-null value.
134
- * @returns A new pipe containing the transformed value or undefined.
135
- */
136
- mapNullable: <B>(fn: (a: NonNullable<A>) => B) => Pipe<B | undefined>;
137
- }>;
138
-
139
- type PipeMapOptional<A extends UnknownOptional> = Readonly<{
140
- /**
141
- * Maps the value inside an Optional using Optional.map semantics. If the
142
- * Optional is None, the transformation is skipped and None is propagated.
143
- * If the Optional is Some, the transformation is applied to the inner
144
- * value.
145
- *
146
- * @example
147
- *
148
- * ```ts
149
- * const result = pipe(Optional.some(10))
150
- * .mapOptional((value) => value * 2)
151
- * .mapOptional((value) => value + 5);
152
- *
153
- * assert.deepStrictEqual(result.value, Optional.some(25));
154
- *
155
- * const empty = pipe(Optional.none as Optional<number>).mapOptional(
156
- * (value) => value * 2,
157
- * );
158
- *
159
- * assert.isTrue(Optional.isNone(empty.value));
160
- * ```
161
- *
162
- * @template B The type of the transformed inner value.
163
- * @param fn Function to transform the inner value of the Optional.
164
- * @returns A new pipe containing an Optional with the transformed value.
165
- */
166
- mapOptional: <B>(fn: (a: Optional.Unwrap<A>) => B) => Pipe<Optional<B>>;
167
- }>;
168
-
169
- /** @internal */
170
- type Cast<T, U> = T & U;
171
-
172
- /** @internal */
173
- type PipeImpl<A> = Readonly<{
174
- value: A;
175
- map: <B>(fn: (a: A) => B) => PipeImpl<B>;
176
- mapNullable?: <B>(fn: (a: NonNullable<A>) => B) => PipeImpl<B | undefined>;
177
- mapOptional?: <B>(
178
- fn: (a: Optional.Unwrap<Cast<A, UnknownOptional>>) => B,
179
- ) => PipeImpl<Optional<B>>;
180
- }>;
@@ -1,155 +0,0 @@
1
- import { expectType } from '../expect-type.mjs';
2
- import { Num } from '../number/index.mjs';
3
- import { type None, type Some } from '../types.mjs';
4
- import { Optional } from './optional/index.mjs';
5
- import { pipe } from './pipe.mjs';
6
- import { Result } from './result/index.mjs';
7
-
8
- describe(pipe, () => {
9
- test('basic pipe operations', () => {
10
- const result = pipe(5)
11
- .map((x) => x * 2)
12
- .map((x) => x + 1).value;
13
-
14
- expect(result).toBe(11);
15
-
16
- expectType<typeof result, number>('=');
17
- });
18
-
19
- test('pipe with string operations', () => {
20
- const result = pipe('hello')
21
- .map((s) => s.toUpperCase())
22
- .map((s) => `${s}!`).value;
23
-
24
- expect(result).toBe('HELLO!');
25
-
26
- expectType<typeof result, string>('=');
27
- });
28
-
29
- test('pipe with array operations', () => {
30
- const result = pipe([1, 2, 3])
31
- .map((arr) => arr.map((x) => x * 2))
32
- .map((arr) => arr.length).value;
33
-
34
- expect(result).toBe(3);
35
-
36
- expectType<typeof result, number>('=');
37
- });
38
-
39
- test('mapNullable with non-null value', () => {
40
- const s = 5 as number | null;
41
-
42
- const result = pipe(s).mapNullable((x) => x * 2).value;
43
-
44
- expect(result).toBe(10);
45
-
46
- expectType<typeof result, number | undefined>('=');
47
- });
48
-
49
- test('mapNullable with null value', () => {
50
- const result = pipe(null as number | null).mapNullable((x) => x * 2).value;
51
-
52
- expect(result).toBeUndefined();
53
-
54
- expectType<typeof result, number | undefined>('=');
55
- });
56
-
57
- test('mapNullable with undefined value', () => {
58
- const result = pipe(undefined as number | undefined).mapNullable(
59
- (x) => x * 2,
60
- ).value;
61
-
62
- expect(result).toBeUndefined();
63
-
64
- expectType<typeof result, number | undefined>('=');
65
- });
66
-
67
- test('mapOptional with Some value', () => {
68
- const optional = Optional.some(42);
69
-
70
- const result = pipe(optional).mapOptional((x) => x * 2).value;
71
-
72
- assert.isTrue(Optional.isSome(result));
73
-
74
- if (Optional.isSome(result)) {
75
- expect(result.value).toBe(84);
76
- }
77
-
78
- expectType<typeof result, Some<number>>('=');
79
- });
80
-
81
- test('mapOptional with None value', () => {
82
- const optional: Optional<number> = Optional.none;
83
-
84
- const result = pipe(optional).mapOptional((x) => x * 2).value;
85
-
86
- assert.isTrue(Optional.isNone(result));
87
-
88
- expectType<typeof result, None>('=');
89
- });
90
-
91
- test('chaining multiple operations', () => {
92
- const result = pipe('5')
93
- .map((s) => Result.unwrapOkOr(Num.safeParseInt(s), Number.NaN))
94
- .map((n) => n * 3)
95
- .map((n) => n.toString())
96
- .map((s) => `${s} items`).value;
97
-
98
- expect(result).toBe('15 items');
99
-
100
- expectType<typeof result, string>('=');
101
- });
102
-
103
- test('typing when used with Result', () => {
104
- const validate = <D,>(_u: unknown): Result<D, unknown> =>
105
- Result.err(undefined);
106
-
107
- const decodeBranded = (
108
- input: string,
109
- parse: (s: string) => number | undefined,
110
- ): number | undefined => {
111
- const v = pipe(input)
112
- .map(parse)
113
- .mapNullable(validate<number>)
114
- .mapNullable((res) => Result.unwrapOk(res)).value;
115
-
116
- expectType<typeof v, number | undefined>('=');
117
-
118
- return v;
119
- };
120
-
121
- expect(decodeBranded('', () => undefined)).toBeUndefined();
122
- });
123
-
124
- test('typing when used with generics', () => {
125
- const validate = <D,>(_u: unknown): Result<D, unknown> =>
126
- Result.err(undefined);
127
-
128
- // Regression: a generic brand `D` must survive the whole chain.
129
- //
130
- // The trigger is a `.map` whose result is a branded *union* such as
131
- // `D | undefined`. If `Pipe<A>` distributes over unions, that step expands
132
- // into `Pipe<D> | Pipe<undefined>`; calling the next method on the union of
133
- // pipe objects then widens `D` to its constraint `number`, so `.value`
134
- // collapses to `number | undefined` instead of `D | undefined`.
135
- //
136
- // The explicit `D | undefined` return annotation is itself the assertion:
137
- // were the brand lost, `.value` would be `number | undefined` and the
138
- // body would fail to compile.
139
- const decodeBranded = <D extends number>(
140
- input: string,
141
- parse: (s: string) => D | undefined,
142
- ): D | undefined => {
143
- const v = pipe(input)
144
- .map(parse)
145
- .mapNullable(validate<D>)
146
- .mapNullable((res) => Result.unwrapOk(res)).value;
147
-
148
- expectType<typeof v, D | undefined>('=');
149
-
150
- return v;
151
- };
152
-
153
- expect(decodeBranded('', () => undefined)).toBeUndefined();
154
- });
155
- });
@@ -1,27 +0,0 @@
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';
@@ -1,33 +0,0 @@
1
- import { type Err } from '../../../types.mjs';
2
- import { ErrTypeTagName } from './tag.mjs';
3
-
4
- /**
5
- * Creates a `Result.Err` containing the given error value.
6
- *
7
- * Use this constructor when an operation fails and you want to wrap the error
8
- * information in a Result type for consistent error handling.
9
- *
10
- * @example
11
- *
12
- * ```ts
13
- * const success = Result.ok({ id: 1 });
14
- *
15
- * const failure = Result.err(new Error('missing data'));
16
- *
17
- * assert.deepStrictEqual(success, {
18
- * $$tag: 'ts-data-forge::Result.ok',
19
- * value: { id: 1 },
20
- * });
21
- *
22
- * assert.isTrue(Result.isErr(failure));
23
- * ```
24
- *
25
- * @template E The type of the error value.
26
- * @param value The error value.
27
- * @returns A `Result.Err<E>` containing the value.
28
- */
29
- export const err = <const E,>(value: E): Err<E> =>
30
- ({
31
- $$tag: ErrTypeTagName,
32
- value,
33
- }) as const;
@@ -1,73 +0,0 @@
1
- import { type UnknownResult } from '../result.mjs';
2
- import { isOk } from './result-is-ok.mjs';
3
- import { unwrapOk } from './result-unwrap-ok.mjs';
4
- import { type UnwrapOk } from './types.mjs';
5
-
6
- /**
7
- * Unwraps a `Result`, returning the success value or throwing an error with
8
- * the provided message.
9
- *
10
- * @example
11
- *
12
- * ```ts
13
- * const okValue = Result.ok('data');
14
- *
15
- * assert.isTrue(Result.expectToBe(okValue, 'should have value') === 'data');
16
- *
17
- * const expectResult = Result.expectToBe('missing result');
18
- *
19
- * const throwTest = (): void => {
20
- * expectResult(Result.err('boom'));
21
- * };
22
- *
23
- * assert.throws(throwTest, /missing result/u);
24
- *
25
- * assert.isTrue(expectResult(Result.ok('value')) === 'value');
26
- * ```
27
- *
28
- * @template R The `UnknownResult` type to unwrap.
29
- * @param result The `Result` to unwrap.
30
- * @param message The error message to throw if the `Result` is `Result.Err`.
31
- * @returns The success value if `Result.Ok`.
32
- * @throws Error with the provided message if the `Result` is `Result.Err`.
33
- */
34
- export function expectToBe<R extends UnknownResult>(
35
- result: R,
36
- message: string,
37
- ): UnwrapOk<R>;
38
-
39
- // Curried version
40
- export function expectToBe(
41
- message: string,
42
- ): <R extends UnknownResult>(result: R) => UnwrapOk<R>;
43
-
44
- export function expectToBe<R extends UnknownResult>(
45
- ...args: readonly [result: R, message: string] | readonly [message: string]
46
- ): UnwrapOk<R> | ((result: R) => UnwrapOk<R>) {
47
- switch (args.length) {
48
- case 2: {
49
- // Direct version: first argument is result
50
- const [result, message] = args;
51
-
52
- return expectToBeImpl(result, message);
53
- }
54
-
55
- case 1: {
56
- // Curried version: first argument is message
57
- const [message] = args;
58
-
59
- return (result: R): UnwrapOk<R> => expectToBeImpl(result, message);
60
- }
61
- }
62
- }
63
-
64
- const expectToBeImpl = <R extends UnknownResult>(
65
- result: R,
66
- message: string,
67
- ): UnwrapOk<R> => {
68
- if (isOk(result)) {
69
- return unwrapOk(result);
70
- }
71
-
72
- throw new Error(message);
73
- };
@@ -1,88 +0,0 @@
1
- import { type Err } from '../../../types.mjs';
2
- import { type Result, type UnknownResult } from '../result.mjs';
3
- import { isErr } from './result-is-err.mjs';
4
- import { type UnwrapErr, type UnwrapOk } from './types.mjs';
5
-
6
- /**
7
- * Applies a function that returns a `Result` to the success value of a
8
- * `Result`. If the input is `Err`, returns the original `Err`. This is the
9
- * monadic bind operation for `Result`.
10
- *
11
- * @example
12
- *
13
- * ```ts
14
- * const parseNumber = (input: string): Result<number, string> => {
15
- * const num = Num.safeParseInt(input);
16
- *
17
- * return Result.mapErr(num, () => 'not a number');
18
- * };
19
- *
20
- * const parsed = Result.flatMap(Result.ok('42'), parseNumber);
21
- *
22
- * const failure = Result.flatMap(Result.ok('abc'), parseNumber);
23
- *
24
- * const passthrough = Result.flatMap(Result.err('fail'), parseNumber);
25
- *
26
- * assert.deepStrictEqual(parsed, Result.ok(42));
27
- *
28
- * assert.deepStrictEqual(failure, Result.err('not a number'));
29
- *
30
- * assert.deepStrictEqual(passthrough, Result.err('fail'));
31
- *
32
- * const parseThenDouble = Result.flatMap((input: string) =>
33
- * Result.map(parseNumber(input), (value) => value * 2),
34
- * );
35
- *
36
- * assert.deepStrictEqual(parseThenDouble(Result.ok('10')), Result.ok(20));
37
- * ```
38
- *
39
- * @template R The input `UnknownResult` type.
40
- * @template S2 The success type of the `Result` returned by the function.
41
- * @template E2 The error type of the `Result` returned by the function.
42
- * @param result The `Result` to flat map.
43
- * @param flatMapFn The function to apply that returns a `Result`.
44
- * @returns The result of applying the function, or the original `Err`.
45
- */
46
- export function flatMap<R extends UnknownResult, S2, E2>(
47
- result: R,
48
- flatMapFn: (value: UnwrapOk<R>) => Result<S2, E2>,
49
- ): Result<S2, E2 | UnwrapErr<R>>;
50
-
51
- // Curried version
52
- export function flatMap<S, S2, E2>(
53
- flatMapFn: (value: S) => Result<S2, E2>,
54
- ): <E>(result: Result<S, E>) => Result<S2, E | E2>;
55
-
56
- export function flatMap<R extends UnknownResult, S2, E2>(
57
- ...args:
58
- | readonly [result: R, flatMapFn: (value: UnwrapOk<R>) => Result<S2, E2>]
59
- | readonly [flatMapFn: (value: UnwrapOk<R>) => Result<S2, E2>]
60
- ):
61
- | Result<S2, E2 | UnwrapErr<R>>
62
- | ((result: R) => Result<S2, UnwrapErr<R> | E2>) {
63
- switch (args.length) {
64
- case 2: {
65
- // Direct version: first argument is result
66
- const [result, flatMapFn] = args;
67
-
68
- return flatMapImpl(result, flatMapFn);
69
- }
70
-
71
- case 1: {
72
- // Curried version
73
- const [flatMapFn] = args;
74
-
75
- return (result: R) => flatMapImpl(result, flatMapFn);
76
- }
77
- }
78
- }
79
-
80
- const flatMapImpl = <R extends UnknownResult, S2, E2>(
81
- result: R,
82
- flatMapFn: (value: UnwrapOk<R>) => Result<S2, E2>,
83
- ): Result<S2, E2 | UnwrapErr<R>> =>
84
- isErr(result)
85
- ? // eslint-disable-next-line total-functions/no-unsafe-type-assertion
86
- (result as Err<UnwrapErr<R>>)
87
- : // eslint-disable-next-line total-functions/no-unsafe-type-assertion
88
- flatMapFn(result.value as UnwrapOk<R>);
@@ -1,102 +0,0 @@
1
- import { type Result, type UnknownResult } from '../result.mjs';
2
- import { err } from './result-err.mjs';
3
- import { isOk } from './result-is-ok.mjs';
4
- import { ok } from './result-ok.mjs';
5
- import { type UnwrapErr, type UnwrapOk } from './types.mjs';
6
-
7
- /**
8
- * Applies one of two functions depending on whether the `Result` is `Ok` or
9
- * `Err`.
10
- *
11
- * @example
12
- *
13
- * ```ts
14
- * const okValue = Result.ok(2);
15
- *
16
- * const errValue = Result.err('bad');
17
- *
18
- * const foldedOk = Result.fold(
19
- * okValue,
20
- * (value) => value * 2,
21
- * (error) => error,
22
- * );
23
- *
24
- * const foldedErr = Result.fold(
25
- * errValue,
26
- * (value: number) => value * 2,
27
- * (error) => error.toUpperCase(),
28
- * );
29
- *
30
- * assert.deepStrictEqual(foldedOk, Result.ok(4));
31
- *
32
- * assert.deepStrictEqual(foldedErr, Result.err('BAD'));
33
- *
34
- * const foldNumbers = Result.fold(
35
- * (value: number) => value * 3,
36
- * (error: string) => error.length,
37
- * );
38
- *
39
- * assert.deepStrictEqual(foldNumbers(Result.ok(3)), Result.ok(9));
40
- *
41
- * assert.deepStrictEqual(foldNumbers(Result.err('oops')), Result.err(4));
42
- * ```
43
- *
44
- * @template R The input `UnknownResult` type.
45
- * @template S2 The type of the success value returned by `mapFn`.
46
- * @template E2 The type of the error value returned by `mapErrFn`.
47
- * @param result The `Result` to fold.
48
- * @param mapFn The function to apply if `result` is `Ok`.
49
- * @param mapErrFn The function to apply if `result` is `Err`.
50
- * @returns A new `Result<S2, E2>` based on the applied function.
51
- */
52
- export function fold<R extends UnknownResult, S2, E2>(
53
- result: R,
54
- mapFn: (value: UnwrapOk<R>) => S2,
55
- mapErrFn: (error: UnwrapErr<R>) => E2,
56
- ): Result<S2, E2>;
57
-
58
- // Curried version
59
- export function fold<S, E, S2, E2>(
60
- mapFn: (value: S) => S2,
61
- mapErrFn: (error: E) => E2,
62
- ): (result: Result<S, E>) => Result<S2, E2>;
63
-
64
- export function fold<R extends UnknownResult, S2, E2>(
65
- ...args:
66
- | readonly [
67
- result: R,
68
- mapFn: (value: UnwrapOk<R>) => S2,
69
- mapErrFn: (error: UnwrapErr<R>) => E2,
70
- ]
71
- | readonly [
72
- mapFn: (value: UnwrapOk<R>) => S2,
73
- mapErrFn: (error: UnwrapErr<R>) => E2,
74
- ]
75
- ): Result<S2, E2> | ((result: R) => Result<S2, E2>) {
76
- switch (args.length) {
77
- case 3: {
78
- // Direct version: first argument is result
79
- const [result, mapFn, mapErrFn] = args;
80
-
81
- return foldImpl(result, mapFn, mapErrFn);
82
- }
83
-
84
- case 2: {
85
- // Curried version
86
- const [mapFn, mapErrFn] = args;
87
-
88
- return (result: R) => foldImpl(result, mapFn, mapErrFn);
89
- }
90
- }
91
- }
92
-
93
- const foldImpl = <R extends UnknownResult, S2, E2>(
94
- result: R,
95
- mapFn: (value: UnwrapOk<R>) => S2,
96
- mapErrFn: (error: UnwrapErr<R>) => E2,
97
- ): Result<S2, E2> =>
98
- isOk(result)
99
- ? // eslint-disable-next-line total-functions/no-unsafe-type-assertion
100
- ok(mapFn(result.value as UnwrapOk<R>))
101
- : // eslint-disable-next-line total-functions/no-unsafe-type-assertion
102
- err(mapErrFn(result.value as UnwrapErr<R>));