Issue with Schema Transformation and Option Handling in Effect TypeScript Library
Hi all, am I doing something wrong here or is it a Bug?
I end up with
https://effect.website/play#b9785d9670ed
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)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(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 missinghttps://effect.website/play#b9785d9670ed
