function / @typed/fx

Versioned.make

Creates a Versioned value from its components.

Package version
2.0.0-beta.7
Category
Constructors
Since
1.0.0
Member of
Versioned

Import

import { Versioned } from "@typed/fx";

Access Versioned.make through the imported Versioned export. Its declaration below describes the member.

This public exposure is a re-export. Its import path is supported; declaration documentation is shared with the other public exposures below.

Signatures

export declare function make<R1, E1, A2, E2, R2, A3, E3, R3>(version: Effect.Effect<number, E1, R1>, fx: Fx.Fx<A2, E2, R2>, effect: Effect.Effect<A3, E3, R3>): Versioned<R1, E1, A2, E2, R2, A3, E3, R3>;

Why

Builds one Versioned value from independently typed version, update, and current-value channels instead of forcing them into one error or environment type.

Ownership and lifetime

Construction is lazy with respect to the Fx channel. Current reads share in-flight work until interrupt is run; each component retains its declared errors and services.

Examples

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

const status = Versioned.make(
  Effect.succeed(1),
  Fx.succeed("ready"),
  Effect.succeed("ready")
)

const snapshot = Effect.all({ value: status, version: status.version })

Other public imports

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

Source