@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/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 resultsafe contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/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)
|
package/README.ru.md
ADDED
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
# @resultsafe/core-fp-result
|
|
2
|
+
<a id="top"></a>
|
|
3
|
+
|
|
4
|
+
[](https://www.npmjs.com/package/@resultsafe/core-fp-result)
|
|
5
|
+
[](https://www.npmjs.com/package/@resultsafe/core-fp-result)
|
|
6
|
+
[](./LICENSE)
|
|
7
|
+
[](https://www.typescriptlang.org/)
|
|
8
|
+
[](./docs/api/README.md)
|
|
9
|
+
[](./package.json)
|
|
10
|
+
[](https://github.com/resultsafe/monorepo)
|
|
11
|
+
|
|
12
|
+
Rust-inspired Result-пакет для явных, композиционных и типобезопасных API в TypeScript и JavaScript.
|
|
13
|
+
|
|
14
|
+
**Язык:** [English](./README.md) | Русский
|
|
15
|
+
|
|
16
|
+
**Документация:** [API index](./docs/api/README.md) · [Modules](./docs/api/modules.md)
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
## Содержание
|
|
20
|
+
|
|
21
|
+
- [Зачем нужен этот пакет](#зачем-нужен-этот-пакет)
|
|
22
|
+
- [Контекст monorepo](#контекст-monorepo)
|
|
23
|
+
- [Ключевые возможности](#ключевые-возможности)
|
|
24
|
+
- [Пакет](#пакет)
|
|
25
|
+
- [Установка](#установка)
|
|
26
|
+
- [Быстрый старт](#быстрый-старт)
|
|
27
|
+
- [Обзор основного API](#обзор-основного-api)
|
|
28
|
+
- [Форматы сборки и поставки](#форматы-сборки-и-поставки)
|
|
29
|
+
- [Структура monorepo и пакета](#структура-monorepo-и-пакета)
|
|
30
|
+
- [Когда использовать этот проект](#когда-использовать-этот-проект)
|
|
31
|
+
- [Ссылки на документацию](#ссылки-на-документацию)
|
|
32
|
+
- [License](#license)
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Зачем нужен этот пакет
|
|
37
|
+
|
|
38
|
+
`@resultsafe/core-fp-result` предоставляет явные success/error flow вместо скрытых путей управления и exception-first ветвления.
|
|
39
|
+
|
|
40
|
+
Его основной пакет, [`@resultsafe/core-fp-result`](https://www.npmjs.com/package/@resultsafe/core-fp-result), предоставляет Rust-inspired `Result` API для TypeScript и JavaScript со следующими свойствами:
|
|
41
|
+
|
|
42
|
+
- явные `Ok` / `Err`
|
|
43
|
+
- предсказуемая функциональная композиция
|
|
44
|
+
- безопасное ветвление через guards и matching
|
|
45
|
+
- дисциплинированные API извлечения значений
|
|
46
|
+
- продвинутые refinement utilities для typed variants и strict matching
|
|
47
|
+
|
|
48
|
+
Цель проекта не в механическом копировании Rust, а в переносе той же ясности намерений в Node.js-библиотеки: явные значения, предсказуемое ветвление и API, организованные для долгосрочного сопровождения.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Контекст monorepo
|
|
53
|
+
|
|
54
|
+
`@resultsafe/core-fp-result` — это пакет TypeScript/JavaScript внутри мультиязычного `resultsafe/monorepo`.
|
|
55
|
+
|
|
56
|
+
Монорепозиторий переносит общие Rust-inspired концепции в отдельные language-specific пакеты. Текущий production-трек — TypeScript/JavaScript, а Python планируется как отдельный пакетный трек с той же концептуальной моделью.
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Ключевые возможности
|
|
61
|
+
|
|
62
|
+
- Rust-inspired модель `Result` для TypeScript и JavaScript.
|
|
63
|
+
- Явные конструкторы через `Ok` и `Err`.
|
|
64
|
+
- Композиционные трансформации через API, такие как `map`, `mapErr`, `andThen` и `orElse`.
|
|
65
|
+
- Безопасное ветвление через guards `isOk`, `isErr`, `isOkAnd`, `isErrAnd` и matching helpers.
|
|
66
|
+
- Контролируемое извлечение через `unwrap`, `unwrapOr`, `unwrapErr`, `expect` и `expectErr`.
|
|
67
|
+
- Продвинутый слой refiners для typed variants, strict matching и сужения результатов.
|
|
68
|
+
- Согласованная модульная структура вместо плоского набора утилит.
|
|
69
|
+
- Type output для TypeScript-пользователей для лучшего DX и более безопасных интеграций.
|
|
70
|
+
- Гибкие форматы поставки: Types, ESM, CJS и UMD.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Пакет
|
|
75
|
+
|
|
76
|
+
### `@resultsafe/core-fp-result`
|
|
77
|
+
|
|
78
|
+
Фокусированная Result-библиотека для явной обработки ошибок и FP-style композиции.
|
|
79
|
+
|
|
80
|
+
Она рассчитана на разработчиков, которым нужны:
|
|
81
|
+
|
|
82
|
+
- ясное моделирование успеха/ошибки
|
|
83
|
+
- предсказуемые трансформации
|
|
84
|
+
- явное ветвление и извлечение значений
|
|
85
|
+
- лучшая читаемость в error-heavy flow
|
|
86
|
+
- структурированная Rust-inspired API surface в TypeScript/JavaScript
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Установка
|
|
91
|
+
|
|
92
|
+
### Пакет
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
pnpm add @resultsafe/core-fp-result
|
|
96
|
+
|
|
97
|
+
# Альтернатива
|
|
98
|
+
npm install @resultsafe/core-fp-result
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Monorepo
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
pnpm install
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Быстрый старт
|
|
110
|
+
|
|
111
|
+
Типичный Result flow начинается с явных конструкторов и затем компонуется через функции, а не через неявные пути исключений.
|
|
112
|
+
|
|
113
|
+
```ts
|
|
114
|
+
import {
|
|
115
|
+
Ok,
|
|
116
|
+
map,
|
|
117
|
+
unwrapOr,
|
|
118
|
+
} from "@resultsafe/core-fp-result";
|
|
119
|
+
|
|
120
|
+
const initial = Ok(21);
|
|
121
|
+
const doubled = map(initial, (value) => value * 2);
|
|
122
|
+
const finalValue = unwrapOr(doubled, 0);
|
|
123
|
+
|
|
124
|
+
console.log(finalValue); // 42
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Базовый пример `Ok` / `Err`
|
|
128
|
+
|
|
129
|
+
```ts
|
|
130
|
+
import { Ok, Err, match } from "@resultsafe/core-fp-result";
|
|
131
|
+
|
|
132
|
+
const parsePort = (input: string) => {
|
|
133
|
+
const port = Number(input);
|
|
134
|
+
return Number.isInteger(port) && port > 0
|
|
135
|
+
? Ok(port)
|
|
136
|
+
: Err("Invalid port");
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
const result = parsePort("3000");
|
|
140
|
+
const message = match(result, (value) => `Port: ${value}`, (error) => `Error: ${error}`);
|
|
141
|
+
|
|
142
|
+
console.log(message);
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Обзор основного API
|
|
148
|
+
|
|
149
|
+
### Constructors
|
|
150
|
+
|
|
151
|
+
- `Ok`
|
|
152
|
+
- `Err`
|
|
153
|
+
|
|
154
|
+
### Guards
|
|
155
|
+
|
|
156
|
+
- `isOk`
|
|
157
|
+
- `isOkAnd`
|
|
158
|
+
- `isErr`
|
|
159
|
+
- `isErrAnd`
|
|
160
|
+
|
|
161
|
+
### Methods
|
|
162
|
+
|
|
163
|
+
- `andThen`
|
|
164
|
+
- `err`
|
|
165
|
+
- `expect`
|
|
166
|
+
- `expectErr`
|
|
167
|
+
- `flatten`
|
|
168
|
+
- `inspect`
|
|
169
|
+
- `inspectErr`
|
|
170
|
+
- `map`
|
|
171
|
+
- `mapErr`
|
|
172
|
+
- `match`
|
|
173
|
+
- `ok`
|
|
174
|
+
- `orElse`
|
|
175
|
+
- `tap`
|
|
176
|
+
- `tapErr`
|
|
177
|
+
- `transpose`
|
|
178
|
+
- `unwrap`
|
|
179
|
+
- `unwrapErr`
|
|
180
|
+
- `unwrapOr`
|
|
181
|
+
- `unwrapOrElse`
|
|
182
|
+
|
|
183
|
+
### Refiners
|
|
184
|
+
|
|
185
|
+
- `isTypedVariant`
|
|
186
|
+
- `isTypedVariantOf`
|
|
187
|
+
- `matchVariant`
|
|
188
|
+
- `matchVariantStrict`
|
|
189
|
+
- `refineAsyncResult`
|
|
190
|
+
- `refineAsyncResultU`
|
|
191
|
+
- `refineResult`
|
|
192
|
+
- `refineResultU`
|
|
193
|
+
- `refineVariantMap`
|
|
194
|
+
|
|
195
|
+
### Type aliases
|
|
196
|
+
|
|
197
|
+
- `Handler`
|
|
198
|
+
- `MatchBuilder`
|
|
199
|
+
- `Matcher`
|
|
200
|
+
- `SyncRefinedResult`
|
|
201
|
+
- `SyncRefinedResultUnion`
|
|
202
|
+
- `SyncValidatorMap`
|
|
203
|
+
- `UniversalAsyncRefinedResult`
|
|
204
|
+
- `UniversalRefinedResult`
|
|
205
|
+
- `VariantOf`
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## Форматы сборки и поставки
|
|
210
|
+
|
|
211
|
+
- Types: `build:types`
|
|
212
|
+
- ESM: `build:esm`
|
|
213
|
+
- CJS: `build:cjs`
|
|
214
|
+
- UMD: `build:umd`
|
|
215
|
+
|
|
216
|
+
Пакет публикует typed declarations и несколько runtime-форматов модулей для широкой совместимости.
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## Структура monorepo и пакета
|
|
221
|
+
|
|
222
|
+
```txt
|
|
223
|
+
src/
|
|
224
|
+
constructors/
|
|
225
|
+
guards/
|
|
226
|
+
methods/
|
|
227
|
+
refiners/
|
|
228
|
+
types/
|
|
229
|
+
utils/
|
|
230
|
+
internal/
|
|
231
|
+
index.ts
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Когда использовать этот проект
|
|
237
|
+
|
|
238
|
+
Используйте проект, если вам нужны:
|
|
239
|
+
|
|
240
|
+
- явное моделирование успеха/ошибки
|
|
241
|
+
- предсказуемая FP-style композиция
|
|
242
|
+
- видимый control flow
|
|
243
|
+
- более сильная type-guided обработка результатов в TypeScript
|
|
244
|
+
- продвинутые refinement tools для typed variants и строгого result matching
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## Ссылки на документацию
|
|
249
|
+
|
|
250
|
+
- [API entry (README)](./docs/api/README.md)
|
|
251
|
+
- [API entry (index)](./docs/api/index.md)
|
|
252
|
+
- [Modules](./docs/api/modules.md)
|
|
253
|
+
- [Constructors module](./docs/api/constructors/index.md)
|
|
254
|
+
- [Guards module](./docs/api/guards/index.md)
|
|
255
|
+
- [Methods module](./docs/api/methods/index.md)
|
|
256
|
+
- [Refiners module](./docs/api/refiners/index.md)
|
|
257
|
+
- [Type aliases module](./docs/api/type-aliases/index.md)
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
Наверх: [@resultsafe/core-fp-result](#top)
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## License
|
|
265
|
+
|
|
266
|
+
[MIT](./LICENSE)
|
package/dist/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 resultsafe contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|