decodeUnknownEffect

Avatar of Hemanta SundarayHemanta Sundaray

decodeUnknownEffect returns an Effect instead of throwing. On success, you get the decoded value. On failure, you get a SchemaError.

schema.ts
import { Effect, Schema } from "effect";
const schema = Schema.Struct({
name: Schema.String,
age: Schema.Number,
});
const decode = Schema.decodeUnknownEffect(schema);
// Happy path
const okProgram = decode({ name: "Alice", age: 30 }).pipe(
Effect.match({
onSuccess: (value) => {
console.log("Decoded Value:", value);
},
onFailure: (error) => {
console.log("Error Message:", error.message);
},
}),
);
await Effect.runPromise(okProgram);
// Error path
const badProgram = decode({ name: 42, age: "30" }, { errors: "all" }).pipe(
Effect.match({
onSuccess: (value) => {
console.log("Decoded Value:", value);
},
onFailure: (error) => {
console.log("Error Message:", error.message);
console.log("Issue Tree:", error.issue);
},
}),
);
await Effect.runPromise(badProgram);

Use decodeUnknownEffect when you want decoding to stay inside Effect workflows, especially when composing with other Effects

Sign in to save progress

Stay in the loop

Get notified when new chapters are added and when this course is complete.