<S extends ConstraintDecoder<unknown>>(
schema: S,
options?: SchemaAST.ParseOptions
): (
input: S["Encoded"],
options?: SchemaAST.ParseOptions
) => Result_.Result<S["Type"], SchemaError>Decodes a typed input (the schema's Encoded type) against a schema,
returning a Result that succeeds with the decoded value or fails with a
SchemaError for schema mismatches.
When to use
Use when you already have input typed as the schema's Encoded type and want
schema mismatches returned as Result.fail with SchemaError.
Details
For unknown input use decodeUnknownResult.
Options may be provided either when creating the decoder or when applying it;
application options override creation options.
Schema mismatches are returned as Result.fail with SchemaError.
Gotchas
Only causes made entirely of schema issues are returned as Result.fail.
Causes that contain defects, interruptions, or other non-schema reasons throw
instead.
export const const decodeResult: <
S extends ConstraintDecoder<unknown>
>(
schema: S,
options?: SchemaAST.ParseOptions
) => (
input: S["Encoded"],
options?: SchemaAST.ParseOptions
) => Result_.Result<S["Type"], SchemaError>
Decodes a typed input (the schema's Encoded type) against a schema,
returning a Result that succeeds with the decoded value or fails with a
SchemaError
for schema mismatches.
When to use
Use when you already have input typed as the schema's Encoded type and want
schema mismatches returned as Result.fail with SchemaError.
Details
For unknown input use
decodeUnknownResult
.
Options may be provided either when creating the decoder or when applying it;
application options override creation options.
Schema mismatches are returned as Result.fail with SchemaError.
Gotchas
Only causes made entirely of schema issues are returned as Result.fail.
Causes that contain defects, interruptions, or other non-schema reasons throw
instead.
decodeResult: <function (type parameter) S in <S extends ConstraintDecoder<unknown>>(schema: S, options?: SchemaAST.ParseOptions): (input: S["Encoded"], options?: SchemaAST.ParseOptions) => Result_.Result<S["Type"], SchemaError>S extends interface ConstraintDecoder<out T, out RD = never>Lightweight structural constraint for APIs that need decoder type views but
do not need the full schema protocol.
When to use
Use when you need to preserve a schema's decoded type and decoding services,
but the API does not constrain the encoded type, encoding services, or call
schema methods such as annotate, check, rebuild, make, or
makeEffect.
ConstraintDecoder<unknown>>(
schema: S extends ConstraintDecoder<unknown>schema: function (type parameter) S in <S extends ConstraintDecoder<unknown>>(schema: S, options?: SchemaAST.ParseOptions): (input: S["Encoded"], options?: SchemaAST.ParseOptions) => Result_.Result<S["Type"], SchemaError>S,
options: SchemaAST.ParseOptionsoptions?: import SchemaASTSchemaAST.ParseOptions
) => (input: S["Encoded"]input: function (type parameter) S in <S extends ConstraintDecoder<unknown>>(schema: S, options?: SchemaAST.ParseOptions): (input: S["Encoded"], options?: SchemaAST.ParseOptions) => Result_.Result<S["Type"], SchemaError>S["Encoded"], options: SchemaAST.ParseOptionsoptions?: import SchemaASTSchemaAST.ParseOptions) => import Result_Result_.type Result_.Result = /*unresolved*/ anyResult<function (type parameter) S in <S extends ConstraintDecoder<unknown>>(schema: S, options?: SchemaAST.ParseOptions): (input: S["Encoded"], options?: SchemaAST.ParseOptions) => Result_.Result<S["Type"], SchemaError>S["Type"], class SchemaErrorclass SchemaError {
message: string;
toString: () => string;
name: string;
stack: string;
cause: unknown;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
toJSON: () => unknown;
_tag: Tag;
issue: SchemaIssue.Issue;
}
Error thrown (or returned as the error channel value) when schema decoding
or encoding fails.
Details
The issue field contains a structured
Issue
tree describing
every validation failure, including the path to the problematic value,
expected types, and actual values received. message renders the issue tree
as a human-readable string.
Use
isSchemaError
to narrow an unknown value to SchemaError.
Example (Catching a SchemaError)
import { Schema } from "effect"
try {
Schema.decodeUnknownSync(Schema.Number)("not a number")
} catch (err) {
if (Schema.isSchemaError(err)) {
console.log(err.message)
// Expected number, actual "not a number"
}
}
SchemaError> =
function decodeUnknownResult<
S extends ConstraintDecoder<unknown>
>(
schema: S,
options?: SchemaAST.ParseOptions
): (
input: unknown,
options?: SchemaAST.ParseOptions
) => Result_.Result<S["Type"], SchemaError>
Decodes an unknown input against a schema, returning a Result that
succeeds with the decoded value or fails with a
SchemaError
for schema
mismatches.
When to use
Use when you do not know the input type statically and want schema mismatches
returned as Result.fail with SchemaError.
Details
For input already typed as the schema's Encoded type use
decodeResult
.
Options may be provided either when creating the decoder or when applying it;
application options override creation options.
Schema mismatches are returned as Result.fail with SchemaError.
Gotchas
Only causes made entirely of schema issues are returned as Result.fail.
Causes that contain defects, interruptions, or other non-schema reasons throw
instead.
decodeUnknownResult