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.