const UserTransform = Schema.transformOrFail(
RawUser,
PrettyUser,
{
strict: true,
decode: (raw) =>
Effect.all({
name: decodeRawField(raw.full_name), // R = never
age: decodeRawAge(raw.user_age), // R = never
isAdult: Effect.succeed(raw.user_age >= 18)
}),
// TypeScript infers: Effect<..., ParseIssue, unknown>
// ^^^^^^^
encode: () => { throw new Error("Not implemented") }
}
)
const UserTransform = Schema.transformOrFail(
RawUser,
PrettyUser,
{
strict: true,
decode: (raw) =>
Effect.all({
name: decodeRawField(raw.full_name), // R = never
age: decodeRawAge(raw.user_age), // R = never
isAdult: Effect.succeed(raw.user_age >= 18)
}),
// TypeScript infers: Effect<..., ParseIssue, unknown>
// ^^^^^^^
encode: () => { throw new Error("Not implemented") }
}
)