Hyperlinkv0.8.0-beta.28

SchemaGetter

SchemaGetter.transformfunctioneffect/SchemaGetter.ts:500
<T, E>(f: (e: E) => T): Getter<T, E>

Creates a getter that applies a pure function to present values.

When to use

Use when you need a schema getter for a pure, infallible transformation between types.

  • Building encode/decode pairs for Schema.decodeTo.

Details

  • This is the most commonly used constructor.
  • Transforms Some(e) to Some(f(e)) and leaves None unchanged.
  • Skips None inputs — only called when a value is present.
  • Never fails.

Example (Transforming strings to numbers)

import { Schema, SchemaGetter } from "effect"

const NumberFromString = Schema.String.pipe(
  Schema.decodeTo(Schema.Number, {
    decode: SchemaGetter.transform((s) => Number(s)),
    encode: SchemaGetter.transform((n) => String(n))
  })
)
export function transform<T, E>(f: (e: E) => T): Getter<T, E> {
  return transformOptional(Option.map(f))
}
Referenced by 35 symbols