Issue with Schema Transformation and Option Handling in Effect TypeScript Library

Hi all, am I doing something wrong here or is it a Bug?
import { Schema, Option } from "effect"

const BooleanFromOption = Schema.transform(Schema.Option(Schema.String), Schema.Boolean, {
  decode: (fromA) => {
    console.log("fromAAAAAAAAAAAAAAAAAAAAAAAAA", fromA)
    return Option.match(fromA, {
      onNone: () => false,
      onSome: () => true
    })
  },
  encode: (toB) => {
    console.log("toB", toB)
    return Option.some(toB.valueOf() as any)
  }
})

  const result = Schema.decodeUnknownSync(BooleanFromOption)(Option.some("bla"))
  console.log(result)

I end up with
(FiberFailure) ParseError: ((OptionEncoded<string> <-> Option<string>) <-> boolean)
└─ Encoded side transformation failure
   └─ (OptionEncoded<string> <-> Option<string>)
      └─ Encoded side transformation failure
         └─ OptionEncoded<string>
            └─ { readonly _tag: "None" | "Some" }
               └─ ["_tag"]
                  └─ is missing

https://effect.website/play#b9785d9670ed
Was this page helpful?