Hyperlinkv0.8.0-beta.28

Schema

Schema.fieldsAssignfunctioneffect/Schema.ts:3492
<const NewFields extends Struct.Fields>(
  fields: NewFields
): fieldsAssign<NewFields>

Adds fields to a struct schema through a struct-mapping lambda.

When to use

Use to add the same fields to an existing struct or every struct member of a union.

Details

This is a shortcut for MyStruct.mapFields(Struct.assign(fields)).

Example (Adding fields to a union of structs)

import { Schema, Tuple } from "effect"

// Add a new field to all members of a union of structs
const schema = Schema.Union([
  Schema.Struct({ a: Schema.String }),
  Schema.Struct({ b: Schema.Number })
]).mapMembers(Tuple.map(Schema.fieldsAssign({ c: Schema.Number })))
combinators
Source effect/Schema.ts:34923 lines
export function fieldsAssign<const NewFields extends Struct.Fields>(fields: NewFields) {
  return Struct_.lambda<fieldsAssign<NewFields>>((struct) => struct.mapFields(Struct_.assign(fields)))
}