function / @typed/fx/RefStruct

make

Creates a new RefStruct from a struct, Effect, or Fx.

Package version
2.0.0-beta.7
Category
Constructors
Since
1.18.0

Import

import { make } from "@typed/fx/RefStruct";

Signatures

export declare function make<S extends object, E = never, R = never>(initial: S | Effect.Effect<S, E, R> | Fx.Fx<S, E, R>, eq?: Equivalence<S>): Effect.Effect<RefStruct<S, E>, never, R | Scope.Scope>;

Why

Creates struct state with equality suited to that Effect data type, so unchanged values do not produce redundant pushed updates.

Ownership and lifetime

The creation Effect requires Scope. It owns initializer acquisition, live source subscriptions, and cleanup; source failures and services stay on reads and pushes.

Examples

import { Effect } from "effect"
import * as RefStruct from "@typed/fx/RefStruct"

const program = Effect.gen(function* () {
  const value = yield* RefStruct.make({ name: "John", age: 30 })
  const current = yield* value
  console.log(current) // { name: "John", age: 30 }
})

Other public imports

These import paths expose the same declaration. Each page retains its own public name and signature.

Source