github Effect-TS/effect @effect/schema@0.75.2

latest releases: @effect/sql-sqlite-react-native@0.18.1, @effect/sql-sqlite-node@0.16.1, @effect/sql-sqlite-wasm@0.15.1...
one day ago

Patch Changes

  • #3753 f02b354 Thanks @gcanti! - Enhanced Error Reporting for Discriminated Union Tuple Schemas, closes #3752

    Previously, irrelevant error messages were generated for each member of the union. Now, when a discriminator is present in the input, only the relevant member will trigger an error.

    Before

    import * as Schema from "@effect/schema/Schema"
    
    const schema = Schema.Union(
      Schema.Tuple(Schema.Literal("a"), Schema.String),
      Schema.Tuple(Schema.Literal("b"), Schema.Number)
    ).annotations({ identifier: "MyUnion" })
    
    console.log(Schema.decodeUnknownSync(schema)(["a", 0]))
    /*
    throws:
    ParseError: MyUnion
    ├─ readonly ["a", string]
    │  └─ [1]
    │     └─ Expected string, actual 0
    └─ readonly ["b", number]
       └─ [0]
          └─ Expected "b", actual "a"
    */

    After

    import * as Schema from "@effect/schema/Schema"
    
    const schema = Schema.Union(
      Schema.Tuple(Schema.Literal("a"), Schema.String),
      Schema.Tuple(Schema.Literal("b"), Schema.Number)
    ).annotations({ identifier: "MyUnion" })
    
    console.log(Schema.decodeUnknownSync(schema)(["a", 0]))
    /*
    throws:
    ParseError: MyUnion
    └─ readonly ["a", string]
       └─ [1]
          └─ Expected string, actual 0
    */

Don't miss a new effect release

NewReleases is sending notifications on new releases.