@resultsafe/core-fp-result 0.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 (389) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +273 -0
  3. package/README.ru.md +266 -0
  4. package/dist/LICENSE +21 -0
  5. package/dist/README.md +273 -0
  6. package/dist/cjs/constructors/Err.js +4 -0
  7. package/dist/cjs/constructors/Err.js.map +1 -0
  8. package/dist/cjs/constructors/Ok.js +4 -0
  9. package/dist/cjs/constructors/Ok.js.map +1 -0
  10. package/dist/cjs/guards/isErr.js +4 -0
  11. package/dist/cjs/guards/isErr.js.map +1 -0
  12. package/dist/cjs/guards/isErrAnd.js +5 -0
  13. package/dist/cjs/guards/isErrAnd.js.map +1 -0
  14. package/dist/cjs/guards/isOk.js +4 -0
  15. package/dist/cjs/guards/isOk.js.map +1 -0
  16. package/dist/cjs/guards/isOkAnd.js +5 -0
  17. package/dist/cjs/guards/isOkAnd.js.map +1 -0
  18. package/dist/cjs/index.js +70 -0
  19. package/dist/cjs/index.js.map +1 -0
  20. package/dist/cjs/internal/object.js +6 -0
  21. package/dist/cjs/internal/object.js.map +1 -0
  22. package/dist/cjs/internal/option.js +6 -0
  23. package/dist/cjs/internal/option.js.map +1 -0
  24. package/dist/cjs/methods/andThen.js +5 -0
  25. package/dist/cjs/methods/andThen.js.map +1 -0
  26. package/dist/cjs/methods/err.js +6 -0
  27. package/dist/cjs/methods/err.js.map +1 -0
  28. package/dist/cjs/methods/expect.js +10 -0
  29. package/dist/cjs/methods/expect.js.map +1 -0
  30. package/dist/cjs/methods/expectErr.js +10 -0
  31. package/dist/cjs/methods/expectErr.js.map +1 -0
  32. package/dist/cjs/methods/flatten.js +4 -0
  33. package/dist/cjs/methods/flatten.js.map +1 -0
  34. package/dist/cjs/methods/inspect.js +10 -0
  35. package/dist/cjs/methods/inspect.js.map +1 -0
  36. package/dist/cjs/methods/inspectErr.js +10 -0
  37. package/dist/cjs/methods/inspectErr.js.map +1 -0
  38. package/dist/cjs/methods/map.js +5 -0
  39. package/dist/cjs/methods/map.js.map +1 -0
  40. package/dist/cjs/methods/mapErr.js +5 -0
  41. package/dist/cjs/methods/mapErr.js.map +1 -0
  42. package/dist/cjs/methods/match.js +11 -0
  43. package/dist/cjs/methods/match.js.map +1 -0
  44. package/dist/cjs/methods/ok.js +6 -0
  45. package/dist/cjs/methods/ok.js.map +1 -0
  46. package/dist/cjs/methods/orElse.js +5 -0
  47. package/dist/cjs/methods/orElse.js.map +1 -0
  48. package/dist/cjs/methods/tap.js +9 -0
  49. package/dist/cjs/methods/tap.js.map +1 -0
  50. package/dist/cjs/methods/tapErr.js +10 -0
  51. package/dist/cjs/methods/tapErr.js.map +1 -0
  52. package/dist/cjs/methods/transpose.js +10 -0
  53. package/dist/cjs/methods/transpose.js.map +1 -0
  54. package/dist/cjs/methods/unwrap.js +10 -0
  55. package/dist/cjs/methods/unwrap.js.map +1 -0
  56. package/dist/cjs/methods/unwrapErr.js +10 -0
  57. package/dist/cjs/methods/unwrapErr.js.map +1 -0
  58. package/dist/cjs/methods/unwrapOr.js +5 -0
  59. package/dist/cjs/methods/unwrapOr.js.map +1 -0
  60. package/dist/cjs/methods/unwrapOrElse.js +10 -0
  61. package/dist/cjs/methods/unwrapOrElse.js.map +1 -0
  62. package/dist/cjs/package.json +3 -0
  63. package/dist/cjs/refiners/isTypedVariant.js +9 -0
  64. package/dist/cjs/refiners/isTypedVariant.js.map +1 -0
  65. package/dist/cjs/refiners/isTypedVariantOf.js +14 -0
  66. package/dist/cjs/refiners/isTypedVariantOf.js.map +1 -0
  67. package/dist/cjs/refiners/matchVariant.js +57 -0
  68. package/dist/cjs/refiners/matchVariant.js.map +1 -0
  69. package/dist/cjs/refiners/matchVariantStrict.js +37 -0
  70. package/dist/cjs/refiners/matchVariantStrict.js.map +1 -0
  71. package/dist/cjs/refiners/refineAsyncResult.js +26 -0
  72. package/dist/cjs/refiners/refineAsyncResult.js.map +1 -0
  73. package/dist/cjs/refiners/refineAsyncResultU.js +28 -0
  74. package/dist/cjs/refiners/refineAsyncResultU.js.map +1 -0
  75. package/dist/cjs/refiners/refineResult.js +21 -0
  76. package/dist/cjs/refiners/refineResult.js.map +1 -0
  77. package/dist/cjs/refiners/refineResultU.js +5 -0
  78. package/dist/cjs/refiners/refineResultU.js.map +1 -0
  79. package/dist/cjs/refiners/refineVariantMap.js +25 -0
  80. package/dist/cjs/refiners/refineVariantMap.js.map +1 -0
  81. package/dist/cjs/refiners/utils/getPayloadKeys.js +8 -0
  82. package/dist/cjs/refiners/utils/getPayloadKeys.js.map +1 -0
  83. package/dist/docs/api/README.md +9 -0
  84. package/dist/docs/api/constructors/Err.md +58 -0
  85. package/dist/docs/api/constructors/Ok.md +58 -0
  86. package/dist/docs/api/constructors/index.md +7 -0
  87. package/dist/docs/api/guards/index.md +9 -0
  88. package/dist/docs/api/guards/isErr.md +58 -0
  89. package/dist/docs/api/guards/isErrAnd.md +64 -0
  90. package/dist/docs/api/guards/isOk.md +58 -0
  91. package/dist/docs/api/guards/isOkAnd.md +64 -0
  92. package/dist/docs/api/index.md +9 -0
  93. package/dist/docs/api/methods/andThen.md +73 -0
  94. package/dist/docs/api/methods/err.md +58 -0
  95. package/dist/docs/api/methods/expect.md +68 -0
  96. package/dist/docs/api/methods/expectErr.md +68 -0
  97. package/dist/docs/api/methods/flatten.md +58 -0
  98. package/dist/docs/api/methods/index.md +24 -0
  99. package/dist/docs/api/methods/inspect.md +64 -0
  100. package/dist/docs/api/methods/inspectErr.md +64 -0
  101. package/dist/docs/api/methods/map.md +70 -0
  102. package/dist/docs/api/methods/mapErr.md +70 -0
  103. package/dist/docs/api/methods/match.md +76 -0
  104. package/dist/docs/api/methods/ok.md +58 -0
  105. package/dist/docs/api/methods/orElse.md +70 -0
  106. package/dist/docs/api/methods/tap.md +64 -0
  107. package/dist/docs/api/methods/tapErr.md +64 -0
  108. package/dist/docs/api/methods/transpose.md +58 -0
  109. package/dist/docs/api/methods/unwrap.md +62 -0
  110. package/dist/docs/api/methods/unwrapErr.md +62 -0
  111. package/dist/docs/api/methods/unwrapOr.md +64 -0
  112. package/dist/docs/api/methods/unwrapOrElse.md +64 -0
  113. package/dist/docs/api/modules.md +10 -0
  114. package/dist/docs/api/refiners/index.md +14 -0
  115. package/dist/docs/api/refiners/isTypedVariant.md +62 -0
  116. package/dist/docs/api/refiners/isTypedVariantOf.md +68 -0
  117. package/dist/docs/api/refiners/matchVariant.md +59 -0
  118. package/dist/docs/api/refiners/matchVariantStrict.md +63 -0
  119. package/dist/docs/api/refiners/refineAsyncResult.md +98 -0
  120. package/dist/docs/api/refiners/refineAsyncResultU.md +86 -0
  121. package/dist/docs/api/refiners/refineResult.md +98 -0
  122. package/dist/docs/api/refiners/refineResultU.md +86 -0
  123. package/dist/docs/api/refiners/refineVariantMap.md +79 -0
  124. package/dist/docs/api/type-aliases/Handler.md +49 -0
  125. package/dist/docs/api/type-aliases/MatchBuilder.md +57 -0
  126. package/dist/docs/api/type-aliases/Matcher.md +71 -0
  127. package/dist/docs/api/type-aliases/SyncRefinedResult.md +31 -0
  128. package/dist/docs/api/type-aliases/SyncRefinedResultUnion.md +21 -0
  129. package/dist/docs/api/type-aliases/SyncValidatorMap.md +17 -0
  130. package/dist/docs/api/type-aliases/UniversalAsyncRefinedResult.md +31 -0
  131. package/dist/docs/api/type-aliases/UniversalRefinedResult.md +31 -0
  132. package/dist/docs/api/type-aliases/VariantOf.md +23 -0
  133. package/dist/docs/api/type-aliases/index.md +14 -0
  134. package/dist/esm/constructors/Err.js +7 -0
  135. package/dist/esm/constructors/Err.js.map +1 -0
  136. package/dist/esm/constructors/Ok.js +7 -0
  137. package/dist/esm/constructors/Ok.js.map +1 -0
  138. package/dist/esm/guards/isErr.js +7 -0
  139. package/dist/esm/guards/isErr.js.map +1 -0
  140. package/dist/esm/guards/isErrAnd.js +8 -0
  141. package/dist/esm/guards/isErrAnd.js.map +1 -0
  142. package/dist/esm/guards/isOk.js +7 -0
  143. package/dist/esm/guards/isOk.js.map +1 -0
  144. package/dist/esm/guards/isOkAnd.js +8 -0
  145. package/dist/esm/guards/isOkAnd.js.map +1 -0
  146. package/dist/esm/index.js +71 -0
  147. package/dist/esm/index.js.map +1 -0
  148. package/dist/esm/internal/object.js +9 -0
  149. package/dist/esm/internal/object.js.map +1 -0
  150. package/dist/esm/internal/option.js +9 -0
  151. package/dist/esm/internal/option.js.map +1 -0
  152. package/dist/esm/methods/andThen.js +8 -0
  153. package/dist/esm/methods/andThen.js.map +1 -0
  154. package/dist/esm/methods/err.js +9 -0
  155. package/dist/esm/methods/err.js.map +1 -0
  156. package/dist/esm/methods/expect.js +13 -0
  157. package/dist/esm/methods/expect.js.map +1 -0
  158. package/dist/esm/methods/expectErr.js +13 -0
  159. package/dist/esm/methods/expectErr.js.map +1 -0
  160. package/dist/esm/methods/flatten.js +7 -0
  161. package/dist/esm/methods/flatten.js.map +1 -0
  162. package/dist/esm/methods/inspect.js +13 -0
  163. package/dist/esm/methods/inspect.js.map +1 -0
  164. package/dist/esm/methods/inspectErr.js +13 -0
  165. package/dist/esm/methods/inspectErr.js.map +1 -0
  166. package/dist/esm/methods/map.js +8 -0
  167. package/dist/esm/methods/map.js.map +1 -0
  168. package/dist/esm/methods/mapErr.js +8 -0
  169. package/dist/esm/methods/mapErr.js.map +1 -0
  170. package/dist/esm/methods/match.js +14 -0
  171. package/dist/esm/methods/match.js.map +1 -0
  172. package/dist/esm/methods/ok.js +9 -0
  173. package/dist/esm/methods/ok.js.map +1 -0
  174. package/dist/esm/methods/orElse.js +8 -0
  175. package/dist/esm/methods/orElse.js.map +1 -0
  176. package/dist/esm/methods/tap.js +12 -0
  177. package/dist/esm/methods/tap.js.map +1 -0
  178. package/dist/esm/methods/tapErr.js +13 -0
  179. package/dist/esm/methods/tapErr.js.map +1 -0
  180. package/dist/esm/methods/transpose.js +13 -0
  181. package/dist/esm/methods/transpose.js.map +1 -0
  182. package/dist/esm/methods/unwrap.js +13 -0
  183. package/dist/esm/methods/unwrap.js.map +1 -0
  184. package/dist/esm/methods/unwrapErr.js +13 -0
  185. package/dist/esm/methods/unwrapErr.js.map +1 -0
  186. package/dist/esm/methods/unwrapOr.js +8 -0
  187. package/dist/esm/methods/unwrapOr.js.map +1 -0
  188. package/dist/esm/methods/unwrapOrElse.js +13 -0
  189. package/dist/esm/methods/unwrapOrElse.js.map +1 -0
  190. package/dist/esm/refiners/isTypedVariant.js +12 -0
  191. package/dist/esm/refiners/isTypedVariant.js.map +1 -0
  192. package/dist/esm/refiners/isTypedVariantOf.js +17 -0
  193. package/dist/esm/refiners/isTypedVariantOf.js.map +1 -0
  194. package/dist/esm/refiners/matchVariant.js +60 -0
  195. package/dist/esm/refiners/matchVariant.js.map +1 -0
  196. package/dist/esm/refiners/matchVariantStrict.js +40 -0
  197. package/dist/esm/refiners/matchVariantStrict.js.map +1 -0
  198. package/dist/esm/refiners/refineAsyncResult.js +29 -0
  199. package/dist/esm/refiners/refineAsyncResult.js.map +1 -0
  200. package/dist/esm/refiners/refineAsyncResultU.js +31 -0
  201. package/dist/esm/refiners/refineAsyncResultU.js.map +1 -0
  202. package/dist/esm/refiners/refineResult.js +24 -0
  203. package/dist/esm/refiners/refineResult.js.map +1 -0
  204. package/dist/esm/refiners/refineResultU.js +8 -0
  205. package/dist/esm/refiners/refineResultU.js.map +1 -0
  206. package/dist/esm/refiners/refineVariantMap.js +29 -0
  207. package/dist/esm/refiners/refineVariantMap.js.map +1 -0
  208. package/dist/esm/refiners/utils/getPayloadKeys.js +11 -0
  209. package/dist/esm/refiners/utils/getPayloadKeys.js.map +1 -0
  210. package/dist/package.json +36 -0
  211. package/dist/types/constructors/Err.d.ts +21 -0
  212. package/dist/types/constructors/Err.d.ts.map +1 -0
  213. package/dist/types/constructors/Ok.d.ts +21 -0
  214. package/dist/types/constructors/Ok.d.ts.map +1 -0
  215. package/dist/types/constructors/index.d.ts +3 -0
  216. package/dist/types/constructors/index.d.ts.map +1 -0
  217. package/dist/types/guards/index.d.ts +5 -0
  218. package/dist/types/guards/index.d.ts.map +1 -0
  219. package/dist/types/guards/isErr.d.ts +24 -0
  220. package/dist/types/guards/isErr.d.ts.map +1 -0
  221. package/dist/types/guards/isErrAnd.d.ts +22 -0
  222. package/dist/types/guards/isErrAnd.d.ts.map +1 -0
  223. package/dist/types/guards/isOk.d.ts +24 -0
  224. package/dist/types/guards/isOk.d.ts.map +1 -0
  225. package/dist/types/guards/isOkAnd.d.ts +22 -0
  226. package/dist/types/guards/isOkAnd.d.ts.map +1 -0
  227. package/dist/types/index.d.ts +5 -0
  228. package/dist/types/index.d.ts.map +1 -0
  229. package/dist/types/internal/object.d.ts +5 -0
  230. package/dist/types/internal/object.d.ts.map +1 -0
  231. package/dist/types/internal/option.d.ts +10 -0
  232. package/dist/types/internal/option.d.ts.map +1 -0
  233. package/dist/types/methods/andThen.d.ts +26 -0
  234. package/dist/types/methods/andThen.d.ts.map +1 -0
  235. package/dist/types/methods/err.d.ts +22 -0
  236. package/dist/types/methods/err.d.ts.map +1 -0
  237. package/dist/types/methods/expect.d.ts +23 -0
  238. package/dist/types/methods/expect.d.ts.map +1 -0
  239. package/dist/types/methods/expectErr.d.ts +23 -0
  240. package/dist/types/methods/expectErr.d.ts.map +1 -0
  241. package/dist/types/methods/flatten.d.ts +21 -0
  242. package/dist/types/methods/flatten.d.ts.map +1 -0
  243. package/dist/types/methods/index.d.ts +20 -0
  244. package/dist/types/methods/index.d.ts.map +1 -0
  245. package/dist/types/methods/inspect.d.ts +22 -0
  246. package/dist/types/methods/inspect.d.ts.map +1 -0
  247. package/dist/types/methods/inspectErr.d.ts +22 -0
  248. package/dist/types/methods/inspectErr.d.ts.map +1 -0
  249. package/dist/types/methods/map.d.ts +23 -0
  250. package/dist/types/methods/map.d.ts.map +1 -0
  251. package/dist/types/methods/mapErr.d.ts +23 -0
  252. package/dist/types/methods/mapErr.d.ts.map +1 -0
  253. package/dist/types/methods/match.d.ts +24 -0
  254. package/dist/types/methods/match.d.ts.map +1 -0
  255. package/dist/types/methods/ok.d.ts +22 -0
  256. package/dist/types/methods/ok.d.ts.map +1 -0
  257. package/dist/types/methods/orElse.d.ts +23 -0
  258. package/dist/types/methods/orElse.d.ts.map +1 -0
  259. package/dist/types/methods/tap.d.ts +22 -0
  260. package/dist/types/methods/tap.d.ts.map +1 -0
  261. package/dist/types/methods/tapErr.d.ts +22 -0
  262. package/dist/types/methods/tapErr.d.ts.map +1 -0
  263. package/dist/types/methods/transpose.d.ts +22 -0
  264. package/dist/types/methods/transpose.d.ts.map +1 -0
  265. package/dist/types/methods/unwrap.d.ts +22 -0
  266. package/dist/types/methods/unwrap.d.ts.map +1 -0
  267. package/dist/types/methods/unwrapErr.d.ts +22 -0
  268. package/dist/types/methods/unwrapErr.d.ts.map +1 -0
  269. package/dist/types/methods/unwrapOr.d.ts +22 -0
  270. package/dist/types/methods/unwrapOr.d.ts.map +1 -0
  271. package/dist/types/methods/unwrapOrElse.d.ts +22 -0
  272. package/dist/types/methods/unwrapOrElse.d.ts.map +1 -0
  273. package/dist/types/refiners/index.d.ts +11 -0
  274. package/dist/types/refiners/index.d.ts.map +1 -0
  275. package/dist/types/refiners/isTypedVariant.d.ts +21 -0
  276. package/dist/types/refiners/isTypedVariant.d.ts.map +1 -0
  277. package/dist/types/refiners/isTypedVariantOf.d.ts +22 -0
  278. package/dist/types/refiners/isTypedVariantOf.d.ts.map +1 -0
  279. package/dist/types/refiners/matchVariant.d.ts +27 -0
  280. package/dist/types/refiners/matchVariant.d.ts.map +1 -0
  281. package/dist/types/refiners/matchVariantStrict.d.ts +28 -0
  282. package/dist/types/refiners/matchVariantStrict.d.ts.map +1 -0
  283. package/dist/types/refiners/refineAsyncResult.d.ts +54 -0
  284. package/dist/types/refiners/refineAsyncResult.d.ts.map +1 -0
  285. package/dist/types/refiners/refineAsyncResultU.d.ts +30 -0
  286. package/dist/types/refiners/refineAsyncResultU.d.ts.map +1 -0
  287. package/dist/types/refiners/refineResult.d.ts +54 -0
  288. package/dist/types/refiners/refineResult.d.ts.map +1 -0
  289. package/dist/types/refiners/refineResultU.d.ts +30 -0
  290. package/dist/types/refiners/refineResultU.d.ts.map +1 -0
  291. package/dist/types/refiners/refineVariantMap.d.ts +34 -0
  292. package/dist/types/refiners/refineVariantMap.d.ts.map +1 -0
  293. package/dist/types/refiners/types/Handler.d.ts +9 -0
  294. package/dist/types/refiners/types/Handler.d.ts.map +1 -0
  295. package/dist/types/refiners/types/MatchBuilder.d.ts +9 -0
  296. package/dist/types/refiners/types/MatchBuilder.d.ts.map +1 -0
  297. package/dist/types/refiners/types/Matcher.d.ts +11 -0
  298. package/dist/types/refiners/types/Matcher.d.ts.map +1 -0
  299. package/dist/types/refiners/types/SyncRefinedResult.d.ts +6 -0
  300. package/dist/types/refiners/types/SyncRefinedResult.d.ts.map +1 -0
  301. package/dist/types/refiners/types/SyncRefinedResultUnion.d.ts +8 -0
  302. package/dist/types/refiners/types/SyncRefinedResultUnion.d.ts.map +1 -0
  303. package/dist/types/refiners/types/SyncValidatorMap.d.ts +6 -0
  304. package/dist/types/refiners/types/SyncValidatorMap.d.ts.map +1 -0
  305. package/dist/types/refiners/types/UniversalAsyncRefinedResult.d.ts +6 -0
  306. package/dist/types/refiners/types/UniversalAsyncRefinedResult.d.ts.map +1 -0
  307. package/dist/types/refiners/types/UniversalRefinedResult.d.ts +6 -0
  308. package/dist/types/refiners/types/UniversalRefinedResult.d.ts.map +1 -0
  309. package/dist/types/refiners/types/VariantOf.d.ts +5 -0
  310. package/dist/types/refiners/types/VariantOf.d.ts.map +1 -0
  311. package/dist/types/refiners/types/index.d.ts +10 -0
  312. package/dist/types/refiners/types/index.d.ts.map +1 -0
  313. package/dist/types/refiners/utils/getPayloadKeys.d.ts +19 -0
  314. package/dist/types/refiners/utils/getPayloadKeys.d.ts.map +1 -0
  315. package/dist/types/refiners/utils/index.d.ts +2 -0
  316. package/dist/types/refiners/utils/index.d.ts.map +1 -0
  317. package/dist/types/shared-types.d.ts +22 -0
  318. package/dist/types/shared-types.d.ts.map +1 -0
  319. package/dist/umd/resultsafe-monorepo-core-fp-result.umd.js +2 -0
  320. package/dist/umd/resultsafe-monorepo-core-fp-result.umd.js.map +1 -0
  321. package/docs/_category_.json +6 -0
  322. package/docs/api/README.md +9 -0
  323. package/docs/api/constructors/Err.md +58 -0
  324. package/docs/api/constructors/Ok.md +58 -0
  325. package/docs/api/constructors/index.md +7 -0
  326. package/docs/api/guards/index.md +9 -0
  327. package/docs/api/guards/isErr.md +58 -0
  328. package/docs/api/guards/isErrAnd.md +64 -0
  329. package/docs/api/guards/isOk.md +58 -0
  330. package/docs/api/guards/isOkAnd.md +64 -0
  331. package/docs/api/index.md +9 -0
  332. package/docs/api/methods/andThen.md +73 -0
  333. package/docs/api/methods/err.md +58 -0
  334. package/docs/api/methods/expect.md +68 -0
  335. package/docs/api/methods/expectErr.md +68 -0
  336. package/docs/api/methods/flatten.md +58 -0
  337. package/docs/api/methods/index.md +24 -0
  338. package/docs/api/methods/inspect.md +64 -0
  339. package/docs/api/methods/inspectErr.md +64 -0
  340. package/docs/api/methods/map.md +70 -0
  341. package/docs/api/methods/mapErr.md +70 -0
  342. package/docs/api/methods/match.md +76 -0
  343. package/docs/api/methods/ok.md +58 -0
  344. package/docs/api/methods/orElse.md +70 -0
  345. package/docs/api/methods/tap.md +64 -0
  346. package/docs/api/methods/tapErr.md +64 -0
  347. package/docs/api/methods/transpose.md +58 -0
  348. package/docs/api/methods/unwrap.md +62 -0
  349. package/docs/api/methods/unwrapErr.md +62 -0
  350. package/docs/api/methods/unwrapOr.md +64 -0
  351. package/docs/api/methods/unwrapOrElse.md +64 -0
  352. package/docs/api/modules.md +10 -0
  353. package/docs/api/refiners/index.md +14 -0
  354. package/docs/api/refiners/isTypedVariant.md +62 -0
  355. package/docs/api/refiners/isTypedVariantOf.md +68 -0
  356. package/docs/api/refiners/matchVariant.md +59 -0
  357. package/docs/api/refiners/matchVariantStrict.md +63 -0
  358. package/docs/api/refiners/refineAsyncResult.md +98 -0
  359. package/docs/api/refiners/refineAsyncResultU.md +86 -0
  360. package/docs/api/refiners/refineResult.md +98 -0
  361. package/docs/api/refiners/refineResultU.md +86 -0
  362. package/docs/api/refiners/refineVariantMap.md +79 -0
  363. package/docs/api/type-aliases/Handler.md +49 -0
  364. package/docs/api/type-aliases/MatchBuilder.md +57 -0
  365. package/docs/api/type-aliases/Matcher.md +71 -0
  366. package/docs/api/type-aliases/SyncRefinedResult.md +31 -0
  367. package/docs/api/type-aliases/SyncRefinedResultUnion.md +21 -0
  368. package/docs/api/type-aliases/SyncValidatorMap.md +17 -0
  369. package/docs/api/type-aliases/UniversalAsyncRefinedResult.md +31 -0
  370. package/docs/api/type-aliases/UniversalRefinedResult.md +31 -0
  371. package/docs/api/type-aliases/VariantOf.md +23 -0
  372. package/docs/api/type-aliases/index.md +14 -0
  373. package/docs/assets/logo.svg +153 -0
  374. package/docs/examples/_category_.json +4 -0
  375. package/docs/examples/auth/_category_.json +4 -0
  376. package/docs/examples/auth/index.md +3 -0
  377. package/docs/examples/auth/token.md +5 -0
  378. package/docs/examples/connection/_category_.json +4 -0
  379. package/docs/examples/connection/connect.md +5 -0
  380. package/docs/examples/connection/index.md +3 -0
  381. package/docs/examples/connection/reconnect.md +5 -0
  382. package/docs/examples/errors/_category_.json +4 -0
  383. package/docs/examples/errors/index.md +3 -0
  384. package/docs/examples/errors/retry.md +5 -0
  385. package/docs/examples/index.md +9 -0
  386. package/docs/examples/streaming/_category_.json +4 -0
  387. package/docs/examples/streaming/index.md +3 -0
  388. package/docs/examples/streaming/text.md +5 -0
  389. package/package.json +70 -0
@@ -0,0 +1,8 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { isOk } from "./isOk.js";
4
+ const isOkAnd = /* @__PURE__ */ __name((result, predicate) => isOk(result) && predicate(result.value), "isOkAnd");
5
+ export {
6
+ isOkAnd
7
+ };
8
+ //# sourceMappingURL=isOkAnd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isOkAnd.js","sources":["../../../src/guards/isOkAnd.ts"],"sourcesContent":["import { type Result } from '../shared-types.js';\n\nimport { isOk } from './isOk.js';\n\n/**\n * Проверяет, что `Result` успешен и удовлетворяет предикату.\n *\n * @typeParam T - Тип успешного значения.\n * @typeParam E - Тип значения ошибки.\n * @param result - `Result` для проверки.\n * @param predicate - Предикат, применяемый к успешному значению.\n * @returns `true` when the value is `Ok` and the predicate returns `true`.\n * @since 0.1.0\n * @see {@link isOk} - Performs the base success check.\n * @example\n * ```ts\n * import { Ok, isOkAnd } from '@resultsafe/core-fp-result';\n *\n * const result = Ok(8);\n * console.log(isOkAnd(result, (value) => value % 2 === 0)); // true\n * ```\n * @public\n */\nexport const isOkAnd = <T, E>(\n result: Result<T, E>,\n predicate: (value: T) => boolean,\n): boolean => isOk(result) && predicate(result.value);\n\r\n\r\n"],"names":[],"mappings":";;;AAuBO,MAAM,UAAU,wBACrB,QACA,cACY,KAAK,MAAM,KAAK,UAAU,OAAO,KAAK,GAH7B;"}
@@ -0,0 +1,71 @@
1
+ import { Err } from "./constructors/Err.js";
2
+ import { Ok } from "./constructors/Ok.js";
3
+ import { isErr } from "./guards/isErr.js";
4
+ import { isErrAnd } from "./guards/isErrAnd.js";
5
+ import { isOk } from "./guards/isOk.js";
6
+ import { isOkAnd } from "./guards/isOkAnd.js";
7
+ import { andThen } from "./methods/andThen.js";
8
+ import { err } from "./methods/err.js";
9
+ import { expect } from "./methods/expect.js";
10
+ import { expectErr } from "./methods/expectErr.js";
11
+ import { flatten } from "./methods/flatten.js";
12
+ import { inspect } from "./methods/inspect.js";
13
+ import { inspectErr } from "./methods/inspectErr.js";
14
+ import { map } from "./methods/map.js";
15
+ import { mapErr } from "./methods/mapErr.js";
16
+ import { match } from "./methods/match.js";
17
+ import { ok } from "./methods/ok.js";
18
+ import { orElse } from "./methods/orElse.js";
19
+ import { tap } from "./methods/tap.js";
20
+ import { tapErr } from "./methods/tapErr.js";
21
+ import { transpose } from "./methods/transpose.js";
22
+ import { unwrap } from "./methods/unwrap.js";
23
+ import { unwrapErr } from "./methods/unwrapErr.js";
24
+ import { unwrapOr } from "./methods/unwrapOr.js";
25
+ import { unwrapOrElse } from "./methods/unwrapOrElse.js";
26
+ import { isTypedVariant } from "./refiners/isTypedVariant.js";
27
+ import { isTypedVariantOf } from "./refiners/isTypedVariantOf.js";
28
+ import { matchVariant } from "./refiners/matchVariant.js";
29
+ import { matchVariantStrict } from "./refiners/matchVariantStrict.js";
30
+ import { refineAsyncResult } from "./refiners/refineAsyncResult.js";
31
+ import { refineAsyncResultU } from "./refiners/refineAsyncResultU.js";
32
+ import { refineResult } from "./refiners/refineResult.js";
33
+ import { refineResultU } from "./refiners/refineResultU.js";
34
+ import { refineVariantMap } from "./refiners/refineVariantMap.js";
35
+ export {
36
+ Err,
37
+ Ok,
38
+ andThen,
39
+ err,
40
+ expect,
41
+ expectErr,
42
+ flatten,
43
+ inspect,
44
+ inspectErr,
45
+ isErr,
46
+ isErrAnd,
47
+ isOk,
48
+ isOkAnd,
49
+ isTypedVariant,
50
+ isTypedVariantOf,
51
+ map,
52
+ mapErr,
53
+ match,
54
+ matchVariant,
55
+ matchVariantStrict,
56
+ ok,
57
+ orElse,
58
+ refineAsyncResult,
59
+ refineAsyncResultU,
60
+ refineResult,
61
+ refineResultU,
62
+ refineVariantMap,
63
+ tap,
64
+ tapErr,
65
+ transpose,
66
+ unwrap,
67
+ unwrapErr,
68
+ unwrapOr,
69
+ unwrapOrElse
70
+ };
71
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,9 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ const hasOwn = /* @__PURE__ */ __name((obj, key) => Object.prototype.hasOwnProperty.call(obj, key), "hasOwn");
4
+ const isObject = /* @__PURE__ */ __name((value) => typeof value === "object" && value !== null, "isObject");
5
+ export {
6
+ hasOwn,
7
+ isObject
8
+ };
9
+ //# sourceMappingURL=object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.js","sources":["../../../src/internal/object.ts"],"sourcesContent":["/** Checks that an object owns a property key. @internal */\nexport const hasOwn = <K extends PropertyKey>(\n obj: Record<string, unknown>,\n key: K,\n): obj is Record<K, unknown> => Object.prototype.hasOwnProperty.call(obj, key);\n\n/** Checks that a value is a non-null object record. @internal */\nexport const isObject = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null;\n"],"names":[],"mappings":";;AACO,MAAM,SAAS,wBACpB,KACA,QAC8B,OAAO,UAAU,eAAe,KAAK,KAAK,GAAG,GAHvD;AAMf,MAAM,WAAW,wBAAC,UACvB,OAAO,UAAU,YAAY,UAAU,MADjB;"}
@@ -0,0 +1,9 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ const None = { some: false };
4
+ const Some = /* @__PURE__ */ __name((value) => ({ some: true, value }), "Some");
5
+ export {
6
+ None,
7
+ Some
8
+ };
9
+ //# sourceMappingURL=option.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"option.js","sources":["../../../src/internal/option.ts"],"sourcesContent":["/** Represents an empty internal option value. @internal */\nexport const None = { some: false } as const;\n\n/** Wraps an internal option value as present. @internal */\nexport const Some = <T>(value: T) => ({ some: true, value }) as const;\n"],"names":[],"mappings":";;AACO,MAAM,OAAO,EAAE,MAAM,MAAA;AAGrB,MAAM,OAAO,wBAAI,WAAc,EAAE,MAAM,MAAM,MAAA,IAAhC;"}
@@ -0,0 +1,8 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { isOk } from "../guards/isOk.js";
4
+ const andThen = /* @__PURE__ */ __name((result, fn) => isOk(result) ? fn(result.value) : result, "andThen");
5
+ export {
6
+ andThen
7
+ };
8
+ //# sourceMappingURL=andThen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"andThen.js","sources":["../../../src/methods/andThen.ts"],"sourcesContent":["import { type Result } from '../shared-types.js';\n\nimport { isOk } from '../guards/isOk.js';\n\n/**\n * Цепляет вычисление, которое возвращает другой `Result`.\n *\n * @typeParam T - The input success type.\n * @typeParam U - The output success type.\n * @typeParam E - Общий тип ошибки.\n * @param result - Исходный `Result`.\n * @param fn - Функция, применяемая, когда `result` имеет `Ok`.\n * @returns Преобразованный `Result` или исходный `Err`.\n * @since 0.1.0\n * @see {@link map} - Преобразует только успешное значение.\n * @example\n * ```ts\n * import { Ok, Err, andThen } from '@resultsafe/core-fp-result';\n *\n * const parsed = andThen(Ok('12'), (value) => {\n * const n = Number(value);\n * return Number.isNaN(n) ? Err('invalid') : Ok(n);\n * });\n * console.log(parsed.ok); // true\n * ```\n * @public\n */\nexport const andThen = <T, U, E>(\n result: Result<T, E>,\n fn: (value: T) => Result<U, E>,\n): Result<U, E> => (isOk(result) ? fn(result.value) : (result as Result<U, E>));\n\r\n\r\n"],"names":[],"mappings":";;;AA2BO,MAAM,UAAU,wBACrB,QACA,OACkB,KAAK,MAAM,IAAI,GAAG,OAAO,KAAK,IAAK,QAHhC;"}
@@ -0,0 +1,9 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { isErr } from "../guards/isErr.js";
4
+ import { Some, None } from "../internal/option.js";
5
+ const err = /* @__PURE__ */ __name((result) => isErr(result) ? Some(result.error) : None, "err");
6
+ export {
7
+ err
8
+ };
9
+ //# sourceMappingURL=err.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"err.js","sources":["../../../src/methods/err.ts"],"sourcesContent":["import { type Option } from '../shared-types.js';\nimport { type Result } from '../shared-types.js';\n\nimport { isErr } from '../guards/isErr.js';\nimport { None, Some } from '../internal/option.js';\n\n/**\n * Извлекает ветку ошибки в виде `Option`.\n *\n * @typeParam T - Тип успешного значения.\n * @typeParam E - Тип значения ошибки.\n * @param result - Исходный `Result`.\n * @returns `Some(error)` для `Err`, иначе `None`.\n * @since 0.1.0\n * @see {@link ok} - Извлекает ветку успеха.\n * @example\n * ```ts\n * import { Err, err } from '@resultsafe/core-fp-result';\n *\n * const value = err(Err('boom'));\n * console.log(value.some); // true\n * ```\n * @public\n */\nexport const err = <T, E>(result: Result<T, E>): Option<E> =>\n isErr(result) ? Some(result.error) : None;\n\r\n\r\n"],"names":[],"mappings":";;;;AAwBO,MAAM,MAAM,wBAAO,WACxB,MAAM,MAAM,IAAI,KAAK,OAAO,KAAK,IAAI,MADpB;"}
@@ -0,0 +1,13 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { isOk } from "../guards/isOk.js";
4
+ const expect = /* @__PURE__ */ __name((result, msg) => {
5
+ if (isOk(result)) {
6
+ return result.value;
7
+ }
8
+ throw new Error(msg);
9
+ }, "expect");
10
+ export {
11
+ expect
12
+ };
13
+ //# sourceMappingURL=expect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expect.js","sources":["../../../src/methods/expect.ts"],"sourcesContent":["import { type Result } from '../shared-types.js';\n\nimport { isOk } from '../guards/isOk.js';\n\n/**\n * Возвращает успешное значение или выбрасывает исключение с пользовательским сообщением.\n *\n * @typeParam T - Тип успешного значения.\n * @typeParam E - Тип значения ошибки.\n * @param result - Исходный `Result`.\n * @param msg - Сообщение об ошибке, используемое когда `result` имеет `Err`.\n * @returns Распакованное успешное значение.\n * @throws Error - Выбрасывает исключение, когда `result` имеет `Err`.\n * @since 0.1.0\n * @see {@link expectErr} - Симметричный helper для ветки ошибки.\n * @example\n * ```ts\n * import { Ok, expect } from '@resultsafe/core-fp-result';\n *\n * const value = expect(Ok(5), 'must be ok');\n * console.log(value); // 5\n * ```\n * @public\n */\nexport const expect = <T, E>(result: Result<T, E>, msg: string): T => {\n if (isOk(result)) {\n return result.value;\n }\n throw new Error(msg);\n};\n\r\n\r\n"],"names":[],"mappings":";;;AAwBO,MAAM,SAAS,wBAAO,QAAsB,QAAmB;AACpE,MAAI,KAAK,MAAM,GAAG;AAChB,WAAO,OAAO;AAAA,EAChB;AACA,QAAM,IAAI,MAAM,GAAG;AACrB,GALsB;"}
@@ -0,0 +1,13 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { isErr } from "../guards/isErr.js";
4
+ const expectErr = /* @__PURE__ */ __name((result, msg) => {
5
+ if (isErr(result)) {
6
+ return result.error;
7
+ }
8
+ throw new Error(msg);
9
+ }, "expectErr");
10
+ export {
11
+ expectErr
12
+ };
13
+ //# sourceMappingURL=expectErr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expectErr.js","sources":["../../../src/methods/expectErr.ts"],"sourcesContent":["import { type Result } from '../shared-types.js';\n\nimport { isErr } from '../guards/isErr.js';\n\n/**\n * Возвращает значение ошибки или выбрасывает исключение с пользовательским сообщением.\n *\n * @typeParam T - Тип успешного значения.\n * @typeParam E - Тип значения ошибки.\n * @param result - Исходный `Result`.\n * @param msg - Сообщение об ошибке, используемое когда `result` имеет `Ok`.\n * @returns Распакованное значение ошибки.\n * @throws Error - Выбрасывает исключение, когда `result` имеет `Ok`.\n * @since 0.1.0\n * @see {@link expect} - Симметричный helper для ветки успеха.\n * @example\n * ```ts\n * import { Err, expectErr } from '@resultsafe/core-fp-result';\n *\n * const error = expectErr(Err('boom'), 'must be err');\n * console.log(error); // boom\n * ```\n * @public\n */\nexport const expectErr = <T, E>(result: Result<T, E>, msg: string): E => {\n if (isErr(result)) {\n return result.error;\n }\n throw new Error(msg);\n};\n\r\n\r\n"],"names":[],"mappings":";;;AAwBO,MAAM,YAAY,wBAAO,QAAsB,QAAmB;AACvE,MAAI,MAAM,MAAM,GAAG;AACjB,WAAO,OAAO;AAAA,EAChB;AACA,QAAM,IAAI,MAAM,GAAG;AACrB,GALyB;"}
@@ -0,0 +1,7 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ const flatten = /* @__PURE__ */ __name((result) => result.ok ? result.value : { ok: false, error: result.error }, "flatten");
4
+ export {
5
+ flatten
6
+ };
7
+ //# sourceMappingURL=flatten.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flatten.js","sources":["../../../src/methods/flatten.ts"],"sourcesContent":["import { type Result } from '../shared-types.js';\n\n/**\n * Схлопывает вложенный `Result<Result<T, E>, E>` на один уровень.\n *\n * @typeParam T - The inner success value type.\n * @typeParam E - The shared error value type.\n * @param result - Вложенный `Result` для схлопывания.\n * @returns A single-layer `Result<T, E>`.\n * @since 0.1.0\n * @see {@link andThen} - Chains computations that already return `Result`.\n * @example\n * ```ts\n * import { Ok, flatten } from '@resultsafe/core-fp-result';\n *\n * const value = flatten(Ok(Ok(3)));\n * console.log(value.ok); // true\n * ```\n * @public\n */\nexport const flatten = <T, E>(result: Result<Result<T, E>, E>): Result<T, E> =>\n result.ok ? result.value : { ok: false, error: result.error };\n\r\n\r\n"],"names":[],"mappings":";;AAoBO,MAAM,UAAU,wBAAO,WAC5B,OAAO,KAAK,OAAO,QAAQ,EAAE,IAAI,OAAO,OAAO,OAAO,MAAA,GADjC;"}
@@ -0,0 +1,13 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { isOk } from "../guards/isOk.js";
4
+ const inspect = /* @__PURE__ */ __name((result, fn) => {
5
+ if (isOk(result)) {
6
+ fn(result.value);
7
+ }
8
+ return result;
9
+ }, "inspect");
10
+ export {
11
+ inspect
12
+ };
13
+ //# sourceMappingURL=inspect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspect.js","sources":["../../../src/methods/inspect.ts"],"sourcesContent":["import { type Result } from '../shared-types.js';\n\nimport { isOk } from '../guards/isOk.js';\n\n/**\n * Выполняет побочный эффект для успешного значения и возвращает исходный `Result`.\n *\n * @typeParam T - Тип успешного значения.\n * @typeParam E - Тип значения ошибки.\n * @param result - Исходный `Result`.\n * @param fn - Функция побочного эффекта для ветки успеха.\n * @returns Тот же экземпляр `Result`.\n * @since 0.1.0\n * @see {@link tap} - Эквивалентный helper для ветки успеха.\n * @example\n * ```ts\n * import { Ok, inspect } from '@resultsafe/core-fp-result';\n *\n * const result = inspect(Ok(1), (value) => console.log(value)); // 1\n * console.log(result.ok); // true\n * ```\n * @public\n */\nexport const inspect = <T, E>(\n result: Result<T, E>,\n fn: (value: T) => void,\n): Result<T, E> => {\n if (isOk(result)) {\n fn(result.value);\n }\n return result;\n};\n\r\n\r\n"],"names":[],"mappings":";;;AAuBO,MAAM,UAAU,wBACrB,QACA,OACiB;AACjB,MAAI,KAAK,MAAM,GAAG;AAChB,OAAG,OAAO,KAAK;AAAA,EACjB;AACA,SAAO;AACT,GARuB;"}
@@ -0,0 +1,13 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { isErr } from "../guards/isErr.js";
4
+ const inspectErr = /* @__PURE__ */ __name((result, fn) => {
5
+ if (isErr(result)) {
6
+ fn(result.error);
7
+ }
8
+ return result;
9
+ }, "inspectErr");
10
+ export {
11
+ inspectErr
12
+ };
13
+ //# sourceMappingURL=inspectErr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspectErr.js","sources":["../../../src/methods/inspectErr.ts"],"sourcesContent":["import { type Result } from '../shared-types.js';\n\nimport { isErr } from '../guards/isErr.js';\n\n/**\n * Выполняет побочный эффект для значения ошибки и возвращает исходный `Result`.\n *\n * @typeParam T - Тип успешного значения.\n * @typeParam E - Тип значения ошибки.\n * @param result - Исходный `Result`.\n * @param fn - Функция побочного эффекта для ветки ошибки.\n * @returns Тот же экземпляр `Result`.\n * @since 0.1.0\n * @see {@link tapErr} - Эквивалентный helper для ветки ошибки.\n * @example\n * ```ts\n * import { Err, inspectErr } from '@resultsafe/core-fp-result';\n *\n * const result = inspectErr(Err('boom'), (error) => console.log(error)); // boom\n * console.log(result.ok); // false\n * ```\n * @public\n */\nexport const inspectErr = <T, E>(\n result: Result<T, E>,\n fn: (error: E) => void,\n): Result<T, E> => {\n if (isErr(result)) {\n fn(result.error);\n }\n return result;\n};\n\r\n\r\n"],"names":[],"mappings":";;;AAuBO,MAAM,aAAa,wBACxB,QACA,OACiB;AACjB,MAAI,MAAM,MAAM,GAAG;AACjB,OAAG,OAAO,KAAK;AAAA,EACjB;AACA,SAAO;AACT,GAR0B;"}
@@ -0,0 +1,8 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { isOk } from "../guards/isOk.js";
4
+ const map = /* @__PURE__ */ __name((result, fn) => isOk(result) ? { ok: true, value: fn(result.value) } : result, "map");
5
+ export {
6
+ map
7
+ };
8
+ //# sourceMappingURL=map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.js","sources":["../../../src/methods/map.ts"],"sourcesContent":["import { type Result } from '../shared-types.js';\n\nimport { isOk } from '../guards/isOk.js';\n\n/**\n * Преобразует успешное значение, сохраняя ветку ошибки.\n *\n * @typeParam T - Тип входного успешного значения.\n * @typeParam U - Тип выходного успешного значения.\n * @typeParam E - Тип значения ошибки.\n * @param result - Исходный `Result`.\n * @param fn - Функция преобразования успешного значения.\n * @returns Преобразованный `Ok` или исходный `Err`.\n * @since 0.1.0\n * @see {@link mapErr} - Преобразует ветку ошибки.\n * @example\n * ```ts\n * import { Ok, map } from '@resultsafe/core-fp-result';\n *\n * const result = map(Ok(2), (value) => value * 10);\n * console.log(result.ok); // true\n * ```\n * @public\n */\nexport const map = <T, U, E>(\n result: Result<T, E>,\n fn: (value: T) => U,\n): Result<U, E> =>\n isOk(result)\n ? { ok: true, value: fn(result.value) }\n : (result as Result<U, E>);\n\r\n\r\n"],"names":[],"mappings":";;;AAwBO,MAAM,MAAM,wBACjB,QACA,OAEA,KAAK,MAAM,IACP,EAAE,IAAI,MAAM,OAAO,GAAG,OAAO,KAAK,MACjC,QANY;"}
@@ -0,0 +1,8 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { isErr } from "../guards/isErr.js";
4
+ const mapErr = /* @__PURE__ */ __name((result, fn) => isErr(result) ? { ok: false, error: fn(result.error) } : result, "mapErr");
5
+ export {
6
+ mapErr
7
+ };
8
+ //# sourceMappingURL=mapErr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapErr.js","sources":["../../../src/methods/mapErr.ts"],"sourcesContent":["import { type Result } from '../shared-types.js';\n\nimport { isErr } from '../guards/isErr.js';\n\n/**\n * Преобразует значение ошибки, сохраняя ветку успеха.\n *\n * @typeParam T - Тип успешного значения.\n * @typeParam E - Тип входного значения ошибки.\n * @typeParam F - Тип выходного значения ошибки.\n * @param result - Исходный `Result`.\n * @param fn - Функция преобразования значения ошибки.\n * @returns Преобразованный `Err` или исходный `Ok`.\n * @since 0.1.0\n * @see {@link map} - Transforms the success branch.\n * @example\n * ```ts\n * import { Err, mapErr } from '@resultsafe/core-fp-result';\n *\n * const result = mapErr(Err('e1'), (error) => `mapped:${error}`);\n * console.log(result.ok); // false\n * ```\n * @public\n */\nexport const mapErr = <T, E, F>(\n result: Result<T, E>,\n fn: (error: E) => F,\n): Result<T, F> =>\n isErr(result)\n ? { ok: false, error: fn(result.error) }\n : (result as Result<T, F>);\n\r\n\r\n"],"names":[],"mappings":";;;AAwBO,MAAM,SAAS,wBACpB,QACA,OAEA,MAAM,MAAM,IACR,EAAE,IAAI,OAAO,OAAO,GAAG,OAAO,KAAK,MAClC,QANe;"}
@@ -0,0 +1,14 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ const match = /* @__PURE__ */ __name((result, okFn, errFn) => {
4
+ if (result.ok) {
5
+ return okFn(result.value);
6
+ } else {
7
+ const { error } = result;
8
+ return errFn(error);
9
+ }
10
+ }, "match");
11
+ export {
12
+ match
13
+ };
14
+ //# sourceMappingURL=match.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match.js","sources":["../../../src/methods/match.ts"],"sourcesContent":["import { type Result } from '../shared-types.js';\n\n/**\n * Выполняет сопоставление `Result` в единое выходное значение.\n *\n * @typeParam T - Тип успешного значения.\n * @typeParam E - Тип значения ошибки.\n * @typeParam U - The output type returned by both handlers.\n * @param result - Исходный `Result`.\n * @param okFn - Обработчик для ветки успеха.\n * @param errFn - Обработчик для ветки ошибки.\n * @returns Выходное значение, полученное от выбранного обработчика.\n * @since 0.1.0\n * @see {@link unwrapOrElse} - Similar shape with default fallback semantics.\n * @example\n * ```ts\n * import { Ok, match } from '@resultsafe/core-fp-result';\n *\n * const value = match(Ok(3), (x) => `ok:${x}`, (e) => `err:${e}`);\n * console.log(value); // ok:3\n * ```\n * @public\n */\nexport const match = <T, E, U>(\n result: Result<T, E>,\n okFn: (value: T) => U,\n errFn: (error: E) => U,\n): U => {\n if (result.ok) {\n return okFn(result.value);\n } else {\n const { error } = result;\n return errFn(error);\n }\n};\n\r\n\r\n"],"names":[],"mappings":";;AAuBO,MAAM,QAAQ,wBACnB,QACA,MACA,UACM;AACN,MAAI,OAAO,IAAI;AACb,WAAO,KAAK,OAAO,KAAK;AAAA,EAC1B,OAAO;AACL,UAAM,EAAE,UAAU;AAClB,WAAO,MAAM,KAAK;AAAA,EACpB;AACF,GAXqB;"}
@@ -0,0 +1,9 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { isOk } from "../guards/isOk.js";
4
+ import { Some, None } from "../internal/option.js";
5
+ const ok = /* @__PURE__ */ __name((result) => isOk(result) ? Some(result.value) : None, "ok");
6
+ export {
7
+ ok
8
+ };
9
+ //# sourceMappingURL=ok.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ok.js","sources":["../../../src/methods/ok.ts"],"sourcesContent":["import { type Option } from '../shared-types.js';\nimport { type Result } from '../shared-types.js';\n\nimport { isOk } from '../guards/isOk.js';\nimport { None, Some } from '../internal/option.js';\n\n/**\n * Извлекает успешную ветку в виде `Option`.\n *\n * @typeParam T - Тип успешного значения.\n * @typeParam E - Тип значения ошибки.\n * @param result - Исходный `Result`.\n * @returns `Some(value)` для `Ok`, иначе `None`.\n * @since 0.1.0\n * @see {@link err} - Извлекает ветку ошибки.\n * @example\n * ```ts\n * import { Ok, ok } from '@resultsafe/core-fp-result';\n *\n * const value = ok(Ok(10));\n * console.log(value.some); // true\n * ```\n * @public\n */\nexport const ok = <T, E>(result: Result<T, E>): Option<T> =>\n isOk(result) ? Some(result.value) : None;\n\r\n\r\n"],"names":[],"mappings":";;;;AAwBO,MAAM,KAAK,wBAAO,WACvB,KAAK,MAAM,IAAI,KAAK,OAAO,KAAK,IAAI,MADpB;"}
@@ -0,0 +1,8 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { isErr } from "../guards/isErr.js";
4
+ const orElse = /* @__PURE__ */ __name((result, fn) => isErr(result) ? fn(result.error) : result, "orElse");
5
+ export {
6
+ orElse
7
+ };
8
+ //# sourceMappingURL=orElse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orElse.js","sources":["../../../src/methods/orElse.ts"],"sourcesContent":["import { type Result } from '../shared-types.js';\n\nimport { isErr } from '../guards/isErr.js';\n\n/**\n * Восстанавливается из ошибки, преобразуя `Err` в другой `Result`.\n *\n * @typeParam T - Тип успешного значения.\n * @typeParam E - Тип входного значения ошибки.\n * @typeParam F - Тип выходного значения ошибки.\n * @param result - Исходный `Result`.\n * @param fn - Функция восстановления, применяемая для `Err`.\n * @returns Восстановленный `Result` или исходный `Ok`.\n * @since 0.1.0\n * @see {@link andThen} - Цепляет ветку успеха.\n * @example\n * ```ts\n * import { Err, Ok, orElse } from '@resultsafe/core-fp-result';\n *\n * const result = orElse(Err('network'), () => Ok('cached'));\n * console.log(result.ok); // true\n * ```\n * @public\n */\nexport const orElse = <T, E, F>(\n result: Result<T, E>,\n fn: (error: E) => Result<T, F>,\n): Result<T, F> =>\n isErr(result) ? fn(result.error) : (result as Result<T, F>);\n\r\n\r\n"],"names":[],"mappings":";;;AAwBO,MAAM,SAAS,wBACpB,QACA,OAEA,MAAM,MAAM,IAAI,GAAG,OAAO,KAAK,IAAK,QAJhB;"}
@@ -0,0 +1,12 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ const tap = /* @__PURE__ */ __name((result, fn) => {
4
+ if (result.ok) {
5
+ fn(result.value);
6
+ }
7
+ return result;
8
+ }, "tap");
9
+ export {
10
+ tap
11
+ };
12
+ //# sourceMappingURL=tap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tap.js","sources":["../../../src/methods/tap.ts"],"sourcesContent":["import type { Result } from '../shared-types.js';\n\n/**\n * Выполняет побочный эффект для значения `Ok` и возвращает входной `Result`.\n *\n * @typeParam T - Тип успешного значения.\n * @typeParam E - Тип значения ошибки.\n * @param result - Исходный `Result`.\n * @param fn - Колбэк побочного эффекта для ветки успеха.\n * @returns Неизмененный `Result`.\n * @since 0.1.0\n * @see {@link tapErr} - Executes a side effect for the error branch.\n * @example\n * ```ts\n * import { Ok, tap } from '@resultsafe/core-fp-result';\n *\n * const result = tap(Ok(1), (value) => console.log(value)); // 1\n * console.log(result.ok); // true\n * ```\n * @public\n */\nexport const tap = <T, E>(\n result: Result<T, E>,\n fn: (value: T) => void,\n): Result<T, E> => {\n if (result.ok) {\n fn(result.value);\n }\n return result;\n};\n\r\n\r\n"],"names":[],"mappings":";;AAqBO,MAAM,MAAM,wBACjB,QACA,OACiB;AACjB,MAAI,OAAO,IAAI;AACb,OAAG,OAAO,KAAK;AAAA,EACjB;AACA,SAAO;AACT,GARmB;"}
@@ -0,0 +1,13 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { isErr } from "../guards/isErr.js";
4
+ const tapErr = /* @__PURE__ */ __name((result, fn) => {
5
+ if (isErr(result)) {
6
+ fn(result.error);
7
+ }
8
+ return result;
9
+ }, "tapErr");
10
+ export {
11
+ tapErr
12
+ };
13
+ //# sourceMappingURL=tapErr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tapErr.js","sources":["../../../src/methods/tapErr.ts"],"sourcesContent":["import { type Result } from '../shared-types.js';\n\nimport { isErr } from '../guards/isErr.js';\n\n/**\n * Выполняет побочный эффект для значения `Err` и возвращает входной `Result`.\n *\n * @typeParam T - Тип успешного значения.\n * @typeParam E - Тип значения ошибки.\n * @param result - Исходный `Result`.\n * @param fn - Колбэк побочного эффекта для ветки ошибки.\n * @returns Неизмененный `Result`.\n * @since 0.1.0\n * @see {@link tap} - Executes a side effect for the success branch.\n * @example\n * ```ts\n * import { Err, tapErr } from '@resultsafe/core-fp-result';\n *\n * const result = tapErr(Err('boom'), (error) => console.log(error)); // boom\n * console.log(result.ok); // false\n * ```\n * @public\n */\nexport const tapErr = <T, E>(\n result: Result<T, E>,\n fn: (error: E) => void,\n): Result<T, E> => {\n if (isErr(result)) {\n fn(result.error);\n }\n return result;\n};\n\r\n\r\n"],"names":[],"mappings":";;;AAuBO,MAAM,SAAS,wBACpB,QACA,OACiB;AACjB,MAAI,MAAM,MAAM,GAAG;AACjB,OAAG,OAAO,KAAK;AAAA,EACjB;AACA,SAAO;AACT,GARsB;"}
@@ -0,0 +1,13 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { Some, None } from "../internal/option.js";
4
+ const transpose = /* @__PURE__ */ __name((result) => {
5
+ if (result.ok) {
6
+ return result.value.some === true ? Some({ ok: true, value: result.value.value }) : None;
7
+ }
8
+ return Some({ ok: false, error: result.error });
9
+ }, "transpose");
10
+ export {
11
+ transpose
12
+ };
13
+ //# sourceMappingURL=transpose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transpose.js","sources":["../../../src/methods/transpose.ts"],"sourcesContent":["import { type Option } from '../shared-types.js';\nimport { type Result } from '../shared-types.js';\n\nimport { None, Some } from '../internal/option.js';\n\n/**\n * Преобразует `Result<Option<T>, E>` в `Option<Result<T, E>>`.\n *\n * @typeParam T - The success value type inside `Option`.\n * @typeParam E - Тип значения ошибки.\n * @param result - Исходный `Result`, содержащий `Option`.\n * @returns Транспонированный `Option<Result<T, E>>`.\n * @since 0.1.0\n * @see {@link flatten} - Collapses nested `Result` values.\n * @example\n * ```ts\n * import { Ok, transpose } from '@resultsafe/core-fp-result';\n *\n * const value = transpose(Ok({ some: true, value: 2 }));\n * console.log(value.some); // true\n * ```\n * @public\n */\nexport const transpose = <T, E>(\n result: Result<Option<T>, E>,\n): Option<Result<T, E>> => {\n if (result.ok) {\n return result.value.some === true\n ? Some({ ok: true, value: result.value.value })\n : None;\n }\n return Some({ ok: false, error: result.error });\n};\n\r\n\r\n"],"names":[],"mappings":";;;AAuBO,MAAM,YAAY,wBACvB,WACyB;AACzB,MAAI,OAAO,IAAI;AACb,WAAO,OAAO,MAAM,SAAS,OACzB,KAAK,EAAE,IAAI,MAAM,OAAO,OAAO,MAAM,MAAA,CAAO,IAC5C;AAAA,EACN;AACA,SAAO,KAAK,EAAE,IAAI,OAAO,OAAO,OAAO,OAAO;AAChD,GATyB;"}
@@ -0,0 +1,13 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { isOk } from "../guards/isOk.js";
4
+ const unwrap = /* @__PURE__ */ __name((result) => {
5
+ if (isOk(result)) {
6
+ return result.value;
7
+ }
8
+ throw new Error("Called unwrap on an Err value");
9
+ }, "unwrap");
10
+ export {
11
+ unwrap
12
+ };
13
+ //# sourceMappingURL=unwrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unwrap.js","sources":["../../../src/methods/unwrap.ts"],"sourcesContent":["import { type Result } from '../shared-types.js';\n\nimport { isOk } from '../guards/isOk.js';\n\n/**\n * Возвращает успешное значение или выбрасывает исключение, если результат `Err`.\n *\n * @typeParam T - Тип успешного значения.\n * @typeParam E - Тип значения ошибки.\n * @param result - Исходный `Result`.\n * @returns Payload успеха.\n * @throws Error - Выбрасывает исключение при вызове на `Err`.\n * @since 0.1.0\n * @see {@link unwrapOr} - Возвращает fallback вместо выброса исключения.\n * @example\n * ```ts\n * import { Ok, unwrap } from '@resultsafe/core-fp-result';\n *\n * const value = unwrap(Ok(9));\n * console.log(value); // 9\n * ```\n * @public\n */\nexport const unwrap = <T, E>(result: Result<T, E>): T => {\n if (isOk(result)) {\n return result.value;\n }\n throw new Error('Called unwrap on an Err value');\n};\n\r\n\r\n"],"names":[],"mappings":";;;AAuBO,MAAM,SAAS,wBAAO,WAA4B;AACvD,MAAI,KAAK,MAAM,GAAG;AAChB,WAAO,OAAO;AAAA,EAChB;AACA,QAAM,IAAI,MAAM,+BAA+B;AACjD,GALsB;"}
@@ -0,0 +1,13 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { isErr } from "../guards/isErr.js";
4
+ const unwrapErr = /* @__PURE__ */ __name((result) => {
5
+ if (isErr(result)) {
6
+ return result.error;
7
+ }
8
+ throw new Error("Called unwrapErr on an Ok value");
9
+ }, "unwrapErr");
10
+ export {
11
+ unwrapErr
12
+ };
13
+ //# sourceMappingURL=unwrapErr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unwrapErr.js","sources":["../../../src/methods/unwrapErr.ts"],"sourcesContent":["import { type Result } from '../shared-types.js';\n\nimport { isErr } from '../guards/isErr.js';\n\n/**\n * Возвращает значение ошибки или выбрасывает исключение, если результат `Ok`.\n *\n * @typeParam T - Тип успешного значения.\n * @typeParam E - Тип значения ошибки.\n * @param result - Исходный `Result`.\n * @returns Payload ошибки.\n * @throws Error - Выбрасывает исключение при вызове на `Ok`.\n * @since 0.1.0\n * @see {@link unwrapOrElse} - Возвращает fallback успеха без выброса исключения.\n * @example\n * ```ts\n * import { Err, unwrapErr } from '@resultsafe/core-fp-result';\n *\n * const error = unwrapErr(Err('boom'));\n * console.log(error); // boom\n * ```\n * @public\n */\nexport const unwrapErr = <T, E>(result: Result<T, E>): E => {\n if (isErr(result)) {\n return result.error;\n }\n throw new Error('Called unwrapErr on an Ok value');\n};\n\r\n\r\n"],"names":[],"mappings":";;;AAuBO,MAAM,YAAY,wBAAO,WAA4B;AAC1D,MAAI,MAAM,MAAM,GAAG;AACjB,WAAO,OAAO;AAAA,EAChB;AACA,QAAM,IAAI,MAAM,iCAAiC;AACnD,GALyB;"}
@@ -0,0 +1,8 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { isOk } from "../guards/isOk.js";
4
+ const unwrapOr = /* @__PURE__ */ __name((result, defaultValue) => isOk(result) ? result.value : defaultValue, "unwrapOr");
5
+ export {
6
+ unwrapOr
7
+ };
8
+ //# sourceMappingURL=unwrapOr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unwrapOr.js","sources":["../../../src/methods/unwrapOr.ts"],"sourcesContent":["import { type Result } from '../shared-types.js';\n\nimport { isOk } from '../guards/isOk.js';\n\n/**\n * Возвращает успешное значение или переданный fallback по умолчанию.\n *\n * @typeParam T - Тип успешного значения.\n * @typeParam E - Тип значения ошибки.\n * @param result - Исходный `Result`.\n * @param defaultValue - Fallback-значение для `Err`.\n * @returns Payload успеха или `defaultValue`.\n * @since 0.1.0\n * @see {@link unwrapOrElse} - Вычисляет fallback лениво.\n * @example\n * ```ts\n * import { Err, unwrapOr } from '@resultsafe/core-fp-result';\n *\n * const value = unwrapOr(Err('boom'), 0);\n * console.log(value); // 0\n * ```\n * @public\n */\nexport const unwrapOr = <T, E>(result: Result<T, E>, defaultValue: T): T =>\n isOk(result) ? result.value : defaultValue;\n\r\n\r\n"],"names":[],"mappings":";;;AAuBO,MAAM,WAAW,wBAAO,QAAsB,iBACnD,KAAK,MAAM,IAAI,OAAO,QAAQ,cADR;"}
@@ -0,0 +1,13 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ const unwrapOrElse = /* @__PURE__ */ __name((result, fn) => {
4
+ if (result.ok) {
5
+ return result.value;
6
+ } else {
7
+ return fn(result.error);
8
+ }
9
+ }, "unwrapOrElse");
10
+ export {
11
+ unwrapOrElse
12
+ };
13
+ //# sourceMappingURL=unwrapOrElse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unwrapOrElse.js","sources":["../../../src/methods/unwrapOrElse.ts"],"sourcesContent":["import { type Result } from '../shared-types.js';\n\n/**\n * Возвращает успешное значение или вычисляет fallback из ошибки.\n *\n * @typeParam T - Тип успешного значения.\n * @typeParam E - Тип значения ошибки.\n * @param result - Исходный `Result`.\n * @param fn - Функция-поставщик fallback для `Err`.\n * @returns Payload успеха или вычисленный fallback.\n * @since 0.1.0\n * @see {@link unwrapOr} - Использует eager fallback-значение.\n * @example\n * ```ts\n * import { Err, unwrapOrElse } from '@resultsafe/core-fp-result';\n *\n * const value = unwrapOrElse(Err('fatal'), (error) => error.length);\n * console.log(value); // 5\n * ```\n * @public\n */\nexport const unwrapOrElse = <T, E>(\n result: Result<T, E>,\n fn: (error: E) => T,\n): T => {\n if (result.ok) {\n return result.value;\n } else {\n return fn(result.error);\n }\n};\n\r\n\r\n"],"names":[],"mappings":";;AAqBO,MAAM,eAAe,wBAC1B,QACA,OACM;AACN,MAAI,OAAO,IAAI;AACb,WAAO,OAAO;AAAA,EAChB,OAAO;AACL,WAAO,GAAG,OAAO,KAAK;AAAA,EACxB;AACF,GAT4B;"}
@@ -0,0 +1,12 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ const isTypedVariant = /* @__PURE__ */ __name((variant) => (value) => {
4
+ if (typeof value !== "object" || value === null) return false;
5
+ if (!("type" in value)) return false;
6
+ const obj = value;
7
+ return obj["type"] === variant;
8
+ }, "isTypedVariant");
9
+ export {
10
+ isTypedVariant
11
+ };
12
+ //# sourceMappingURL=isTypedVariant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isTypedVariant.js","sources":["../../../src/refiners/isTypedVariant.ts"],"sourcesContent":["/**\n * Создает runtime type guard для варианта дискриминированного объединения.\n *\n * @typeParam K - The discriminant literal type.\n * @param variant - Значение дискриминанта для сопоставления.\n * @returns A predicate that checks `{ type: K }` shape.\n * @since 0.1.0\n * @see {@link isTypedVariantOf} - Расширяет проверку ключами payload.\n * @example\n * ```ts\n * import { isTypedVariant } from '@resultsafe/core-fp-result';\n *\n * const isCreated = isTypedVariant('created');\n * console.log(isCreated({ type: 'created' })); // true\n * ```\n * @public\n */\nexport const isTypedVariant =\n <K extends string>(variant: K) =>\n (value: unknown): value is { type: K } => {\n if (typeof value !== 'object' || value === null) return false;\n if (!('type' in value)) return false;\n\n const obj = value as Record<string, unknown>;\n return obj['type'] === variant;\n };\n"],"names":[],"mappings":";;AAiBO,MAAM,iBACX,wBAAmB,YACnB,CAAC,UAAyC;AACxC,MAAI,OAAO,UAAU,YAAY,UAAU,KAAM,QAAO;AACxD,MAAI,EAAE,UAAU,OAAQ,QAAO;AAE/B,QAAM,MAAM;AACZ,SAAO,IAAI,MAAM,MAAM;AACzB,GAPA;"}
@@ -0,0 +1,17 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ const isTypedVariantOf = /* @__PURE__ */ __name((variant) => (value) => {
4
+ if (typeof value !== "object" || value === null) return false;
5
+ if (!("type" in value)) return false;
6
+ const obj = value;
7
+ if (obj["type"] !== variant) return false;
8
+ const requiredKeys = Object.keys({});
9
+ for (const key of requiredKeys) {
10
+ if (!(key in obj)) return false;
11
+ }
12
+ return true;
13
+ }, "isTypedVariantOf");
14
+ export {
15
+ isTypedVariantOf
16
+ };
17
+ //# sourceMappingURL=isTypedVariantOf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isTypedVariantOf.js","sources":["../../../src/refiners/isTypedVariantOf.ts"],"sourcesContent":["/**\n * Создает runtime type guard для варианта с дополнительными ключами payload.\n *\n * @typeParam K - The discriminant literal type.\n * @typeParam T - The required payload record shape.\n * @param variant - Значение дискриминанта для сопоставления.\n * @returns A predicate that checks variant and payload key presence.\n * @since 0.1.0\n * @see {@link isTypedVariant} - Проверяет только дискриминант.\n * @example\n * ```ts\n * import { isTypedVariantOf } from '@resultsafe/core-fp-result';\n *\n * const isCreated = isTypedVariantOf<'created', { id: unknown }>('created');\n * console.log(isCreated({ type: 'created', id: 1 })); // true\n * ```\n * @public\n */\nexport const isTypedVariantOf =\n <K extends string, T extends Record<string, unknown>>(variant: K) =>\n (value: unknown): value is { type: K } & T => {\n // Rust-style early returns with Option-like behavior\n if (typeof value !== 'object' || value === null) return false;\n if (!('type' in value)) return false;\n\n const obj = value as Record<string, unknown>;\n if (obj['type'] !== variant) return false;\n\n // Type-safe key checking (like Rust's HashMap.contains_key)\n const requiredKeys = Object.keys({} as T) as Array<keyof T>;\n for (const key of requiredKeys) {\n if (!(key in obj)) return false;\n }\n\n return true;\n };\n"],"names":[],"mappings":";;AAkBO,MAAM,mBACX,wBAAsD,YACtD,CAAC,UAA6C;AAE5C,MAAI,OAAO,UAAU,YAAY,UAAU,KAAM,QAAO;AACxD,MAAI,EAAE,UAAU,OAAQ,QAAO;AAE/B,QAAM,MAAM;AACZ,MAAI,IAAI,MAAM,MAAM,QAAS,QAAO;AAGpC,QAAM,eAAe,OAAO,KAAK,EAAO;AACxC,aAAW,OAAO,cAAc;AAC9B,QAAI,EAAE,OAAO,KAAM,QAAO;AAAA,EAC5B;AAEA,SAAO;AACT,GAhBA;"}
@@ -0,0 +1,60 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ const matchVariant = /* @__PURE__ */ __name((value) => {
4
+ const handlers = [];
5
+ const withHandler = /* @__PURE__ */ __name((variant, fn) => {
6
+ const newHandlers = [...handlers, { variant, fn }];
7
+ return {
8
+ with: /* @__PURE__ */ __name((variant2, fn2) => {
9
+ const newerHandlers = [
10
+ ...newHandlers,
11
+ { variant: variant2, fn: fn2 }
12
+ ];
13
+ return {
14
+ with: withHandler,
15
+ otherwise: /* @__PURE__ */ __name((fallback) => ({
16
+ run: /* @__PURE__ */ __name(() => {
17
+ for (const h of newerHandlers) {
18
+ if (value.type === h.variant) {
19
+ const fn3 = h.fn;
20
+ return fn3(value);
21
+ }
22
+ }
23
+ return fallback(value);
24
+ }, "run")
25
+ }), "otherwise")
26
+ };
27
+ }, "with"),
28
+ otherwise: /* @__PURE__ */ __name((fallback) => ({
29
+ run: /* @__PURE__ */ __name(() => {
30
+ for (const h of newHandlers) {
31
+ if (value.type === h.variant) {
32
+ const fn2 = h.fn;
33
+ return fn2(value);
34
+ }
35
+ }
36
+ return fallback(value);
37
+ }, "run")
38
+ }), "otherwise")
39
+ };
40
+ }, "withHandler");
41
+ const matcher = {
42
+ with: withHandler,
43
+ otherwise: /* @__PURE__ */ __name((fallback) => ({
44
+ run: /* @__PURE__ */ __name(() => {
45
+ for (const h of handlers) {
46
+ if (value.type === h.variant) {
47
+ const fn = h.fn;
48
+ return fn(value);
49
+ }
50
+ }
51
+ return fallback(value);
52
+ }, "run")
53
+ }), "otherwise")
54
+ };
55
+ return matcher;
56
+ }, "matchVariant");
57
+ export {
58
+ matchVariant
59
+ };
60
+ //# sourceMappingURL=matchVariant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matchVariant.js","sources":["../../../src/refiners/matchVariant.ts"],"sourcesContent":["import type { Handler, Matcher, VariantOf } from './types/index.js';\n\n/**\n * Создает цепочный matcher для значения дискриминированного объединения.\n *\n * @typeParam T - Тип дискриминированного объединения.\n * @param value - Значение объединения для сопоставления.\n * @returns Fluent matcher с ветками `with` и `otherwise`.\n * @since 0.1.0\n * @see {@link matchVariantStrict} - Требует исчерпывающего сопоставления во время выполнения.\n * @example\n * ```ts\n * import { matchVariant } from '@resultsafe/core-fp-result';\n *\n * const out = matchVariant<{ type: 'ok'; value: number } | { type: 'err'; error: string }>({\n * type: 'ok',\n * value: 1,\n * })\n * .with('ok', (v) => `ok:${v.value}`)\n * .otherwise(() => 'fallback')\n * .run();\n *\n * console.log(out); // ok:1\n * ```\n * @public\n */\nexport const matchVariant = <T extends VariantOf>(\n value: T,\n): Matcher<T, unknown> => {\n const handlers: readonly Handler<T['type'], T, unknown>[] = [];\n\n const withHandler = <K extends T['type']>(\n variant: K,\n fn: (value: Extract<T, { type: K }>) => unknown,\n ): Matcher<T, unknown> => {\n const newHandlers = [...handlers, { variant, fn }] as const;\n\n return {\n with: <K2 extends T['type']>(\n variant2: K2,\n fn2: (value: Extract<T, { type: K2 }>) => unknown,\n ): Matcher<T, unknown> => {\n const newerHandlers = [\n ...newHandlers,\n { variant: variant2, fn: fn2 },\n ] as const;\n\n return {\n with: withHandler,\n otherwise: (fallback: (value: T) => unknown) => ({\n run: (): unknown => {\n for (const h of newerHandlers) {\n if (value.type === h.variant) {\n const fn = h.fn as (input: T) => unknown;\n return fn(value);\n }\n }\n return fallback(value);\n },\n }),\n } as Matcher<T, unknown>;\n },\n otherwise: (fallback: (value: T) => unknown) => ({\n run: (): unknown => {\n for (const h of newHandlers) {\n if (value.type === h.variant) {\n const fn = h.fn as (input: T) => unknown;\n return fn(value);\n }\n }\n return fallback(value);\n },\n }),\n } as Matcher<T, unknown>;\n };\n\n const matcher: Matcher<T, unknown> = {\n with: withHandler,\n otherwise: (fallback: (value: T) => unknown) => ({\n run: (): unknown => {\n /* v8 ignore start -- unreachable with current immutable root handler list */\n for (const h of handlers) {\n if (value.type === h.variant) {\n const fn = h.fn as (input: T) => unknown;\n return fn(value);\n }\n }\n /* v8 ignore stop */\n return fallback(value);\n },\n }),\n };\n\n return matcher;\n};\n"],"names":["fn"],"mappings":";;AA0BO,MAAM,eAAe,wBAC1B,UACwB;AACxB,QAAM,WAAsD,CAAA;AAE5D,QAAM,cAAc,wBAClB,SACA,OACwB;AACxB,UAAM,cAAc,CAAC,GAAG,UAAU,EAAE,SAAS,IAAI;AAEjD,WAAO;AAAA,MACL,MAAM,wBACJ,UACA,QACwB;AACxB,cAAM,gBAAgB;AAAA,UACpB,GAAG;AAAA,UACH,EAAE,SAAS,UAAU,IAAI,IAAA;AAAA,QAAI;AAG/B,eAAO;AAAA,UACL,MAAM;AAAA,UACN,WAAW,wBAAC,cAAqC;AAAA,YAC/C,KAAK,6BAAe;AAClB,yBAAW,KAAK,eAAe;AAC7B,oBAAI,MAAM,SAAS,EAAE,SAAS;AAC5B,wBAAMA,MAAK,EAAE;AACb,yBAAOA,IAAG,KAAK;AAAA,gBACjB;AAAA,cACF;AACA,qBAAO,SAAS,KAAK;AAAA,YACvB,GARK;AAAA,UAQL,IATS;AAAA,QAUX;AAAA,MAEJ,GAvBM;AAAA,MAwBN,WAAW,wBAAC,cAAqC;AAAA,QAC/C,KAAK,6BAAe;AAClB,qBAAW,KAAK,aAAa;AAC3B,gBAAI,MAAM,SAAS,EAAE,SAAS;AAC5B,oBAAMA,MAAK,EAAE;AACb,qBAAOA,IAAG,KAAK;AAAA,YACjB;AAAA,UACF;AACA,iBAAO,SAAS,KAAK;AAAA,QACvB,GARK;AAAA,MAQL,IATS;AAAA,IAUX;AAAA,EAEJ,GA3CoB;AA6CpB,QAAM,UAA+B;AAAA,IACnC,MAAM;AAAA,IACN,WAAW,wBAAC,cAAqC;AAAA,MAC/C,KAAK,6BAAe;AAElB,mBAAW,KAAK,UAAU;AACxB,cAAI,MAAM,SAAS,EAAE,SAAS;AAC5B,kBAAM,KAAK,EAAE;AACb,mBAAO,GAAG,KAAK;AAAA,UACjB;AAAA,QACF;AAEA,eAAO,SAAS,KAAK;AAAA,MACvB,GAVK;AAAA,IAUL,IAXS;AAAA,EAYX;AAGF,SAAO;AACT,GApE4B;"}