@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.
- package/LICENSE +21 -0
- package/README.md +273 -0
- package/README.ru.md +266 -0
- package/dist/LICENSE +21 -0
- package/dist/README.md +273 -0
- package/dist/cjs/constructors/Err.js +4 -0
- package/dist/cjs/constructors/Err.js.map +1 -0
- package/dist/cjs/constructors/Ok.js +4 -0
- package/dist/cjs/constructors/Ok.js.map +1 -0
- package/dist/cjs/guards/isErr.js +4 -0
- package/dist/cjs/guards/isErr.js.map +1 -0
- package/dist/cjs/guards/isErrAnd.js +5 -0
- package/dist/cjs/guards/isErrAnd.js.map +1 -0
- package/dist/cjs/guards/isOk.js +4 -0
- package/dist/cjs/guards/isOk.js.map +1 -0
- package/dist/cjs/guards/isOkAnd.js +5 -0
- package/dist/cjs/guards/isOkAnd.js.map +1 -0
- package/dist/cjs/index.js +70 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/internal/object.js +6 -0
- package/dist/cjs/internal/object.js.map +1 -0
- package/dist/cjs/internal/option.js +6 -0
- package/dist/cjs/internal/option.js.map +1 -0
- package/dist/cjs/methods/andThen.js +5 -0
- package/dist/cjs/methods/andThen.js.map +1 -0
- package/dist/cjs/methods/err.js +6 -0
- package/dist/cjs/methods/err.js.map +1 -0
- package/dist/cjs/methods/expect.js +10 -0
- package/dist/cjs/methods/expect.js.map +1 -0
- package/dist/cjs/methods/expectErr.js +10 -0
- package/dist/cjs/methods/expectErr.js.map +1 -0
- package/dist/cjs/methods/flatten.js +4 -0
- package/dist/cjs/methods/flatten.js.map +1 -0
- package/dist/cjs/methods/inspect.js +10 -0
- package/dist/cjs/methods/inspect.js.map +1 -0
- package/dist/cjs/methods/inspectErr.js +10 -0
- package/dist/cjs/methods/inspectErr.js.map +1 -0
- package/dist/cjs/methods/map.js +5 -0
- package/dist/cjs/methods/map.js.map +1 -0
- package/dist/cjs/methods/mapErr.js +5 -0
- package/dist/cjs/methods/mapErr.js.map +1 -0
- package/dist/cjs/methods/match.js +11 -0
- package/dist/cjs/methods/match.js.map +1 -0
- package/dist/cjs/methods/ok.js +6 -0
- package/dist/cjs/methods/ok.js.map +1 -0
- package/dist/cjs/methods/orElse.js +5 -0
- package/dist/cjs/methods/orElse.js.map +1 -0
- package/dist/cjs/methods/tap.js +9 -0
- package/dist/cjs/methods/tap.js.map +1 -0
- package/dist/cjs/methods/tapErr.js +10 -0
- package/dist/cjs/methods/tapErr.js.map +1 -0
- package/dist/cjs/methods/transpose.js +10 -0
- package/dist/cjs/methods/transpose.js.map +1 -0
- package/dist/cjs/methods/unwrap.js +10 -0
- package/dist/cjs/methods/unwrap.js.map +1 -0
- package/dist/cjs/methods/unwrapErr.js +10 -0
- package/dist/cjs/methods/unwrapErr.js.map +1 -0
- package/dist/cjs/methods/unwrapOr.js +5 -0
- package/dist/cjs/methods/unwrapOr.js.map +1 -0
- package/dist/cjs/methods/unwrapOrElse.js +10 -0
- package/dist/cjs/methods/unwrapOrElse.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/refiners/isTypedVariant.js +9 -0
- package/dist/cjs/refiners/isTypedVariant.js.map +1 -0
- package/dist/cjs/refiners/isTypedVariantOf.js +14 -0
- package/dist/cjs/refiners/isTypedVariantOf.js.map +1 -0
- package/dist/cjs/refiners/matchVariant.js +57 -0
- package/dist/cjs/refiners/matchVariant.js.map +1 -0
- package/dist/cjs/refiners/matchVariantStrict.js +37 -0
- package/dist/cjs/refiners/matchVariantStrict.js.map +1 -0
- package/dist/cjs/refiners/refineAsyncResult.js +26 -0
- package/dist/cjs/refiners/refineAsyncResult.js.map +1 -0
- package/dist/cjs/refiners/refineAsyncResultU.js +28 -0
- package/dist/cjs/refiners/refineAsyncResultU.js.map +1 -0
- package/dist/cjs/refiners/refineResult.js +21 -0
- package/dist/cjs/refiners/refineResult.js.map +1 -0
- package/dist/cjs/refiners/refineResultU.js +5 -0
- package/dist/cjs/refiners/refineResultU.js.map +1 -0
- package/dist/cjs/refiners/refineVariantMap.js +25 -0
- package/dist/cjs/refiners/refineVariantMap.js.map +1 -0
- package/dist/cjs/refiners/utils/getPayloadKeys.js +8 -0
- package/dist/cjs/refiners/utils/getPayloadKeys.js.map +1 -0
- package/dist/docs/api/README.md +9 -0
- package/dist/docs/api/constructors/Err.md +58 -0
- package/dist/docs/api/constructors/Ok.md +58 -0
- package/dist/docs/api/constructors/index.md +7 -0
- package/dist/docs/api/guards/index.md +9 -0
- package/dist/docs/api/guards/isErr.md +58 -0
- package/dist/docs/api/guards/isErrAnd.md +64 -0
- package/dist/docs/api/guards/isOk.md +58 -0
- package/dist/docs/api/guards/isOkAnd.md +64 -0
- package/dist/docs/api/index.md +9 -0
- package/dist/docs/api/methods/andThen.md +73 -0
- package/dist/docs/api/methods/err.md +58 -0
- package/dist/docs/api/methods/expect.md +68 -0
- package/dist/docs/api/methods/expectErr.md +68 -0
- package/dist/docs/api/methods/flatten.md +58 -0
- package/dist/docs/api/methods/index.md +24 -0
- package/dist/docs/api/methods/inspect.md +64 -0
- package/dist/docs/api/methods/inspectErr.md +64 -0
- package/dist/docs/api/methods/map.md +70 -0
- package/dist/docs/api/methods/mapErr.md +70 -0
- package/dist/docs/api/methods/match.md +76 -0
- package/dist/docs/api/methods/ok.md +58 -0
- package/dist/docs/api/methods/orElse.md +70 -0
- package/dist/docs/api/methods/tap.md +64 -0
- package/dist/docs/api/methods/tapErr.md +64 -0
- package/dist/docs/api/methods/transpose.md +58 -0
- package/dist/docs/api/methods/unwrap.md +62 -0
- package/dist/docs/api/methods/unwrapErr.md +62 -0
- package/dist/docs/api/methods/unwrapOr.md +64 -0
- package/dist/docs/api/methods/unwrapOrElse.md +64 -0
- package/dist/docs/api/modules.md +10 -0
- package/dist/docs/api/refiners/index.md +14 -0
- package/dist/docs/api/refiners/isTypedVariant.md +62 -0
- package/dist/docs/api/refiners/isTypedVariantOf.md +68 -0
- package/dist/docs/api/refiners/matchVariant.md +59 -0
- package/dist/docs/api/refiners/matchVariantStrict.md +63 -0
- package/dist/docs/api/refiners/refineAsyncResult.md +98 -0
- package/dist/docs/api/refiners/refineAsyncResultU.md +86 -0
- package/dist/docs/api/refiners/refineResult.md +98 -0
- package/dist/docs/api/refiners/refineResultU.md +86 -0
- package/dist/docs/api/refiners/refineVariantMap.md +79 -0
- package/dist/docs/api/type-aliases/Handler.md +49 -0
- package/dist/docs/api/type-aliases/MatchBuilder.md +57 -0
- package/dist/docs/api/type-aliases/Matcher.md +71 -0
- package/dist/docs/api/type-aliases/SyncRefinedResult.md +31 -0
- package/dist/docs/api/type-aliases/SyncRefinedResultUnion.md +21 -0
- package/dist/docs/api/type-aliases/SyncValidatorMap.md +17 -0
- package/dist/docs/api/type-aliases/UniversalAsyncRefinedResult.md +31 -0
- package/dist/docs/api/type-aliases/UniversalRefinedResult.md +31 -0
- package/dist/docs/api/type-aliases/VariantOf.md +23 -0
- package/dist/docs/api/type-aliases/index.md +14 -0
- package/dist/esm/constructors/Err.js +7 -0
- package/dist/esm/constructors/Err.js.map +1 -0
- package/dist/esm/constructors/Ok.js +7 -0
- package/dist/esm/constructors/Ok.js.map +1 -0
- package/dist/esm/guards/isErr.js +7 -0
- package/dist/esm/guards/isErr.js.map +1 -0
- package/dist/esm/guards/isErrAnd.js +8 -0
- package/dist/esm/guards/isErrAnd.js.map +1 -0
- package/dist/esm/guards/isOk.js +7 -0
- package/dist/esm/guards/isOk.js.map +1 -0
- package/dist/esm/guards/isOkAnd.js +8 -0
- package/dist/esm/guards/isOkAnd.js.map +1 -0
- package/dist/esm/index.js +71 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal/object.js +9 -0
- package/dist/esm/internal/object.js.map +1 -0
- package/dist/esm/internal/option.js +9 -0
- package/dist/esm/internal/option.js.map +1 -0
- package/dist/esm/methods/andThen.js +8 -0
- package/dist/esm/methods/andThen.js.map +1 -0
- package/dist/esm/methods/err.js +9 -0
- package/dist/esm/methods/err.js.map +1 -0
- package/dist/esm/methods/expect.js +13 -0
- package/dist/esm/methods/expect.js.map +1 -0
- package/dist/esm/methods/expectErr.js +13 -0
- package/dist/esm/methods/expectErr.js.map +1 -0
- package/dist/esm/methods/flatten.js +7 -0
- package/dist/esm/methods/flatten.js.map +1 -0
- package/dist/esm/methods/inspect.js +13 -0
- package/dist/esm/methods/inspect.js.map +1 -0
- package/dist/esm/methods/inspectErr.js +13 -0
- package/dist/esm/methods/inspectErr.js.map +1 -0
- package/dist/esm/methods/map.js +8 -0
- package/dist/esm/methods/map.js.map +1 -0
- package/dist/esm/methods/mapErr.js +8 -0
- package/dist/esm/methods/mapErr.js.map +1 -0
- package/dist/esm/methods/match.js +14 -0
- package/dist/esm/methods/match.js.map +1 -0
- package/dist/esm/methods/ok.js +9 -0
- package/dist/esm/methods/ok.js.map +1 -0
- package/dist/esm/methods/orElse.js +8 -0
- package/dist/esm/methods/orElse.js.map +1 -0
- package/dist/esm/methods/tap.js +12 -0
- package/dist/esm/methods/tap.js.map +1 -0
- package/dist/esm/methods/tapErr.js +13 -0
- package/dist/esm/methods/tapErr.js.map +1 -0
- package/dist/esm/methods/transpose.js +13 -0
- package/dist/esm/methods/transpose.js.map +1 -0
- package/dist/esm/methods/unwrap.js +13 -0
- package/dist/esm/methods/unwrap.js.map +1 -0
- package/dist/esm/methods/unwrapErr.js +13 -0
- package/dist/esm/methods/unwrapErr.js.map +1 -0
- package/dist/esm/methods/unwrapOr.js +8 -0
- package/dist/esm/methods/unwrapOr.js.map +1 -0
- package/dist/esm/methods/unwrapOrElse.js +13 -0
- package/dist/esm/methods/unwrapOrElse.js.map +1 -0
- package/dist/esm/refiners/isTypedVariant.js +12 -0
- package/dist/esm/refiners/isTypedVariant.js.map +1 -0
- package/dist/esm/refiners/isTypedVariantOf.js +17 -0
- package/dist/esm/refiners/isTypedVariantOf.js.map +1 -0
- package/dist/esm/refiners/matchVariant.js +60 -0
- package/dist/esm/refiners/matchVariant.js.map +1 -0
- package/dist/esm/refiners/matchVariantStrict.js +40 -0
- package/dist/esm/refiners/matchVariantStrict.js.map +1 -0
- package/dist/esm/refiners/refineAsyncResult.js +29 -0
- package/dist/esm/refiners/refineAsyncResult.js.map +1 -0
- package/dist/esm/refiners/refineAsyncResultU.js +31 -0
- package/dist/esm/refiners/refineAsyncResultU.js.map +1 -0
- package/dist/esm/refiners/refineResult.js +24 -0
- package/dist/esm/refiners/refineResult.js.map +1 -0
- package/dist/esm/refiners/refineResultU.js +8 -0
- package/dist/esm/refiners/refineResultU.js.map +1 -0
- package/dist/esm/refiners/refineVariantMap.js +29 -0
- package/dist/esm/refiners/refineVariantMap.js.map +1 -0
- package/dist/esm/refiners/utils/getPayloadKeys.js +11 -0
- package/dist/esm/refiners/utils/getPayloadKeys.js.map +1 -0
- package/dist/package.json +36 -0
- package/dist/types/constructors/Err.d.ts +21 -0
- package/dist/types/constructors/Err.d.ts.map +1 -0
- package/dist/types/constructors/Ok.d.ts +21 -0
- package/dist/types/constructors/Ok.d.ts.map +1 -0
- package/dist/types/constructors/index.d.ts +3 -0
- package/dist/types/constructors/index.d.ts.map +1 -0
- package/dist/types/guards/index.d.ts +5 -0
- package/dist/types/guards/index.d.ts.map +1 -0
- package/dist/types/guards/isErr.d.ts +24 -0
- package/dist/types/guards/isErr.d.ts.map +1 -0
- package/dist/types/guards/isErrAnd.d.ts +22 -0
- package/dist/types/guards/isErrAnd.d.ts.map +1 -0
- package/dist/types/guards/isOk.d.ts +24 -0
- package/dist/types/guards/isOk.d.ts.map +1 -0
- package/dist/types/guards/isOkAnd.d.ts +22 -0
- package/dist/types/guards/isOkAnd.d.ts.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/internal/object.d.ts +5 -0
- package/dist/types/internal/object.d.ts.map +1 -0
- package/dist/types/internal/option.d.ts +10 -0
- package/dist/types/internal/option.d.ts.map +1 -0
- package/dist/types/methods/andThen.d.ts +26 -0
- package/dist/types/methods/andThen.d.ts.map +1 -0
- package/dist/types/methods/err.d.ts +22 -0
- package/dist/types/methods/err.d.ts.map +1 -0
- package/dist/types/methods/expect.d.ts +23 -0
- package/dist/types/methods/expect.d.ts.map +1 -0
- package/dist/types/methods/expectErr.d.ts +23 -0
- package/dist/types/methods/expectErr.d.ts.map +1 -0
- package/dist/types/methods/flatten.d.ts +21 -0
- package/dist/types/methods/flatten.d.ts.map +1 -0
- package/dist/types/methods/index.d.ts +20 -0
- package/dist/types/methods/index.d.ts.map +1 -0
- package/dist/types/methods/inspect.d.ts +22 -0
- package/dist/types/methods/inspect.d.ts.map +1 -0
- package/dist/types/methods/inspectErr.d.ts +22 -0
- package/dist/types/methods/inspectErr.d.ts.map +1 -0
- package/dist/types/methods/map.d.ts +23 -0
- package/dist/types/methods/map.d.ts.map +1 -0
- package/dist/types/methods/mapErr.d.ts +23 -0
- package/dist/types/methods/mapErr.d.ts.map +1 -0
- package/dist/types/methods/match.d.ts +24 -0
- package/dist/types/methods/match.d.ts.map +1 -0
- package/dist/types/methods/ok.d.ts +22 -0
- package/dist/types/methods/ok.d.ts.map +1 -0
- package/dist/types/methods/orElse.d.ts +23 -0
- package/dist/types/methods/orElse.d.ts.map +1 -0
- package/dist/types/methods/tap.d.ts +22 -0
- package/dist/types/methods/tap.d.ts.map +1 -0
- package/dist/types/methods/tapErr.d.ts +22 -0
- package/dist/types/methods/tapErr.d.ts.map +1 -0
- package/dist/types/methods/transpose.d.ts +22 -0
- package/dist/types/methods/transpose.d.ts.map +1 -0
- package/dist/types/methods/unwrap.d.ts +22 -0
- package/dist/types/methods/unwrap.d.ts.map +1 -0
- package/dist/types/methods/unwrapErr.d.ts +22 -0
- package/dist/types/methods/unwrapErr.d.ts.map +1 -0
- package/dist/types/methods/unwrapOr.d.ts +22 -0
- package/dist/types/methods/unwrapOr.d.ts.map +1 -0
- package/dist/types/methods/unwrapOrElse.d.ts +22 -0
- package/dist/types/methods/unwrapOrElse.d.ts.map +1 -0
- package/dist/types/refiners/index.d.ts +11 -0
- package/dist/types/refiners/index.d.ts.map +1 -0
- package/dist/types/refiners/isTypedVariant.d.ts +21 -0
- package/dist/types/refiners/isTypedVariant.d.ts.map +1 -0
- package/dist/types/refiners/isTypedVariantOf.d.ts +22 -0
- package/dist/types/refiners/isTypedVariantOf.d.ts.map +1 -0
- package/dist/types/refiners/matchVariant.d.ts +27 -0
- package/dist/types/refiners/matchVariant.d.ts.map +1 -0
- package/dist/types/refiners/matchVariantStrict.d.ts +28 -0
- package/dist/types/refiners/matchVariantStrict.d.ts.map +1 -0
- package/dist/types/refiners/refineAsyncResult.d.ts +54 -0
- package/dist/types/refiners/refineAsyncResult.d.ts.map +1 -0
- package/dist/types/refiners/refineAsyncResultU.d.ts +30 -0
- package/dist/types/refiners/refineAsyncResultU.d.ts.map +1 -0
- package/dist/types/refiners/refineResult.d.ts +54 -0
- package/dist/types/refiners/refineResult.d.ts.map +1 -0
- package/dist/types/refiners/refineResultU.d.ts +30 -0
- package/dist/types/refiners/refineResultU.d.ts.map +1 -0
- package/dist/types/refiners/refineVariantMap.d.ts +34 -0
- package/dist/types/refiners/refineVariantMap.d.ts.map +1 -0
- package/dist/types/refiners/types/Handler.d.ts +9 -0
- package/dist/types/refiners/types/Handler.d.ts.map +1 -0
- package/dist/types/refiners/types/MatchBuilder.d.ts +9 -0
- package/dist/types/refiners/types/MatchBuilder.d.ts.map +1 -0
- package/dist/types/refiners/types/Matcher.d.ts +11 -0
- package/dist/types/refiners/types/Matcher.d.ts.map +1 -0
- package/dist/types/refiners/types/SyncRefinedResult.d.ts +6 -0
- package/dist/types/refiners/types/SyncRefinedResult.d.ts.map +1 -0
- package/dist/types/refiners/types/SyncRefinedResultUnion.d.ts +8 -0
- package/dist/types/refiners/types/SyncRefinedResultUnion.d.ts.map +1 -0
- package/dist/types/refiners/types/SyncValidatorMap.d.ts +6 -0
- package/dist/types/refiners/types/SyncValidatorMap.d.ts.map +1 -0
- package/dist/types/refiners/types/UniversalAsyncRefinedResult.d.ts +6 -0
- package/dist/types/refiners/types/UniversalAsyncRefinedResult.d.ts.map +1 -0
- package/dist/types/refiners/types/UniversalRefinedResult.d.ts +6 -0
- package/dist/types/refiners/types/UniversalRefinedResult.d.ts.map +1 -0
- package/dist/types/refiners/types/VariantOf.d.ts +5 -0
- package/dist/types/refiners/types/VariantOf.d.ts.map +1 -0
- package/dist/types/refiners/types/index.d.ts +10 -0
- package/dist/types/refiners/types/index.d.ts.map +1 -0
- package/dist/types/refiners/utils/getPayloadKeys.d.ts +19 -0
- package/dist/types/refiners/utils/getPayloadKeys.d.ts.map +1 -0
- package/dist/types/refiners/utils/index.d.ts +2 -0
- package/dist/types/refiners/utils/index.d.ts.map +1 -0
- package/dist/types/shared-types.d.ts +22 -0
- package/dist/types/shared-types.d.ts.map +1 -0
- package/dist/umd/resultsafe-monorepo-core-fp-result.umd.js +2 -0
- package/dist/umd/resultsafe-monorepo-core-fp-result.umd.js.map +1 -0
- package/docs/_category_.json +6 -0
- package/docs/api/README.md +9 -0
- package/docs/api/constructors/Err.md +58 -0
- package/docs/api/constructors/Ok.md +58 -0
- package/docs/api/constructors/index.md +7 -0
- package/docs/api/guards/index.md +9 -0
- package/docs/api/guards/isErr.md +58 -0
- package/docs/api/guards/isErrAnd.md +64 -0
- package/docs/api/guards/isOk.md +58 -0
- package/docs/api/guards/isOkAnd.md +64 -0
- package/docs/api/index.md +9 -0
- package/docs/api/methods/andThen.md +73 -0
- package/docs/api/methods/err.md +58 -0
- package/docs/api/methods/expect.md +68 -0
- package/docs/api/methods/expectErr.md +68 -0
- package/docs/api/methods/flatten.md +58 -0
- package/docs/api/methods/index.md +24 -0
- package/docs/api/methods/inspect.md +64 -0
- package/docs/api/methods/inspectErr.md +64 -0
- package/docs/api/methods/map.md +70 -0
- package/docs/api/methods/mapErr.md +70 -0
- package/docs/api/methods/match.md +76 -0
- package/docs/api/methods/ok.md +58 -0
- package/docs/api/methods/orElse.md +70 -0
- package/docs/api/methods/tap.md +64 -0
- package/docs/api/methods/tapErr.md +64 -0
- package/docs/api/methods/transpose.md +58 -0
- package/docs/api/methods/unwrap.md +62 -0
- package/docs/api/methods/unwrapErr.md +62 -0
- package/docs/api/methods/unwrapOr.md +64 -0
- package/docs/api/methods/unwrapOrElse.md +64 -0
- package/docs/api/modules.md +10 -0
- package/docs/api/refiners/index.md +14 -0
- package/docs/api/refiners/isTypedVariant.md +62 -0
- package/docs/api/refiners/isTypedVariantOf.md +68 -0
- package/docs/api/refiners/matchVariant.md +59 -0
- package/docs/api/refiners/matchVariantStrict.md +63 -0
- package/docs/api/refiners/refineAsyncResult.md +98 -0
- package/docs/api/refiners/refineAsyncResultU.md +86 -0
- package/docs/api/refiners/refineResult.md +98 -0
- package/docs/api/refiners/refineResultU.md +86 -0
- package/docs/api/refiners/refineVariantMap.md +79 -0
- package/docs/api/type-aliases/Handler.md +49 -0
- package/docs/api/type-aliases/MatchBuilder.md +57 -0
- package/docs/api/type-aliases/Matcher.md +71 -0
- package/docs/api/type-aliases/SyncRefinedResult.md +31 -0
- package/docs/api/type-aliases/SyncRefinedResultUnion.md +21 -0
- package/docs/api/type-aliases/SyncValidatorMap.md +17 -0
- package/docs/api/type-aliases/UniversalAsyncRefinedResult.md +31 -0
- package/docs/api/type-aliases/UniversalRefinedResult.md +31 -0
- package/docs/api/type-aliases/VariantOf.md +23 -0
- package/docs/api/type-aliases/index.md +14 -0
- package/docs/assets/logo.svg +153 -0
- package/docs/examples/_category_.json +4 -0
- package/docs/examples/auth/_category_.json +4 -0
- package/docs/examples/auth/index.md +3 -0
- package/docs/examples/auth/token.md +5 -0
- package/docs/examples/connection/_category_.json +4 -0
- package/docs/examples/connection/connect.md +5 -0
- package/docs/examples/connection/index.md +3 -0
- package/docs/examples/connection/reconnect.md +5 -0
- package/docs/examples/errors/_category_.json +4 -0
- package/docs/examples/errors/index.md +3 -0
- package/docs/examples/errors/retry.md +5 -0
- package/docs/examples/index.md +9 -0
- package/docs/examples/streaming/_category_.json +4 -0
- package/docs/examples/streaming/index.md +3 -0
- package/docs/examples/streaming/text.md +5 -0
- package/package.json +70 -0
package/dist/README.md
ADDED
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
# @resultsafe/core-fp-result
|
|
2
|
+
<a id="top"></a>
|
|
3
|
+
|
|
4
|
+

|
|
5
|
+
|
|
6
|
+
[](https://www.npmjs.com/package/@resultsafe/core-fp-result)
|
|
7
|
+
[](https://www.npmjs.com/package/@resultsafe/core-fp-result)
|
|
8
|
+
[](./LICENSE)
|
|
9
|
+
[](https://www.typescriptlang.org/)
|
|
10
|
+
[](./docs/api/README.md)
|
|
11
|
+
[](./package.json)
|
|
12
|
+
[](https://github.com/resultsafe/monorepo)
|
|
13
|
+
|
|
14
|
+
A Rust-inspired Result package for explicit, composable, and type-friendly APIs in TypeScript and JavaScript.
|
|
15
|
+
|
|
16
|
+
**Language:** English | [Русский](./README.ru.md)
|
|
17
|
+
|
|
18
|
+
**Documentation:** [API index](./docs/api/README.md) · [Modules](./docs/api/modules.md)
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
## Contents
|
|
22
|
+
|
|
23
|
+
- [Why this package](#why-this-package)
|
|
24
|
+
- [Monorepo context](#monorepo-context)
|
|
25
|
+
- [Key features](#key-features)
|
|
26
|
+
- [Package](#package)
|
|
27
|
+
- [Installation](#installation)
|
|
28
|
+
- [Quick start](#quick-start)
|
|
29
|
+
- [Core API overview](#core-api-overview)
|
|
30
|
+
- [Build and distribution formats](#build-and-distribution-formats)
|
|
31
|
+
- [Monorepo and package structure](#monorepo-and-package-structure)
|
|
32
|
+
- [When to use this project](#when-to-use-this-project)
|
|
33
|
+
- [Documentation links](#documentation-links)
|
|
34
|
+
- [License](#license)
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Why this package
|
|
39
|
+
|
|
40
|
+
`@resultsafe/core-fp-result` provides explicit success/error flows instead of hidden control paths and exception-first branching.
|
|
41
|
+
|
|
42
|
+
Its core package, [`@resultsafe/core-fp-result`](https://www.npmjs.com/package/@resultsafe/core-fp-result), provides a Rust-inspired `Result` API for TypeScript and JavaScript with:
|
|
43
|
+
|
|
44
|
+
- explicit `Ok` / `Err`
|
|
45
|
+
- predictable functional composition
|
|
46
|
+
- safe branching through guards and matching
|
|
47
|
+
- disciplined extraction APIs
|
|
48
|
+
- advanced refinement utilities for typed variants and strict matching
|
|
49
|
+
|
|
50
|
+
The goal is not to imitate Rust mechanically, but to bring the same clarity of intent to Node.js libraries: explicit values, predictable branching, and APIs organized for long-term maintenance.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Monorepo context
|
|
55
|
+
|
|
56
|
+
`@resultsafe/core-fp-result` is the TypeScript/JavaScript package inside the multilingual `resultsafe/monorepo`.
|
|
57
|
+
|
|
58
|
+
The monorepo applies shared Rust-inspired design concepts across language-specific packages. TypeScript/JavaScript is the current production package track, while Python is planned as a separate package track with the same conceptual model.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Key features
|
|
63
|
+
|
|
64
|
+
- Rust-inspired `Result` model for TypeScript and JavaScript.
|
|
65
|
+
- Explicit constructors via `Ok` and `Err`.
|
|
66
|
+
- Composable transformations with APIs such as `map`, `mapErr`, `andThen`, and `orElse`.
|
|
67
|
+
- Safe branching through guards like `isOk`, `isErr`, `isOkAnd`, `isErrAnd`, and matching helpers.
|
|
68
|
+
- Controlled extraction with `unwrap`, `unwrapOr`, `unwrapErr`, `expect`, and `expectErr`.
|
|
69
|
+
- Advanced refinement layer for typed variants, strict matching, and result narrowing.
|
|
70
|
+
- Coherent module structure instead of a flat utility dump.
|
|
71
|
+
- Type output for TypeScript users for better DX and safer integrations.
|
|
72
|
+
- Flexible distribution formats with Types, ESM, CJS, and UMD builds.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Package
|
|
77
|
+
|
|
78
|
+
### `@resultsafe/core-fp-result`
|
|
79
|
+
|
|
80
|
+
A focused Result library for explicit error handling and FP-style composition.
|
|
81
|
+
|
|
82
|
+
It is designed for developers who want:
|
|
83
|
+
|
|
84
|
+
- clear success/error modeling
|
|
85
|
+
- predictable transformations
|
|
86
|
+
- explicit branching and extraction
|
|
87
|
+
- better readability in error-heavy flows
|
|
88
|
+
- a structured Rust-inspired API surface in TypeScript/JavaScript
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Installation
|
|
93
|
+
|
|
94
|
+
### Package
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
pnpm add @resultsafe/core-fp-result
|
|
98
|
+
|
|
99
|
+
# Alternative
|
|
100
|
+
npm install @resultsafe/core-fp-result
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Monorepo
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
pnpm install
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Quick start
|
|
112
|
+
|
|
113
|
+
A typical Result flow starts with explicit constructors and then composes through functions rather than implicit exception paths.
|
|
114
|
+
|
|
115
|
+
```ts
|
|
116
|
+
import {
|
|
117
|
+
Ok,
|
|
118
|
+
map,
|
|
119
|
+
unwrapOr,
|
|
120
|
+
} from "@resultsafe/core-fp-result";
|
|
121
|
+
|
|
122
|
+
const initial = Ok(21);
|
|
123
|
+
const doubled = map(initial, (value) => value * 2);
|
|
124
|
+
const finalValue = unwrapOr(doubled, 0);
|
|
125
|
+
|
|
126
|
+
console.log(finalValue); // 42
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Basic `Ok` / `Err` example
|
|
130
|
+
|
|
131
|
+
```ts
|
|
132
|
+
import { Ok, Err, match } from "@resultsafe/core-fp-result";
|
|
133
|
+
|
|
134
|
+
const parsePort = (input: string) => {
|
|
135
|
+
const port = Number(input);
|
|
136
|
+
return Number.isInteger(port) && port > 0
|
|
137
|
+
? Ok(port)
|
|
138
|
+
: Err("Invalid port");
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
const result = parsePort("3000");
|
|
142
|
+
const message = match(result, (value) => `Port: ${value}`, (error) => `Error: ${error}`);
|
|
143
|
+
|
|
144
|
+
console.log(message);
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Core API overview
|
|
150
|
+
|
|
151
|
+
### Constructors
|
|
152
|
+
|
|
153
|
+
- `Ok`
|
|
154
|
+
- `Err`
|
|
155
|
+
|
|
156
|
+
### Guards
|
|
157
|
+
|
|
158
|
+
- `isOk`
|
|
159
|
+
- `isOkAnd`
|
|
160
|
+
- `isErr`
|
|
161
|
+
- `isErrAnd`
|
|
162
|
+
|
|
163
|
+
### Methods
|
|
164
|
+
|
|
165
|
+
- `andThen`
|
|
166
|
+
- `err`
|
|
167
|
+
- `expect`
|
|
168
|
+
- `expectErr`
|
|
169
|
+
- `flatten`
|
|
170
|
+
- `inspect`
|
|
171
|
+
- `inspectErr`
|
|
172
|
+
- `map`
|
|
173
|
+
- `mapErr`
|
|
174
|
+
- `match`
|
|
175
|
+
- `ok`
|
|
176
|
+
- `orElse`
|
|
177
|
+
- `tap`
|
|
178
|
+
- `tapErr`
|
|
179
|
+
- `transpose`
|
|
180
|
+
- `unwrap`
|
|
181
|
+
- `unwrapErr`
|
|
182
|
+
- `unwrapOr`
|
|
183
|
+
- `unwrapOrElse`
|
|
184
|
+
|
|
185
|
+
### Refiners
|
|
186
|
+
|
|
187
|
+
- `isTypedVariant`
|
|
188
|
+
- `isTypedVariantOf`
|
|
189
|
+
- `matchVariant`
|
|
190
|
+
- `matchVariantStrict`
|
|
191
|
+
- `refineAsyncResult`
|
|
192
|
+
- `refineAsyncResultU`
|
|
193
|
+
- `refineResult`
|
|
194
|
+
- `refineResultU`
|
|
195
|
+
- `refineVariantMap`
|
|
196
|
+
|
|
197
|
+
### Type aliases
|
|
198
|
+
|
|
199
|
+
- `Handler`
|
|
200
|
+
- `MatchBuilder`
|
|
201
|
+
- `Matcher`
|
|
202
|
+
- `SyncRefinedResult`
|
|
203
|
+
- `SyncRefinedResultUnion`
|
|
204
|
+
- `SyncValidatorMap`
|
|
205
|
+
- `UniversalAsyncRefinedResult`
|
|
206
|
+
- `UniversalRefinedResult`
|
|
207
|
+
- `VariantOf`
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## Build and distribution formats
|
|
212
|
+
|
|
213
|
+
- Types: `build:types`
|
|
214
|
+
- ESM: `build:esm`
|
|
215
|
+
- CJS: `build:cjs`
|
|
216
|
+
- UMD: `build:umd`
|
|
217
|
+
|
|
218
|
+
This package ships typed declarations and multiple runtime module formats for broad compatibility.
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## Monorepo and package structure
|
|
223
|
+
|
|
224
|
+
```txt
|
|
225
|
+
src/
|
|
226
|
+
constructors/
|
|
227
|
+
guards/
|
|
228
|
+
methods/
|
|
229
|
+
refiners/
|
|
230
|
+
types/
|
|
231
|
+
utils/
|
|
232
|
+
internal/
|
|
233
|
+
index.ts
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## When to use this project
|
|
239
|
+
|
|
240
|
+
Use this project when you want:
|
|
241
|
+
|
|
242
|
+
- explicit success/error modeling
|
|
243
|
+
- predictable FP-style composition
|
|
244
|
+
- visible control flow
|
|
245
|
+
- stronger type-guided result handling in TypeScript
|
|
246
|
+
- advanced refinement tools for typed variants and strict result matching
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## Documentation links
|
|
251
|
+
|
|
252
|
+
- [API entry (README)](./docs/api/README.md)
|
|
253
|
+
- [API entry (index)](./docs/api/index.md)
|
|
254
|
+
- [Modules](./docs/api/modules.md)
|
|
255
|
+
- [Constructors module](./docs/api/constructors/index.md)
|
|
256
|
+
- [Guards module](./docs/api/guards/index.md)
|
|
257
|
+
- [Methods module](./docs/api/methods/index.md)
|
|
258
|
+
- [Refiners module](./docs/api/refiners/index.md)
|
|
259
|
+
- [Type aliases module](./docs/api/type-aliases/index.md)
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
Back to top: [@resultsafe/core-fp-result](#top)
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
## Author
|
|
266
|
+
|
|
267
|
+
Denis Savasteev
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## License
|
|
272
|
+
|
|
273
|
+
[MIT](./LICENSE)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Err.js","sources":["../../../src/constructors/Err.ts"],"sourcesContent":["import type { Result } from '../shared-types.js';\n\n/**\n * Создает ошибочное значение `Result` из переданного payload ошибки.\n *\n * @typeParam E - Тип значения ошибки.\n * @typeParam T - The success type for the resulting `Result`.\n * @param error - Payload ошибки для обёртки.\n * @returns A `Result` with `ok: false` and the provided `error`.\n * @since 0.1.0\n * @see {@link Ok} - Creates a successful `Result`.\n * @example\n * ```ts\n * import { Err } from '@resultsafe/core-fp-result';\n *\n * const result = Err<string, number>('boom');\n * console.log(result.ok); // false\n * ```\n * @public\n */\nexport const Err = <E, T = never>(error: E): Result<T, E> =>\n ({ ok: false, error }) as const;\n\r\n\r\n"],"names":[],"mappings":";AAoBO,MAAM,MAAM,CAAe,WAC/B,EAAE,IAAI,OAAO,MAAA;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Ok.js","sources":["../../../src/constructors/Ok.ts"],"sourcesContent":["import type { Result } from '../shared-types.js';\n\n/**\n * Создает успешное значение `Result` из переданного payload.\n *\n * @typeParam T - Тип успешного значения.\n * @typeParam E - The error type for the resulting `Result`.\n * @param value - Payload успеха для обёртки.\n * @returns A `Result` with `ok: true` and the provided `value`.\n * @since 0.1.0\n * @see {@link Err} - Creates an error `Result`.\n * @example\n * ```ts\n * import { Ok } from '@resultsafe/core-fp-result';\n *\n * const result = Ok<number, string>(42);\n * console.log(result.ok); // true\n * ```\n * @public\n */\nexport const Ok = <T, E = never>(value: T): Result<T, E> =>\n ({ ok: true, value }) as const;\n\r\n\r\n"],"names":[],"mappings":";AAoBO,MAAM,KAAK,CAAe,WAC9B,EAAE,IAAI,MAAM,MAAA;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isErr.js","sources":["../../../src/guards/isErr.ts"],"sourcesContent":["import type { Result } from '../shared-types.js';\n\n/**\n * Проверяет, находится ли `Result` в ветке ошибки.\n *\n * @typeParam T - Тип успешного значения.\n * @typeParam E - Тип значения ошибки.\n * @param result - `Result` для проверки.\n * @returns `true` when `result.ok` equals `false`.\n * @since 0.1.0\n * @see {@link isOk} - Checks the success branch.\n * @example\n * ```ts\n * import { Err, isErr } from '@resultsafe/core-fp-result';\n *\n * const result = Err('boom');\n * console.log(isErr(result)); // true\n * ```\n * @public\n */\nexport const isErr = <T, E>(\n result: Result<T, E>,\n): result is { ok: false; error: E } => result.ok === false;\n\r\n\r\n"],"names":[],"mappings":";AAoBO,MAAM,QAAQ,CACnB,WACsC,OAAO,OAAO;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isErrAnd.js","sources":["../../../src/guards/isErrAnd.ts"],"sourcesContent":["import { type Result } from '../shared-types.js';\n\nimport { isErr } from './isErr.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 `Err` and the predicate returns `true`.\n * @since 0.1.0\n * @see {@link isErr} - Performs the base error check.\n * @example\n * ```ts\n * import { Err, isErrAnd } from '@resultsafe/core-fp-result';\n *\n * const result = Err({ code: 503 });\n * console.log(isErrAnd(result, (error) => error.code >= 500)); // true\n * ```\n * @public\n */\nexport const isErrAnd = <T, E>(\n result: Result<T, E>,\n predicate: (error: E) => boolean,\n): boolean => isErr(result) && predicate(result.error);\n\r\n\r\n"],"names":["isErr"],"mappings":";;AAuBO,MAAM,WAAW,CACtB,QACA,cACYA,MAAAA,MAAM,MAAM,KAAK,UAAU,OAAO,KAAK;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isOk.js","sources":["../../../src/guards/isOk.ts"],"sourcesContent":["import type { Result } from '../shared-types.js';\n\n/**\n * Проверяет, находится ли `Result` в ветке успеха.\n *\n * @typeParam T - Тип успешного значения.\n * @typeParam E - Тип значения ошибки.\n * @param result - `Result` для проверки.\n * @returns `true` when `result.ok` equals `true`.\n * @since 0.1.0\n * @see {@link isErr} - Checks the error branch.\n * @example\n * ```ts\n * import { Ok, isOk } from '@resultsafe/core-fp-result';\n *\n * const result = Ok(10);\n * console.log(isOk(result)); // true\n * ```\n * @public\n */\nexport const isOk = <T, E>(\n result: Result<T, E>,\n): result is { ok: true; value: T } => result.ok === true;\n\r\n\r\n"],"names":[],"mappings":";AAoBO,MAAM,OAAO,CAClB,WACqC,OAAO,OAAO;;"}
|
|
@@ -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":["isOk"],"mappings":";;AAuBO,MAAM,UAAU,CACrB,QACA,cACYA,KAAAA,KAAK,MAAM,KAAK,UAAU,OAAO,KAAK;;"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const Err = require("./constructors/Err.js");
|
|
3
|
+
const Ok = require("./constructors/Ok.js");
|
|
4
|
+
const isErr = require("./guards/isErr.js");
|
|
5
|
+
const isErrAnd = require("./guards/isErrAnd.js");
|
|
6
|
+
const isOk = require("./guards/isOk.js");
|
|
7
|
+
const isOkAnd = require("./guards/isOkAnd.js");
|
|
8
|
+
const andThen = require("./methods/andThen.js");
|
|
9
|
+
const err = require("./methods/err.js");
|
|
10
|
+
const expect = require("./methods/expect.js");
|
|
11
|
+
const expectErr = require("./methods/expectErr.js");
|
|
12
|
+
const flatten = require("./methods/flatten.js");
|
|
13
|
+
const inspect = require("./methods/inspect.js");
|
|
14
|
+
const inspectErr = require("./methods/inspectErr.js");
|
|
15
|
+
const map = require("./methods/map.js");
|
|
16
|
+
const mapErr = require("./methods/mapErr.js");
|
|
17
|
+
const match = require("./methods/match.js");
|
|
18
|
+
const ok = require("./methods/ok.js");
|
|
19
|
+
const orElse = require("./methods/orElse.js");
|
|
20
|
+
const tap = require("./methods/tap.js");
|
|
21
|
+
const tapErr = require("./methods/tapErr.js");
|
|
22
|
+
const transpose = require("./methods/transpose.js");
|
|
23
|
+
const unwrap = require("./methods/unwrap.js");
|
|
24
|
+
const unwrapErr = require("./methods/unwrapErr.js");
|
|
25
|
+
const unwrapOr = require("./methods/unwrapOr.js");
|
|
26
|
+
const unwrapOrElse = require("./methods/unwrapOrElse.js");
|
|
27
|
+
const isTypedVariant = require("./refiners/isTypedVariant.js");
|
|
28
|
+
const isTypedVariantOf = require("./refiners/isTypedVariantOf.js");
|
|
29
|
+
const matchVariant = require("./refiners/matchVariant.js");
|
|
30
|
+
const matchVariantStrict = require("./refiners/matchVariantStrict.js");
|
|
31
|
+
const refineAsyncResult = require("./refiners/refineAsyncResult.js");
|
|
32
|
+
const refineAsyncResultU = require("./refiners/refineAsyncResultU.js");
|
|
33
|
+
const refineResult = require("./refiners/refineResult.js");
|
|
34
|
+
const refineResultU = require("./refiners/refineResultU.js");
|
|
35
|
+
const refineVariantMap = require("./refiners/refineVariantMap.js");
|
|
36
|
+
exports.Err = Err.Err;
|
|
37
|
+
exports.Ok = Ok.Ok;
|
|
38
|
+
exports.isErr = isErr.isErr;
|
|
39
|
+
exports.isErrAnd = isErrAnd.isErrAnd;
|
|
40
|
+
exports.isOk = isOk.isOk;
|
|
41
|
+
exports.isOkAnd = isOkAnd.isOkAnd;
|
|
42
|
+
exports.andThen = andThen.andThen;
|
|
43
|
+
exports.err = err.err;
|
|
44
|
+
exports.expect = expect.expect;
|
|
45
|
+
exports.expectErr = expectErr.expectErr;
|
|
46
|
+
exports.flatten = flatten.flatten;
|
|
47
|
+
exports.inspect = inspect.inspect;
|
|
48
|
+
exports.inspectErr = inspectErr.inspectErr;
|
|
49
|
+
exports.map = map.map;
|
|
50
|
+
exports.mapErr = mapErr.mapErr;
|
|
51
|
+
exports.match = match.match;
|
|
52
|
+
exports.ok = ok.ok;
|
|
53
|
+
exports.orElse = orElse.orElse;
|
|
54
|
+
exports.tap = tap.tap;
|
|
55
|
+
exports.tapErr = tapErr.tapErr;
|
|
56
|
+
exports.transpose = transpose.transpose;
|
|
57
|
+
exports.unwrap = unwrap.unwrap;
|
|
58
|
+
exports.unwrapErr = unwrapErr.unwrapErr;
|
|
59
|
+
exports.unwrapOr = unwrapOr.unwrapOr;
|
|
60
|
+
exports.unwrapOrElse = unwrapOrElse.unwrapOrElse;
|
|
61
|
+
exports.isTypedVariant = isTypedVariant.isTypedVariant;
|
|
62
|
+
exports.isTypedVariantOf = isTypedVariantOf.isTypedVariantOf;
|
|
63
|
+
exports.matchVariant = matchVariant.matchVariant;
|
|
64
|
+
exports.matchVariantStrict = matchVariantStrict.matchVariantStrict;
|
|
65
|
+
exports.refineAsyncResult = refineAsyncResult.refineAsyncResult;
|
|
66
|
+
exports.refineAsyncResultU = refineAsyncResultU.refineAsyncResultU;
|
|
67
|
+
exports.refineResult = refineResult.refineResult;
|
|
68
|
+
exports.refineResultU = refineResultU.refineResultU;
|
|
69
|
+
exports.refineVariantMap = refineVariantMap.refineVariantMap;
|
|
70
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -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,CACpB,KACA,QAC8B,OAAO,UAAU,eAAe,KAAK,KAAK,GAAG;AAGtE,MAAM,WAAW,CAAC,UACvB,OAAO,UAAU,YAAY,UAAU;;;"}
|
|
@@ -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,CAAI,WAAc,EAAE,MAAM,MAAM,MAAA;;;"}
|
|
@@ -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":["isOk"],"mappings":";;AA2BO,MAAM,UAAU,CACrB,QACA,OACkBA,KAAAA,KAAK,MAAM,IAAI,GAAG,OAAO,KAAK,IAAK;;"}
|
|
@@ -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":["isErr","Some","None"],"mappings":";;;AAwBO,MAAM,MAAM,CAAO,WACxBA,YAAM,MAAM,IAAIC,YAAK,OAAO,KAAK,IAAIC,OAAAA;;"}
|
|
@@ -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":["isOk"],"mappings":";;AAwBO,MAAM,SAAS,CAAO,QAAsB,QAAmB;AACpE,MAAIA,KAAAA,KAAK,MAAM,GAAG;AAChB,WAAO,OAAO;AAAA,EAChB;AACA,QAAM,IAAI,MAAM,GAAG;AACrB;;"}
|
|
@@ -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":["isErr"],"mappings":";;AAwBO,MAAM,YAAY,CAAO,QAAsB,QAAmB;AACvE,MAAIA,MAAAA,MAAM,MAAM,GAAG;AACjB,WAAO,OAAO;AAAA,EAChB;AACA,QAAM,IAAI,MAAM,GAAG;AACrB;;"}
|
|
@@ -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,CAAO,WAC5B,OAAO,KAAK,OAAO,QAAQ,EAAE,IAAI,OAAO,OAAO,OAAO,MAAA;;"}
|
|
@@ -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":["isOk"],"mappings":";;AAuBO,MAAM,UAAU,CACrB,QACA,OACiB;AACjB,MAAIA,KAAAA,KAAK,MAAM,GAAG;AAChB,OAAG,OAAO,KAAK;AAAA,EACjB;AACA,SAAO;AACT;;"}
|
|
@@ -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":["isErr"],"mappings":";;AAuBO,MAAM,aAAa,CACxB,QACA,OACiB;AACjB,MAAIA,MAAAA,MAAM,MAAM,GAAG;AACjB,OAAG,OAAO,KAAK;AAAA,EACjB;AACA,SAAO;AACT;;"}
|
|
@@ -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":["isOk"],"mappings":";;AAwBO,MAAM,MAAM,CACjB,QACA,OAEAA,KAAAA,KAAK,MAAM,IACP,EAAE,IAAI,MAAM,OAAO,GAAG,OAAO,KAAK,MACjC;;"}
|
|
@@ -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":["isErr"],"mappings":";;AAwBO,MAAM,SAAS,CACpB,QACA,OAEAA,MAAAA,MAAM,MAAM,IACR,EAAE,IAAI,OAAO,OAAO,GAAG,OAAO,KAAK,MAClC;;"}
|
|
@@ -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,CACnB,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;;"}
|
|
@@ -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":["isOk","Some","None"],"mappings":";;;AAwBO,MAAM,KAAK,CAAO,WACvBA,UAAK,MAAM,IAAIC,YAAK,OAAO,KAAK,IAAIC,OAAAA;;"}
|
|
@@ -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":["isErr"],"mappings":";;AAwBO,MAAM,SAAS,CACpB,QACA,OAEAA,MAAAA,MAAM,MAAM,IAAI,GAAG,OAAO,KAAK,IAAK;;"}
|
|
@@ -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,CACjB,QACA,OACiB;AACjB,MAAI,OAAO,IAAI;AACb,OAAG,OAAO,KAAK;AAAA,EACjB;AACA,SAAO;AACT;;"}
|