Issue with `decodingFallback` not triggering when using `transformOrFailFrom` in Effect Typescrip...

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 }));


Noticing that someNum is throwing a ParseError instead of hitting the decodingFallback, but only when using transformOrFailFrom. When I use BaseSchema without using transformOrFailFrom, I don't have an issue. Am I setting up the schema wrong in some way?
Was this page helpful?