ts-data-forge 3.3.1 → 4.1.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 (562) hide show
  1. package/dist/array/impl/array-utils-element-access.d.mts +3 -4
  2. package/dist/array/impl/array-utils-element-access.d.mts.map +1 -1
  3. package/dist/array/impl/array-utils-element-access.mjs +8 -8
  4. package/dist/array/impl/array-utils-element-access.mjs.map +1 -1
  5. package/dist/array/impl/array-utils-reducing-value.d.mts +8 -9
  6. package/dist/array/impl/array-utils-reducing-value.d.mts.map +1 -1
  7. package/dist/array/impl/array-utils-reducing-value.mjs +9 -7
  8. package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
  9. package/dist/array/impl/array-utils-search.d.mts +0 -1
  10. package/dist/array/impl/array-utils-search.d.mts.map +1 -1
  11. package/dist/array/impl/array-utils-search.mjs +6 -6
  12. package/dist/array/impl/array-utils-search.mjs.map +1 -1
  13. package/dist/array/impl/array-utils-transformation.mjs +2 -4
  14. package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
  15. package/dist/collections/imap-mapped.d.mts +0 -1
  16. package/dist/collections/imap-mapped.d.mts.map +1 -1
  17. package/dist/collections/imap-mapped.mjs +7 -6
  18. package/dist/collections/imap-mapped.mjs.map +1 -1
  19. package/dist/collections/imap.d.mts +0 -1
  20. package/dist/collections/imap.d.mts.map +1 -1
  21. package/dist/collections/imap.mjs +11 -9
  22. package/dist/collections/imap.mjs.map +1 -1
  23. package/dist/collections/queue.d.mts +0 -1
  24. package/dist/collections/queue.d.mts.map +1 -1
  25. package/dist/collections/queue.mjs +4 -4
  26. package/dist/collections/queue.mjs.map +1 -1
  27. package/dist/collections/stack.d.mts +0 -1
  28. package/dist/collections/stack.d.mts.map +1 -1
  29. package/dist/collections/stack.mjs +4 -4
  30. package/dist/collections/stack.mjs.map +1 -1
  31. package/dist/entry-point.d.mts +1 -0
  32. package/dist/entry-point.d.mts.map +1 -1
  33. package/dist/entry-point.mjs +8 -4
  34. package/dist/entry-point.mjs.map +1 -1
  35. package/dist/functional/index.d.mts +3 -2
  36. package/dist/functional/index.d.mts.map +1 -1
  37. package/dist/functional/index.mjs +6 -2
  38. package/dist/functional/index.mjs.map +1 -1
  39. package/dist/functional/optional/impl/index.d.mts +18 -0
  40. package/dist/functional/optional/impl/index.d.mts.map +1 -0
  41. package/dist/functional/optional/impl/index.mjs +17 -0
  42. package/dist/functional/optional/impl/index.mjs.map +1 -0
  43. package/dist/functional/optional/impl/optional-expect-to-be.d.mts +29 -0
  44. package/dist/functional/optional/impl/optional-expect-to-be.d.mts.map +1 -0
  45. package/dist/functional/optional/impl/optional-expect-to-be.mjs +25 -0
  46. package/dist/functional/optional/impl/optional-expect-to-be.mjs.map +1 -0
  47. package/dist/functional/optional/impl/optional-filter.d.mts +29 -0
  48. package/dist/functional/optional/impl/optional-filter.d.mts.map +1 -0
  49. package/dist/functional/optional/impl/optional-filter.mjs +28 -0
  50. package/dist/functional/optional/impl/optional-filter.mjs.map +1 -0
  51. package/dist/functional/optional/impl/optional-flat-map.d.mts +33 -0
  52. package/dist/functional/optional/impl/optional-flat-map.d.mts.map +1 -0
  53. package/dist/functional/optional/impl/optional-flat-map.mjs +21 -0
  54. package/dist/functional/optional/impl/optional-flat-map.mjs.map +1 -0
  55. package/dist/functional/optional/impl/optional-from-nullable.d.mts +24 -0
  56. package/dist/functional/optional/impl/optional-from-nullable.d.mts.map +1 -0
  57. package/dist/functional/optional/impl/optional-from-nullable.mjs +29 -0
  58. package/dist/functional/optional/impl/optional-from-nullable.mjs.map +1 -0
  59. package/dist/functional/optional/impl/optional-is-none.d.mts +22 -0
  60. package/dist/functional/optional/impl/optional-is-none.d.mts.map +1 -0
  61. package/dist/functional/optional/impl/optional-is-none.mjs +25 -0
  62. package/dist/functional/optional/impl/optional-is-none.mjs.map +1 -0
  63. package/dist/functional/optional/impl/optional-is-optional.d.mts +18 -0
  64. package/dist/functional/optional/impl/optional-is-optional.d.mts.map +1 -0
  65. package/dist/functional/optional/impl/optional-is-optional.mjs +27 -0
  66. package/dist/functional/optional/impl/optional-is-optional.mjs.map +1 -0
  67. package/dist/functional/optional/impl/optional-is-some.d.mts +22 -0
  68. package/dist/functional/optional/impl/optional-is-some.d.mts.map +1 -0
  69. package/dist/functional/optional/impl/optional-is-some.mjs +25 -0
  70. package/dist/functional/optional/impl/optional-is-some.mjs.map +1 -0
  71. package/dist/functional/optional/impl/optional-map.d.mts +31 -0
  72. package/dist/functional/optional/impl/optional-map.d.mts.map +1 -0
  73. package/dist/functional/optional/impl/optional-map.mjs +25 -0
  74. package/dist/functional/optional/impl/optional-map.mjs.map +1 -0
  75. package/dist/functional/optional/impl/optional-none.d.mts +16 -0
  76. package/dist/functional/optional/impl/optional-none.d.mts.map +1 -0
  77. package/dist/functional/optional/impl/optional-none.mjs +20 -0
  78. package/dist/functional/optional/impl/optional-none.mjs.map +1 -0
  79. package/dist/functional/optional/impl/optional-or-else.d.mts +35 -0
  80. package/dist/functional/optional/impl/optional-or-else.d.mts.map +1 -0
  81. package/dist/functional/optional/impl/optional-or-else.mjs +19 -0
  82. package/dist/functional/optional/impl/optional-or-else.mjs.map +1 -0
  83. package/dist/functional/optional/impl/optional-some.d.mts +19 -0
  84. package/dist/functional/optional/impl/optional-some.d.mts.map +1 -0
  85. package/dist/functional/optional/impl/optional-some.mjs +26 -0
  86. package/dist/functional/optional/impl/optional-some.mjs.map +1 -0
  87. package/dist/functional/optional/impl/optional-to-nullable.d.mts +27 -0
  88. package/dist/functional/optional/impl/optional-to-nullable.d.mts.map +1 -0
  89. package/dist/functional/optional/impl/optional-to-nullable.mjs +31 -0
  90. package/dist/functional/optional/impl/optional-to-nullable.mjs.map +1 -0
  91. package/dist/functional/optional/impl/optional-unwrap-or.d.mts +33 -0
  92. package/dist/functional/optional/impl/optional-unwrap-or.d.mts.map +1 -0
  93. package/dist/functional/optional/impl/optional-unwrap-or.mjs +19 -0
  94. package/dist/functional/optional/impl/optional-unwrap-or.mjs.map +1 -0
  95. package/dist/functional/optional/impl/optional-unwrap-throw.d.mts +29 -0
  96. package/dist/functional/optional/impl/optional-unwrap-throw.d.mts.map +1 -0
  97. package/dist/functional/optional/impl/optional-unwrap-throw.mjs +38 -0
  98. package/dist/functional/optional/impl/optional-unwrap-throw.mjs.map +1 -0
  99. package/dist/functional/optional/impl/optional-unwrap.d.mts +28 -0
  100. package/dist/functional/optional/impl/optional-unwrap.d.mts.map +1 -0
  101. package/dist/functional/optional/impl/optional-unwrap.mjs +11 -0
  102. package/dist/functional/optional/impl/optional-unwrap.mjs.map +1 -0
  103. package/dist/functional/optional/impl/optional-zip.d.mts +31 -0
  104. package/dist/functional/optional/impl/optional-zip.d.mts.map +1 -0
  105. package/dist/functional/optional/impl/optional-zip.mjs +39 -0
  106. package/dist/functional/optional/impl/optional-zip.mjs.map +1 -0
  107. package/dist/functional/optional/impl/tag.d.mts +5 -0
  108. package/dist/functional/optional/impl/tag.d.mts.map +1 -0
  109. package/dist/functional/optional/impl/tag.mjs +7 -0
  110. package/dist/functional/optional/impl/tag.mjs.map +1 -0
  111. package/dist/functional/optional/impl/types.d.mts +22 -0
  112. package/dist/functional/optional/impl/types.d.mts.map +1 -0
  113. package/dist/functional/optional/impl/types.mjs +2 -0
  114. package/dist/functional/optional/impl/types.mjs.map +1 -0
  115. package/dist/functional/optional/index.d.mts +2 -0
  116. package/dist/functional/optional/index.d.mts.map +1 -0
  117. package/dist/functional/optional/index.mjs +3 -0
  118. package/dist/functional/optional/index.mjs.map +1 -0
  119. package/dist/functional/pipe.d.mts +4 -4
  120. package/dist/functional/pipe.d.mts.map +1 -1
  121. package/dist/functional/pipe.mjs +4 -3
  122. package/dist/functional/pipe.mjs.map +1 -1
  123. package/dist/functional/result/impl/index.d.mts +24 -0
  124. package/dist/functional/result/impl/index.d.mts.map +1 -0
  125. package/dist/functional/result/impl/index.mjs +23 -0
  126. package/dist/functional/result/impl/index.mjs.map +1 -0
  127. package/dist/functional/result/impl/result-err.d.mts +25 -0
  128. package/dist/functional/result/impl/result-err.d.mts.map +1 -0
  129. package/dist/functional/result/impl/result-err.mjs +32 -0
  130. package/dist/functional/result/impl/result-err.mjs.map +1 -0
  131. package/dist/functional/result/impl/result-expect-to-be.d.mts +27 -0
  132. package/dist/functional/result/impl/result-expect-to-be.d.mts.map +1 -0
  133. package/dist/functional/result/impl/result-expect-to-be.mjs +26 -0
  134. package/dist/functional/result/impl/result-expect-to-be.mjs.map +1 -0
  135. package/dist/functional/result/impl/result-flat-map.d.mts +39 -0
  136. package/dist/functional/result/impl/result-flat-map.d.mts.map +1 -0
  137. package/dist/functional/result/impl/result-flat-map.mjs +24 -0
  138. package/dist/functional/result/impl/result-flat-map.mjs.map +1 -0
  139. package/dist/functional/result/impl/result-fold.d.mts +45 -0
  140. package/dist/functional/result/impl/result-fold.d.mts.map +1 -0
  141. package/dist/functional/result/impl/result-fold.mjs +26 -0
  142. package/dist/functional/result/impl/result-fold.mjs.map +1 -0
  143. package/dist/functional/result/impl/result-from-promise.d.mts +32 -0
  144. package/dist/functional/result/impl/result-from-promise.d.mts.map +1 -0
  145. package/dist/functional/result/impl/result-from-promise.mjs +32 -0
  146. package/dist/functional/result/impl/result-from-promise.mjs.map +1 -0
  147. package/dist/functional/result/impl/result-from-throwable.d.mts +29 -0
  148. package/dist/functional/result/impl/result-from-throwable.d.mts.map +1 -0
  149. package/dist/functional/result/impl/result-from-throwable.mjs +46 -0
  150. package/dist/functional/result/impl/result-from-throwable.mjs.map +1 -0
  151. package/dist/functional/result/impl/result-is-err.d.mts +20 -0
  152. package/dist/functional/result/impl/result-is-err.d.mts.map +1 -0
  153. package/dist/functional/result/impl/result-is-err.mjs +23 -0
  154. package/dist/functional/result/impl/result-is-err.mjs.map +1 -0
  155. package/dist/functional/result/impl/result-is-ok.d.mts +20 -0
  156. package/dist/functional/result/impl/result-is-ok.d.mts.map +1 -0
  157. package/dist/functional/result/impl/result-is-ok.mjs +23 -0
  158. package/dist/functional/result/impl/result-is-ok.mjs.map +1 -0
  159. package/dist/functional/result/impl/result-is-result.d.mts +17 -0
  160. package/dist/functional/result/impl/result-is-result.d.mts.map +1 -0
  161. package/dist/functional/result/impl/result-is-result.mjs +26 -0
  162. package/dist/functional/result/impl/result-is-result.mjs.map +1 -0
  163. package/dist/functional/result/impl/result-map-err.d.mts +33 -0
  164. package/dist/functional/result/impl/result-map-err.d.mts.map +1 -0
  165. package/dist/functional/result/impl/result-map-err.mjs +25 -0
  166. package/dist/functional/result/impl/result-map-err.mjs.map +1 -0
  167. package/dist/functional/result/impl/result-map.d.mts +34 -0
  168. package/dist/functional/result/impl/result-map.d.mts.map +1 -0
  169. package/dist/functional/result/impl/result-map.mjs +25 -0
  170. package/dist/functional/result/impl/result-map.mjs.map +1 -0
  171. package/dist/functional/result/impl/result-ok.d.mts +25 -0
  172. package/dist/functional/result/impl/result-ok.d.mts.map +1 -0
  173. package/dist/functional/result/impl/result-ok.mjs +32 -0
  174. package/dist/functional/result/impl/result-ok.mjs.map +1 -0
  175. package/dist/functional/result/impl/result-or-else.d.mts +32 -0
  176. package/dist/functional/result/impl/result-or-else.d.mts.map +1 -0
  177. package/dist/functional/result/impl/result-or-else.mjs +20 -0
  178. package/dist/functional/result/impl/result-or-else.mjs.map +1 -0
  179. package/dist/functional/result/impl/result-swap.d.mts +20 -0
  180. package/dist/functional/result/impl/result-swap.d.mts.map +1 -0
  181. package/dist/functional/result/impl/result-swap.mjs +28 -0
  182. package/dist/functional/result/impl/result-swap.mjs.map +1 -0
  183. package/dist/functional/result/impl/result-to-optional.d.mts +28 -0
  184. package/dist/functional/result/impl/result-to-optional.d.mts.map +1 -0
  185. package/dist/functional/result/impl/result-to-optional.mjs +34 -0
  186. package/dist/functional/result/impl/result-to-optional.mjs.map +1 -0
  187. package/dist/functional/result/impl/result-unwrap-err-or.d.mts +29 -0
  188. package/dist/functional/result/impl/result-unwrap-err-or.d.mts.map +1 -0
  189. package/dist/functional/result/impl/result-unwrap-err-or.mjs +20 -0
  190. package/dist/functional/result/impl/result-unwrap-err-or.mjs.map +1 -0
  191. package/dist/functional/result/impl/result-unwrap-err-throw.d.mts +30 -0
  192. package/dist/functional/result/impl/result-unwrap-err-throw.d.mts.map +1 -0
  193. package/dist/functional/result/impl/result-unwrap-err-throw.mjs +47 -0
  194. package/dist/functional/result/impl/result-unwrap-err-throw.mjs.map +1 -0
  195. package/dist/functional/result/impl/result-unwrap-err.d.mts +31 -0
  196. package/dist/functional/result/impl/result-unwrap-err.d.mts.map +1 -0
  197. package/dist/functional/result/impl/result-unwrap-err.mjs +36 -0
  198. package/dist/functional/result/impl/result-unwrap-err.mjs.map +1 -0
  199. package/dist/functional/result/impl/result-unwrap-ok-or.d.mts +29 -0
  200. package/dist/functional/result/impl/result-unwrap-ok-or.d.mts.map +1 -0
  201. package/dist/functional/result/impl/result-unwrap-ok-or.mjs +20 -0
  202. package/dist/functional/result/impl/result-unwrap-ok-or.mjs.map +1 -0
  203. package/dist/functional/result/impl/result-unwrap-ok.d.mts +23 -0
  204. package/dist/functional/result/impl/result-unwrap-ok.d.mts.map +1 -0
  205. package/dist/functional/result/impl/result-unwrap-ok.mjs +11 -0
  206. package/dist/functional/result/impl/result-unwrap-ok.mjs.map +1 -0
  207. package/dist/functional/result/impl/result-unwrap-throw.d.mts +30 -0
  208. package/dist/functional/result/impl/result-unwrap-throw.d.mts.map +1 -0
  209. package/dist/functional/result/impl/result-unwrap-throw.mjs +41 -0
  210. package/dist/functional/result/impl/result-unwrap-throw.mjs.map +1 -0
  211. package/dist/functional/result/impl/result-zip.d.mts +29 -0
  212. package/dist/functional/result/impl/result-zip.d.mts.map +1 -0
  213. package/dist/functional/result/impl/result-zip.mjs +38 -0
  214. package/dist/functional/result/impl/result-zip.mjs.map +1 -0
  215. package/dist/functional/result/impl/tag.d.mts +5 -0
  216. package/dist/functional/result/impl/tag.d.mts.map +1 -0
  217. package/dist/functional/result/impl/tag.mjs +7 -0
  218. package/dist/functional/result/impl/tag.mjs.map +1 -0
  219. package/dist/functional/result/impl/types.d.mts +29 -0
  220. package/dist/functional/result/impl/types.d.mts.map +1 -0
  221. package/dist/functional/result/impl/types.mjs +2 -0
  222. package/dist/functional/result/impl/types.mjs.map +1 -0
  223. package/dist/functional/result/index.d.mts +2 -0
  224. package/dist/functional/result/index.d.mts.map +1 -0
  225. package/dist/functional/result/index.mjs +3 -0
  226. package/dist/functional/result/index.mjs.map +1 -0
  227. package/dist/functional/ternary-result/impl/index.d.mts +29 -0
  228. package/dist/functional/ternary-result/impl/index.d.mts.map +1 -0
  229. package/dist/functional/ternary-result/impl/index.mjs +28 -0
  230. package/dist/functional/ternary-result/impl/index.mjs.map +1 -0
  231. package/dist/functional/ternary-result/impl/tag.d.mts +7 -0
  232. package/dist/functional/ternary-result/impl/tag.d.mts.map +1 -0
  233. package/dist/functional/ternary-result/impl/tag.mjs +9 -0
  234. package/dist/functional/ternary-result/impl/tag.mjs.map +1 -0
  235. package/dist/functional/ternary-result/impl/ternary-result-err.d.mts +14 -0
  236. package/dist/functional/ternary-result/impl/ternary-result-err.d.mts.map +1 -0
  237. package/dist/functional/ternary-result/impl/ternary-result-err.mjs +21 -0
  238. package/dist/functional/ternary-result/impl/ternary-result-err.mjs.map +1 -0
  239. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.d.mts +18 -0
  240. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.d.mts.map +1 -0
  241. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.mjs +24 -0
  242. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.mjs.map +1 -0
  243. package/dist/functional/ternary-result/impl/ternary-result-flat-map.d.mts +29 -0
  244. package/dist/functional/ternary-result/impl/ternary-result-flat-map.d.mts.map +1 -0
  245. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs +41 -0
  246. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs.map +1 -0
  247. package/dist/functional/ternary-result/impl/ternary-result-fold.d.mts +27 -0
  248. package/dist/functional/ternary-result/impl/ternary-result-fold.d.mts.map +1 -0
  249. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs +36 -0
  250. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs.map +1 -0
  251. package/dist/functional/ternary-result/impl/ternary-result-from-promise.d.mts +20 -0
  252. package/dist/functional/ternary-result/impl/ternary-result-from-promise.d.mts.map +1 -0
  253. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs +24 -0
  254. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs.map +1 -0
  255. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.d.mts +17 -0
  256. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.d.mts.map +1 -0
  257. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs +33 -0
  258. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs.map +1 -0
  259. package/dist/functional/ternary-result/impl/ternary-result-is-err.d.mts +20 -0
  260. package/dist/functional/ternary-result/impl/ternary-result-is-err.d.mts.map +1 -0
  261. package/dist/functional/ternary-result/impl/ternary-result-is-err.mjs +23 -0
  262. package/dist/functional/ternary-result/impl/ternary-result-is-err.mjs.map +1 -0
  263. package/dist/functional/ternary-result/impl/ternary-result-is-ok.d.mts +21 -0
  264. package/dist/functional/ternary-result/impl/ternary-result-is-ok.d.mts.map +1 -0
  265. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs +24 -0
  266. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs.map +1 -0
  267. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.d.mts +17 -0
  268. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.d.mts.map +1 -0
  269. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs +28 -0
  270. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs.map +1 -0
  271. package/dist/functional/ternary-result/impl/ternary-result-is-warn.d.mts +21 -0
  272. package/dist/functional/ternary-result/impl/ternary-result-is-warn.d.mts.map +1 -0
  273. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs +24 -0
  274. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs.map +1 -0
  275. package/dist/functional/ternary-result/impl/ternary-result-map-err.d.mts +23 -0
  276. package/dist/functional/ternary-result/impl/ternary-result-map-err.d.mts.map +1 -0
  277. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs +26 -0
  278. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs.map +1 -0
  279. package/dist/functional/ternary-result/impl/ternary-result-map-warn.d.mts +21 -0
  280. package/dist/functional/ternary-result/impl/ternary-result-map-warn.d.mts.map +1 -0
  281. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs +29 -0
  282. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs.map +1 -0
  283. package/dist/functional/ternary-result/impl/ternary-result-map.d.mts +29 -0
  284. package/dist/functional/ternary-result/impl/ternary-result-map.d.mts.map +1 -0
  285. package/dist/functional/ternary-result/impl/ternary-result-map.mjs +35 -0
  286. package/dist/functional/ternary-result/impl/ternary-result-map.mjs.map +1 -0
  287. package/dist/functional/ternary-result/impl/ternary-result-ok.d.mts +16 -0
  288. package/dist/functional/ternary-result/impl/ternary-result-ok.d.mts.map +1 -0
  289. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs +23 -0
  290. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs.map +1 -0
  291. package/dist/functional/ternary-result/impl/ternary-result-or-else.d.mts +26 -0
  292. package/dist/functional/ternary-result/impl/ternary-result-or-else.d.mts.map +1 -0
  293. package/dist/functional/ternary-result/impl/ternary-result-or-else.mjs +19 -0
  294. package/dist/functional/ternary-result/impl/ternary-result-or-else.mjs.map +1 -0
  295. package/dist/functional/ternary-result/impl/ternary-result-to-optional.d.mts +16 -0
  296. package/dist/functional/ternary-result/impl/ternary-result-to-optional.d.mts.map +1 -0
  297. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs +25 -0
  298. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs.map +1 -0
  299. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.d.mts +22 -0
  300. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.d.mts.map +1 -0
  301. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.mjs +17 -0
  302. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.mjs.map +1 -0
  303. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.d.mts +18 -0
  304. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.d.mts.map +1 -0
  305. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs +36 -0
  306. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs.map +1 -0
  307. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.d.mts +17 -0
  308. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.d.mts.map +1 -0
  309. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs +22 -0
  310. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs.map +1 -0
  311. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.d.mts +22 -0
  312. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.d.mts.map +1 -0
  313. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mjs +17 -0
  314. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mjs.map +1 -0
  315. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.d.mts +17 -0
  316. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.d.mts.map +1 -0
  317. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs +13 -0
  318. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs.map +1 -0
  319. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.d.mts +18 -0
  320. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.d.mts.map +1 -0
  321. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs +36 -0
  322. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs.map +1 -0
  323. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.d.mts +19 -0
  324. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.d.mts.map +1 -0
  325. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mjs +17 -0
  326. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mjs.map +1 -0
  327. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.d.mts +18 -0
  328. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.d.mts.map +1 -0
  329. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs +32 -0
  330. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs.map +1 -0
  331. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.d.mts +17 -0
  332. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.d.mts.map +1 -0
  333. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs +22 -0
  334. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs.map +1 -0
  335. package/dist/functional/ternary-result/impl/ternary-result-warn.d.mts +18 -0
  336. package/dist/functional/ternary-result/impl/ternary-result-warn.d.mts.map +1 -0
  337. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs +26 -0
  338. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs.map +1 -0
  339. package/dist/functional/ternary-result/impl/ternary-result-zip.d.mts +26 -0
  340. package/dist/functional/ternary-result/impl/ternary-result-zip.d.mts.map +1 -0
  341. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs +48 -0
  342. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs.map +1 -0
  343. package/dist/functional/ternary-result/impl/types.d.mts +25 -0
  344. package/dist/functional/ternary-result/impl/types.d.mts.map +1 -0
  345. package/dist/functional/ternary-result/impl/types.mjs +2 -0
  346. package/dist/functional/ternary-result/impl/types.mjs.map +1 -0
  347. package/dist/functional/ternary-result/impl/variant-name.d.mts +3 -0
  348. package/dist/functional/ternary-result/impl/variant-name.d.mts.map +1 -0
  349. package/dist/functional/ternary-result/impl/variant-name.mjs +16 -0
  350. package/dist/functional/ternary-result/impl/variant-name.mjs.map +1 -0
  351. package/dist/functional/ternary-result/index.d.mts +2 -0
  352. package/dist/functional/ternary-result/index.d.mts.map +1 -0
  353. package/dist/functional/ternary-result/index.mjs +3 -0
  354. package/dist/functional/ternary-result/index.mjs.map +1 -0
  355. package/dist/globals.d.mts +136 -0
  356. package/dist/index.d.mts +0 -1
  357. package/dist/index.d.mts.map +1 -1
  358. package/dist/index.mjs +0 -4
  359. package/dist/index.mjs.map +1 -1
  360. package/dist/json/json.d.mts +0 -1
  361. package/dist/json/json.d.mts.map +1 -1
  362. package/dist/json/json.mjs +8 -8
  363. package/dist/json/json.mjs.map +1 -1
  364. package/dist/number/branded-types/finite-number.mjs +1 -1
  365. package/dist/number/branded-types/finite-number.mjs.map +1 -1
  366. package/dist/number/branded-types/int.mjs +1 -1
  367. package/dist/number/branded-types/int.mjs.map +1 -1
  368. package/dist/number/branded-types/int16.mjs +1 -1
  369. package/dist/number/branded-types/int16.mjs.map +1 -1
  370. package/dist/number/branded-types/int32.mjs +1 -1
  371. package/dist/number/branded-types/int32.mjs.map +1 -1
  372. package/dist/number/branded-types/non-negative-finite-number.mjs +1 -1
  373. package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
  374. package/dist/number/branded-types/non-negative-int16.mjs +1 -1
  375. package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
  376. package/dist/number/branded-types/non-negative-int32.mjs +1 -1
  377. package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
  378. package/dist/number/branded-types/non-zero-finite-number.mjs +1 -1
  379. package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
  380. package/dist/number/branded-types/non-zero-int.mjs +1 -1
  381. package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
  382. package/dist/number/branded-types/non-zero-int16.mjs +1 -1
  383. package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
  384. package/dist/number/branded-types/non-zero-int32.mjs +1 -1
  385. package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
  386. package/dist/number/branded-types/non-zero-safe-int.mjs +1 -1
  387. package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
  388. package/dist/number/branded-types/non-zero-uint16.mjs +1 -1
  389. package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
  390. package/dist/number/branded-types/non-zero-uint32.mjs +1 -1
  391. package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
  392. package/dist/number/branded-types/positive-finite-number.mjs +1 -1
  393. package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
  394. package/dist/number/branded-types/positive-int.mjs +1 -1
  395. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  396. package/dist/number/branded-types/positive-int16.mjs +1 -1
  397. package/dist/number/branded-types/positive-int16.mjs.map +1 -1
  398. package/dist/number/branded-types/positive-int32.mjs +1 -1
  399. package/dist/number/branded-types/positive-int32.mjs.map +1 -1
  400. package/dist/number/branded-types/positive-safe-int.mjs +1 -1
  401. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  402. package/dist/number/branded-types/positive-uint16.mjs +1 -1
  403. package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
  404. package/dist/number/branded-types/positive-uint32.mjs +1 -1
  405. package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
  406. package/dist/number/branded-types/safe-int.mjs +1 -1
  407. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  408. package/dist/number/branded-types/safe-uint.mjs +1 -1
  409. package/dist/number/branded-types/safe-uint.mjs.map +1 -1
  410. package/dist/number/branded-types/uint.mjs +1 -1
  411. package/dist/number/branded-types/uint.mjs.map +1 -1
  412. package/dist/number/branded-types/uint16.mjs +1 -1
  413. package/dist/number/branded-types/uint16.mjs.map +1 -1
  414. package/dist/number/branded-types/uint32.mjs +1 -1
  415. package/dist/number/branded-types/uint32.mjs.map +1 -1
  416. package/dist/number/enum/int8.mjs +1 -1
  417. package/dist/number/enum/int8.mjs.map +1 -1
  418. package/dist/number/enum/uint8.mjs +1 -1
  419. package/dist/number/enum/uint8.mjs.map +1 -1
  420. package/dist/number/refined-number-utils.mjs +0 -2
  421. package/dist/number/refined-number-utils.mjs.map +1 -1
  422. package/dist/promise/promise.d.mts +0 -1
  423. package/dist/promise/promise.d.mts.map +1 -1
  424. package/dist/promise/promise.mjs +2 -3
  425. package/dist/promise/promise.mjs.map +1 -1
  426. package/package.json +27 -21
  427. package/src/array/impl/array-utils-element-access.mts +6 -6
  428. package/src/array/impl/array-utils-element-access.test.mts +6 -6
  429. package/src/array/impl/array-utils-reducing-value.mts +8 -24
  430. package/src/array/impl/array-utils-reducing-value.test.mts +8 -8
  431. package/src/array/impl/array-utils-slice-clamped.test.mts +1 -1
  432. package/src/entry-point.mts +1 -0
  433. package/src/functional/index.mts +3 -2
  434. package/src/functional/optional/impl/index.mts +17 -0
  435. package/src/functional/optional/impl/optional-expect-to-be.mts +65 -0
  436. package/src/functional/optional/impl/optional-filter.mts +71 -0
  437. package/src/functional/optional/impl/optional-flat-map.mts +67 -0
  438. package/src/functional/optional/impl/optional-from-nullable.mts +28 -0
  439. package/src/functional/optional/impl/optional-is-none.mts +25 -0
  440. package/src/functional/optional/impl/optional-is-optional.mts +27 -0
  441. package/src/functional/optional/impl/optional-is-some.mts +25 -0
  442. package/src/functional/optional/impl/optional-map.mts +69 -0
  443. package/src/functional/optional/impl/optional-none.mts +17 -0
  444. package/src/functional/optional/impl/optional-or-else.mts +73 -0
  445. package/src/functional/optional/impl/optional-some.mts +23 -0
  446. package/src/functional/optional/impl/optional-to-nullable.mts +31 -0
  447. package/src/functional/optional/impl/optional-unwrap-or.mts +64 -0
  448. package/src/functional/optional/impl/optional-unwrap-throw.mts +39 -0
  449. package/src/functional/optional/impl/optional-unwrap.mts +41 -0
  450. package/src/functional/optional/impl/optional-zip.mts +40 -0
  451. package/src/functional/optional/impl/tag.mts +6 -0
  452. package/src/functional/optional/impl/types.mts +28 -0
  453. package/src/functional/optional/index.mts +1 -0
  454. package/src/functional/optional.test.mts +7 -8
  455. package/src/functional/pipe.mts +5 -5
  456. package/src/functional/pipe.test.mts +1 -1
  457. package/src/functional/result/impl/index.mts +23 -0
  458. package/src/functional/result/impl/result-err.mts +29 -0
  459. package/src/functional/result/impl/result-expect-to-be.mts +63 -0
  460. package/src/functional/result/impl/result-flat-map.mts +79 -0
  461. package/src/functional/result/impl/result-fold.mts +95 -0
  462. package/src/functional/result/impl/result-from-promise.mts +39 -0
  463. package/src/functional/result/impl/result-from-throwable.mts +42 -0
  464. package/src/functional/result/impl/result-is-err.mts +23 -0
  465. package/src/functional/result/impl/result-is-ok.mts +23 -0
  466. package/src/functional/result/impl/result-is-result.mts +23 -0
  467. package/src/functional/result/impl/result-map-err.mts +72 -0
  468. package/src/functional/result/impl/result-map.mts +73 -0
  469. package/src/functional/result/impl/result-ok.mts +29 -0
  470. package/src/functional/result/impl/result-or-else.mts +63 -0
  471. package/src/functional/result/impl/result-swap.mts +28 -0
  472. package/src/functional/result/impl/result-to-optional.mts +34 -0
  473. package/src/functional/result/impl/result-unwrap-err-or.mts +60 -0
  474. package/src/functional/result/impl/result-unwrap-err-throw.mts +53 -0
  475. package/src/functional/result/impl/result-unwrap-err.mts +36 -0
  476. package/src/functional/result/impl/result-unwrap-ok-or.mts +60 -0
  477. package/src/functional/result/impl/result-unwrap-ok.mts +35 -0
  478. package/src/functional/result/impl/result-unwrap-throw.mts +43 -0
  479. package/src/functional/result/impl/result-zip.mts +39 -0
  480. package/src/functional/result/impl/tag.mts +6 -0
  481. package/src/functional/result/impl/types.mts +35 -0
  482. package/src/functional/result/index.mts +1 -0
  483. package/src/functional/result.test.mts +5 -4
  484. package/src/functional/ternary-result/impl/index.mts +28 -0
  485. package/src/functional/ternary-result/impl/tag.mts +11 -0
  486. package/src/functional/ternary-result/impl/ternary-result-err.mts +18 -0
  487. package/src/functional/ternary-result/impl/ternary-result-expect-to-be.mts +53 -0
  488. package/src/functional/ternary-result/impl/ternary-result-flat-map.mts +95 -0
  489. package/src/functional/ternary-result/impl/ternary-result-fold.mts +93 -0
  490. package/src/functional/ternary-result/impl/ternary-result-from-promise.mts +27 -0
  491. package/src/functional/ternary-result/impl/ternary-result-from-throwable.mts +31 -0
  492. package/src/functional/ternary-result/impl/ternary-result-is-err.mts +23 -0
  493. package/src/functional/ternary-result/impl/ternary-result-is-ok.mts +24 -0
  494. package/src/functional/ternary-result/impl/ternary-result-is-ternary-result.mts +27 -0
  495. package/src/functional/ternary-result/impl/ternary-result-is-warn.mts +24 -0
  496. package/src/functional/ternary-result/impl/ternary-result-map-err.mts +64 -0
  497. package/src/functional/ternary-result/impl/ternary-result-map-warn.mts +66 -0
  498. package/src/functional/ternary-result/impl/ternary-result-map.mts +81 -0
  499. package/src/functional/ternary-result/impl/ternary-result-ok.mts +20 -0
  500. package/src/functional/ternary-result/impl/ternary-result-or-else.mts +66 -0
  501. package/src/functional/ternary-result/impl/ternary-result-to-optional.mts +25 -0
  502. package/src/functional/ternary-result/impl/ternary-result-unwrap-err-or.mts +45 -0
  503. package/src/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mts +40 -0
  504. package/src/functional/ternary-result/impl/ternary-result-unwrap-err.mts +22 -0
  505. package/src/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mts +45 -0
  506. package/src/functional/ternary-result/impl/ternary-result-unwrap-ok.mts +32 -0
  507. package/src/functional/ternary-result/impl/ternary-result-unwrap-throw.mts +45 -0
  508. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mts +42 -0
  509. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mts +38 -0
  510. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn.mts +22 -0
  511. package/src/functional/ternary-result/impl/ternary-result-warn.mts +23 -0
  512. package/src/functional/ternary-result/impl/ternary-result-zip.mts +53 -0
  513. package/src/functional/ternary-result/impl/types.mts +39 -0
  514. package/src/functional/ternary-result/impl/variant-name.mts +17 -0
  515. package/src/functional/ternary-result/index.mts +1 -0
  516. package/src/functional/ternary-result.test.mts +198 -0
  517. package/src/globals.d.mts +136 -0
  518. package/src/guard/is-non-empty-string.test.mts +1 -1
  519. package/src/guard/is-non-null-object.test.mts +3 -3
  520. package/src/guard/is-primitive.test.mts +3 -3
  521. package/src/guard/is-type.test.mts +3 -3
  522. package/src/index.mts +0 -1
  523. package/src/number/branded-types/finite-number.mts +7 -7
  524. package/src/number/branded-types/int.mts +7 -7
  525. package/src/number/branded-types/int16.mts +9 -9
  526. package/src/number/branded-types/int32.mts +9 -9
  527. package/src/number/branded-types/non-negative-finite-number.mts +8 -8
  528. package/src/number/branded-types/non-negative-int16.mts +9 -9
  529. package/src/number/branded-types/non-negative-int32.mts +9 -9
  530. package/src/number/branded-types/non-zero-finite-number.mts +7 -7
  531. package/src/number/branded-types/non-zero-int.mts +7 -7
  532. package/src/number/branded-types/non-zero-int16.mts +9 -9
  533. package/src/number/branded-types/non-zero-int32.mts +9 -9
  534. package/src/number/branded-types/non-zero-safe-int.mts +9 -9
  535. package/src/number/branded-types/non-zero-uint16.mts +9 -9
  536. package/src/number/branded-types/non-zero-uint32.mts +9 -9
  537. package/src/number/branded-types/positive-finite-number.mts +8 -8
  538. package/src/number/branded-types/positive-int.mts +8 -8
  539. package/src/number/branded-types/positive-int16.mts +9 -9
  540. package/src/number/branded-types/positive-int32.mts +9 -9
  541. package/src/number/branded-types/positive-safe-int.mts +9 -9
  542. package/src/number/branded-types/positive-uint16.mts +9 -9
  543. package/src/number/branded-types/positive-uint32.mts +9 -9
  544. package/src/number/branded-types/safe-int.mts +9 -9
  545. package/src/number/branded-types/safe-uint.mts +9 -9
  546. package/src/number/branded-types/uint.mts +8 -8
  547. package/src/number/branded-types/uint16.mts +9 -9
  548. package/src/number/branded-types/uint32.mts +9 -9
  549. package/src/number/enum/int8.mts +3 -3
  550. package/src/number/enum/int8.test.mts +9 -9
  551. package/src/number/enum/uint8.mts +3 -3
  552. package/src/number/enum/uint8.test.mts +8 -8
  553. package/dist/functional/optional.d.mts +0 -482
  554. package/dist/functional/optional.d.mts.map +0 -1
  555. package/dist/functional/optional.mjs +0 -328
  556. package/dist/functional/optional.mjs.map +0 -1
  557. package/dist/functional/result.d.mts +0 -712
  558. package/dist/functional/result.d.mts.map +0 -1
  559. package/dist/functional/result.mjs +0 -539
  560. package/dist/functional/result.mjs.map +0 -1
  561. package/src/functional/optional.mts +0 -713
  562. package/src/functional/result.mts +0 -1087
@@ -1,328 +0,0 @@
1
- import { isRecord } from '../guard/is-record.mjs';
2
-
3
- /** @internal String literal tag to identify the 'Some' variant of Optional. */
4
- const SomeTypeTagName = 'ts-data-forge::Optional.some';
5
- /** @internal String literal tag to identify the 'None' variant of Optional. */
6
- const NoneTypeTagName = 'ts-data-forge::Optional.none';
7
- /**
8
- * Namespace for the {@link Optional} type and related functions. Provides
9
- * utilities to handle values that might be absent, similar to Option types in
10
- * other languages.
11
- */
12
- var Optional;
13
- (function (Optional) {
14
- /**
15
- * Checks if the given value is an {@link Optional}.
16
- *
17
- * @example
18
- *
19
- * ```ts
20
- * const maybeOptional = Optional.some('value');
21
- * const notOptional = { $$tag: 'ts-data-forge::Optional.some' };
22
- *
23
- * assert.ok(Optional.isOptional(maybeOptional));
24
- * assert.notOk(Optional.isOptional(notOptional));
25
- * ```
26
- *
27
- * @param maybeOptional The value to check.
28
- * @returns `true` if the value is an {@link Optional}, otherwise `false`.
29
- */
30
- Optional.isOptional = (maybeOptional) => isRecord(maybeOptional) &&
31
- Object.hasOwn(maybeOptional, '$$tag') &&
32
- ((maybeOptional['$$tag'] === SomeTypeTagName &&
33
- Object.hasOwn(maybeOptional, 'value')) ||
34
- maybeOptional['$$tag'] === NoneTypeTagName);
35
- /**
36
- * Creates an {@link Optional.Some} containing the given value.
37
- *
38
- * @example
39
- *
40
- * ```ts
41
- * const someValue = Optional.some({ id: 1 });
42
- * const noneValue = Optional.none;
43
- *
44
- * assert.ok(Optional.isSome(someValue));
45
- * assert.ok(Optional.isNone(noneValue));
46
- * ```
47
- *
48
- * @template S The type of the value.
49
- * @param value The value to wrap in an {@link Optional.Some}.
50
- * @returns An {@link Optional.Some}<S> containing the value.
51
- */
52
- Optional.some = (value) => ({
53
- $$tag: SomeTypeTagName,
54
- value,
55
- });
56
- /**
57
- * The singleton instance representing {@link Optional.None} (an empty
58
- * Optional).
59
- *
60
- * @example
61
- *
62
- * ```ts
63
- * const someValue = Optional.some({ id: 1 });
64
- * const noneValue = Optional.none;
65
- *
66
- * assert.ok(Optional.isSome(someValue));
67
- * assert.ok(Optional.isNone(noneValue));
68
- * ```
69
- */
70
- Optional.none = { $$tag: NoneTypeTagName };
71
- /**
72
- * Checks if an {@link Optional} is {@link Optional.Some}. Acts as a type guard.
73
- *
74
- * @example
75
- *
76
- * ```ts
77
- * const optionalNumber = Optional.some(42);
78
- *
79
- * if (Optional.isSome(optionalNumber)) {
80
- * const value: number = optionalNumber.value;
81
- * assert(value === 42);
82
- * }
83
- * ```
84
- *
85
- * @template O The {@link Optional.Base} type to check.
86
- * @param optional The {@link Optional} to check.
87
- * @returns `true` if the {@link Optional} is {@link Optional.Some}, `false`
88
- * otherwise.
89
- */
90
- Optional.isSome = (optional) => optional.$$tag === SomeTypeTagName;
91
- /**
92
- * Checks if an {@link Optional} is {@link Optional.None}. Acts as a type guard.
93
- *
94
- * @example
95
- *
96
- * ```ts
97
- * const optionalValue = Optional.none as Optional<number>;
98
- *
99
- * if (Optional.isNone(optionalValue)) {
100
- * // Type narrowed to None
101
- * assert.ok(true); // optionalValue is None
102
- * }
103
- * ```
104
- *
105
- * @template O The {@link Optional.Base} type to check.
106
- * @param optional The {@link Optional} to check.
107
- * @returns `true` if the {@link Optional} is {@link Optional.None}, `false`
108
- * otherwise.
109
- */
110
- Optional.isNone = (optional) => optional.$$tag === NoneTypeTagName;
111
- /**
112
- * Unwraps an `Optional`, returning the contained value. Throws an error if
113
- * the `Optional` is `Optional.None`.
114
- *
115
- * This is a safer alternative to direct value access when you know the
116
- * Optional should contain a value. Use this method when an empty Optional
117
- * represents a programming error or unexpected condition.
118
- *
119
- * @example
120
- *
121
- * ```ts
122
- * const present = Optional.some('available');
123
- *
124
- * assert(Optional.unwrapThrow(present) === 'available');
125
- * assert.throws(
126
- * () => Optional.unwrapThrow(Optional.none),
127
- * /has failed because it is `None`/u,
128
- * );
129
- * ```
130
- *
131
- * @template O The `Optional.Base` type to unwrap.
132
- * @param optional The `Optional` to unwrap.
133
- * @returns The contained value if `Optional.Some`.
134
- * @throws {Error} Error with message "`unwrapThrow()` has failed because it
135
- * is `None`" if the `Optional` is `Optional.None`.
136
- */
137
- Optional.unwrapThrow = (optional) => {
138
- if (Optional.isSome(optional)) {
139
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
140
- return optional.value;
141
- }
142
- throw new Error('`unwrapThrow()` has failed because it is `None`');
143
- };
144
- function unwrap(optional) {
145
- return Optional.isSome(optional)
146
- ? // eslint-disable-next-line total-functions/no-unsafe-type-assertion
147
- optional.value
148
- : undefined;
149
- }
150
- Optional.unwrap = unwrap;
151
- function unwrapOr(...args) {
152
- switch (args.length) {
153
- case 2: {
154
- const [optional, defaultValue] = args;
155
- return Optional.isSome(optional)
156
- ? // eslint-disable-next-line total-functions/no-unsafe-type-assertion
157
- optional.value
158
- : defaultValue;
159
- }
160
- case 1: {
161
- // Curried version: first argument is default value
162
- const [defaultValue] = args;
163
- return (optional) => unwrapOr(optional, defaultValue);
164
- }
165
- }
166
- }
167
- Optional.unwrapOr = unwrapOr;
168
- function orElse(...args) {
169
- switch (args.length) {
170
- case 2: {
171
- const [optional, alternative] = args;
172
- return Optional.isNone(optional) ? alternative : optional;
173
- }
174
- case 1: {
175
- const [alternative] = args;
176
- return (optional) => orElse(optional, alternative);
177
- }
178
- }
179
- }
180
- Optional.orElse = orElse;
181
- function map(...args) {
182
- switch (args.length) {
183
- case 2: {
184
- const [optional, mapFn] = args;
185
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
186
- return Optional.isSome(optional) ? Optional.some(mapFn(unwrap(optional))) : Optional.none;
187
- }
188
- case 1: {
189
- // Curried version: first argument is mapping function
190
- const [mapFn] = args;
191
- return (optional) => map(optional, mapFn);
192
- }
193
- }
194
- }
195
- Optional.map = map;
196
- function flatMap(...args) {
197
- switch (args.length) {
198
- case 2: {
199
- const [optional, flatMapFn] = args;
200
- return Optional.isSome(optional) ? flatMapFn(unwrap(optional)) : Optional.none;
201
- }
202
- case 1: {
203
- const [flatMapFn] = args;
204
- return (optional) => flatMap(optional, flatMapFn);
205
- }
206
- }
207
- }
208
- Optional.flatMap = flatMap;
209
- function filter(...args) {
210
- switch (args.length) {
211
- case 2: {
212
- const [optional, predicate] = args;
213
- if (Optional.isSome(optional)) {
214
- const value = unwrap(optional);
215
- return predicate(value) ? Optional.some(value) : Optional.none;
216
- }
217
- // If the optional is None, return None
218
- return Optional.none;
219
- }
220
- case 1: {
221
- // Curried version: first argument is predicate function
222
- const [predicate] = args;
223
- return (optional) => filter(optional, predicate);
224
- }
225
- }
226
- }
227
- Optional.filter = filter;
228
- function expectToBe(...args) {
229
- switch (args.length) {
230
- case 2: {
231
- const [optional, message] = args;
232
- if (Optional.isSome(optional)) {
233
- return unwrap(optional);
234
- }
235
- throw new Error(message);
236
- }
237
- case 1: {
238
- // Curried version: first argument is message
239
- const [message] = args;
240
- return (optional) => expectToBe(optional, message);
241
- }
242
- }
243
- }
244
- Optional.expectToBe = expectToBe;
245
- /**
246
- * Combines two `Optional` values into a single `Optional` containing a tuple.
247
- * If either `Optional` is `None`, returns `None`.
248
- *
249
- * @example
250
- *
251
- * ```ts
252
- * const zipped = Optional.zip(Optional.some('left'), Optional.some(1));
253
- *
254
- * assert.ok(Optional.isSome(zipped));
255
- * if (Optional.isSome(zipped)) {
256
- * const expected: readonly [string, number] = ['left', 1];
257
- * assert.deepStrictEqual(zipped.value, expected);
258
- * }
259
- *
260
- * const missing = Optional.zip(
261
- * Optional.some('value'),
262
- * Optional.none as Optional<number>,
263
- * );
264
- *
265
- * assert.deepStrictEqual(missing, Optional.none);
266
- * ```
267
- *
268
- * @template A The value type of the first `Optional`.
269
- * @template B The value type of the second `Optional`.
270
- * @param optionalA The first `Optional`.
271
- * @param optionalB The second `Optional`.
272
- * @returns An `Optional` containing a tuple of both values, or `None`.
273
- */
274
- Optional.zip = (optionalA, optionalB) => Optional.isSome(optionalA) && Optional.isSome(optionalB)
275
- ? Optional.some([optionalA.value, optionalB.value])
276
- : Optional.none;
277
- /**
278
- * Converts a nullable value to an `Optional`.
279
- *
280
- * This is the primary way to lift nullable values (null or undefined) into
281
- * the Optional type system. The function treats both `null` and `undefined`
282
- * as empty values, converting them to `Optional.None`.
283
- *
284
- * @example
285
- *
286
- * ```ts
287
- * const present = Optional.fromNullable('hello');
288
- * const absent = Optional.fromNullable<string | null>(null);
289
- *
290
- * assert.deepStrictEqual(present, Optional.some('hello'));
291
- * assert.deepStrictEqual(absent, Optional.none);
292
- * ```
293
- *
294
- * @template T The type of the nullable value.
295
- * @param value The nullable value to convert.
296
- * @returns `Optional.Some<NonNullable<T>>` if the value is not null or
297
- * undefined, otherwise `Optional.None`.
298
- */
299
- Optional.fromNullable = (value) => (value == null ? Optional.none : Optional.some(value));
300
- /**
301
- * Converts an `Optional` to a nullable value.
302
- *
303
- * This function extracts the value from an Optional, returning `undefined`
304
- * for empty Optionals. This is useful when interfacing with APIs or systems
305
- * that expect nullable values rather than Optional types.
306
- *
307
- * Note: This returns `undefined` (not `null`) for consistency with
308
- * JavaScript's undefined semantics and TypeScript's optional properties.
309
- *
310
- * @example
311
- *
312
- * ```ts
313
- * const someNumber = Optional.some(42);
314
- * const noneNumber = Optional.none as Optional<number>;
315
- *
316
- * assert(Optional.toNullable(someNumber) === 42);
317
- * assert(Optional.toNullable(noneNumber) === undefined);
318
- * ```
319
- *
320
- * @template O The `Optional.Base` type to convert.
321
- * @param optional The `Optional` to convert.
322
- * @returns The contained value if `Some`, otherwise `undefined`.
323
- */
324
- Optional.toNullable = (optional) => (Optional.isSome(optional) ? unwrap(optional) : undefined);
325
- })(Optional || (Optional = {}));
326
-
327
- export { Optional };
328
- //# sourceMappingURL=optional.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"optional.mjs","sources":["../../src/functional/optional.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}