unsplash / sum-types-io-ts

io-ts bindings for @unsplash/sum-types.
https://unsplash.github.io/sum-types-io-ts/
MIT License
2 stars 1 forks source link

Various object codecs #22

Closed samhh closed 1 year ago

samhh commented 1 year ago

Closes #5, #18, #19, #20, and #21. Borrows nomenclature from Serde ^1. Enables decoding the following examples:

type Weather = Sum.Member<"Sun"> | Sum.Member<"Rain", { mm: number }>

// Externally tagged
{ Rain: { mm: 123 } }

// Internally tagged
{ tag: "Rain", mm: 123 }

// Adjacently tagged
{ tag: "Rain", value: { mm: 123 } }

// Untagged
{ mm: 123 }