Hyperlinkv0.8.0-beta.28

SchemaTransformation

SchemaTransformation.optionFromUndefinedOrfunctioneffect/SchemaTransformation.ts:1200
<T>(): Transformation<Option.Option<T>, T | undefined>

Decodes T | undefined into Option<T> and encodes Option.none() back to undefined.

When to use

Use when you need a schema transformation to convert API fields that use undefined for absence to Option.

Details

Decoding maps undefined to Option.none() and non-undefined values to Option.some(value). Encoding maps Option.none() to undefined and Option.some(value) to value. The transformation is pure and synchronous.

Example (Converting undefined-or values to an Option)

import { Schema, SchemaTransformation } from "effect"

const schema = Schema.UndefinedOr(Schema.String).pipe(
  Schema.decodeTo(
    Schema.Option(Schema.String),
    SchemaTransformation.optionFromUndefinedOr()
  )
)
export function optionFromUndefinedOr<T>(): Transformation<Option.Option<T>, T | undefined> {
  return transform({
    decode: Option.fromUndefinedOr,
    encode: Option.getOrUndefined
  })
}
Referenced by 1 symbols