class BaseSchema extends Schema.Class<BaseSchema>('BaseSchema')({
someNum: Schema.NumberFromString.annotations({
decodingFallback: (issue) => (!issue.actual ? Effect.succeed(0) : Effect.fail(issue)),
}).pipe(Schema.propertySignature, Schema.fromKey('SomeNum')),
}) {}
class TransformedSchema extends BaseSchema.transformOrFailFrom<TransformedSchema>('TransformedSchema')(
// just a random schema, no particular meaning to this in the example
{ raw: Schema.Number },
{
decode: (input) => ParseResult.succeed({ ...input, raw: 42 }),
encode: ParseResult.succeed,
},
) {}
console.log(Schema.decodeUnknownSync(TransformedSchema)({ SomeNum: null }));
class BaseSchema extends Schema.Class<BaseSchema>('BaseSchema')({
someNum: Schema.NumberFromString.annotations({
decodingFallback: (issue) => (!issue.actual ? Effect.succeed(0) : Effect.fail(issue)),
}).pipe(Schema.propertySignature, Schema.fromKey('SomeNum')),
}) {}
class TransformedSchema extends BaseSchema.transformOrFailFrom<TransformedSchema>('TransformedSchema')(
// just a random schema, no particular meaning to this in the example
{ raw: Schema.Number },
{
decode: (input) => ParseResult.succeed({ ...input, raw: 42 }),
encode: ParseResult.succeed,
},
) {}
console.log(Schema.decodeUnknownSync(TransformedSchema)({ SomeNum: null }));