Skip to content
Effect Days 2026 Get your ticket

FiberRef

52 exports Added in v2.0.0 Source

Constructors

make

Added in v2.0.0 Source

Signature

declare const make: <A>(initial: A, options?: {
readonly fork?: (a: A) => A;
readonly join?: (left: A, right: A) => A;
}) => Effect.Effect<FiberRef<A>, never, Scope.Scope>

makeContext

Added in v2.0.0 Source

Signature

declare const makeContext: <A>(initial: Context.Context<A>) => Effect.Effect<FiberRef<Context.Context<A>>, never, Scope.Scope>

Signature

declare const makeRuntimeFlags: (initial: RuntimeFlags.RuntimeFlags) => Effect.Effect<FiberRef<RuntimeFlags.RuntimeFlags>, never, Scope.Scope>

makeWith

Added in v2.0.0 Source

Signature

declare const makeWith: <Value>(ref: LazyArg<FiberRef<Value>>) => Effect.Effect<FiberRef<Value>, never, Scope.Scope>

unsafeMake

Added in v2.0.0 Source

Signature

declare const unsafeMake: <Value>(initial: Value, options?: {
readonly fork?: (a: Value) => Value;
readonly join?: (left: Value, right: Value) => Value;
}) => FiberRef<Value>

Signature

declare const unsafeMakeContext: <A>(initial: Context.Context<A>) => FiberRef<Context.Context<A>>

Signature

declare const unsafeMakeHashSet: <A>(initial: HashSet.HashSet<A>) => FiberRef<HashSet.HashSet<A>>

Signature

declare const unsafeMakePatch: <Value, Patch>(initial: Value, options: {
readonly differ: Differ.Differ<Value, Patch>;
readonly fork: Patch;
readonly join?: (oldV: Value, newV: Value) => Value;
}) => FiberRef<Value>

Signature

declare const unsafeMakeSupervisor: (initial: Supervisor.Supervisor<any>) => FiberRef<Supervisor.Supervisor<any>>

FiberRefs

Signature

declare const currentConcurrency: FiberRef<number | "unbounded">

Signature

declare const currentContext: FiberRef<Context.Context<never>>

Signature

declare const currentLogAnnotations: FiberRef<HashMap.HashMap<string, unknown>>

Signature

declare const currentLoggers: FiberRef<HashSet.HashSet<Logger.Logger<unknown, any>>>

Signature

declare const currentLogLevel: FiberRef<LogLevel.LogLevel>

Signature

declare const currentLogSpan: FiberRef<List.List<LogSpan.LogSpan>>

Signature

declare const currentMaxOpsBeforeYield: FiberRef<number>

Signature

declare const currentMetricLabels: FiberRef<ReadonlyArray<MetricLabel.MetricLabel>>

Signature

declare const currentMinimumLogLevel: FiberRef<LogLevel.LogLevel>

Signature

declare const currentRequestBatchingEnabled: FiberRef<boolean>

Signature

declare const currentRequestCache: FiberRef<Request.Cache>

Signature

declare const currentRequestCacheEnabled: FiberRef<boolean>

Signature

declare const currentRuntimeFlags: FiberRef<RuntimeFlags.RuntimeFlags>

Signature

declare const currentScheduler: FiberRef<Scheduler.Scheduler>

Signature

declare const currentSchedulingPriority: FiberRef<number>

Signature

declare const currentSupervisor: FiberRef<Supervisor.Supervisor<any>>

Signature

declare const currentTracerEnabled: FiberRef<boolean>

Signature

declare const currentTracerSpanAnnotations: FiberRef<HashMap.HashMap<string, unknown>>

Signature

declare const currentTracerTimingEnabled: FiberRef<boolean>

Signature

declare const interruptedCause: FiberRef<Cause.Cause<never>>

Signature

declare const unhandledErrorLogLevel: FiberRef<Option.Option<LogLevel.LogLevel>>

Signature

declare const versionMismatchErrorLogLevel: FiberRef<Option.Option<LogLevel.LogLevel>>

Getters

get

Added in v2.0.0 Source

Signature

declare const get: <A>(self: FiberRef<A>) => Effect.Effect<A>

Model

FiberRef interface

Added in v2.0.0 Source

Signature

interface FiberRef<in out A> extends Effect<A>, Variance<A> {
readonly [ignoreSymbol]?: FiberRefUnifyIgnore;
readonly [typeSymbol]?: unknown;
readonly [unifySymbol]?: FiberRefUnify<FiberRef<A>>;
}

Models

FiberRefUnify interface

Added in v3.8.0 Source

Signature

interface FiberRefUnify<A extends {
[typeSymbol]?: any;
}> extends EffectUnify<A> {
FiberRef?: () => Extract<A[typeof typeSymbol], FiberRef<any>>;
}

FiberRefUnifyIgnore interface

Added in v3.8.0 Source

Signature

interface FiberRefUnifyIgnore extends EffectUnifyIgnore {
Effect?: true;
}

Variance interface

Added in v2.0.0 Source

Signature

interface Variance<in out A> {
readonly [FiberRefTypeId]: {
readonly _A: Invariant<A>;
};
}

Other

Signature

declare const delete: <A>(self: FiberRef<A>) => Effect.Effect<void>

Symbols

Signature

declare const FiberRefTypeId: unique symbol

FiberRefTypeId type

Added in v2.0.0 Source

Signature

type FiberRefTypeId = typeof FiberRefTypeId

Utils

getAndSet

Added in v2.0.0 Source

Signature

declare const getAndSet: {
<A>(value: A): (self: FiberRef<A>) => Effect<A>;
<A>(self: FiberRef<A>, value: A): Effect<A>;
}

getAndUpdate

Added in v2.0.0 Source

Signature

declare const getAndUpdate: {
<A>(f: (a: A) => A): (self: FiberRef<A>) => Effect<A>;
<A>(self: FiberRef<A>, f: (a: A) => A): Effect<A>;
}

Signature

declare const getAndUpdateSome: {
<A>(pf: (a: A) => Option<A>): (self: FiberRef<A>) => Effect<A>;
<A>(self: FiberRef<A>, pf: (a: A) => Option<A>): Effect<A>;
}

getWith

Added in v2.0.0 Source

Signature

declare const getWith: {
<A, B, E, R>(f: (a: A) => Effect<B, E, R>): (self: FiberRef<A>) => Effect<B, E, R>;
<A, B, E, R>(self: FiberRef<A>, f: (a: A) => Effect<B, E, R>): Effect<B, E, R>;
}

modify

Added in v2.0.0 Source

Signature

declare const modify: {
<A, B>(f: (a: A) => readonly [B, A]): (self: FiberRef<A>) => Effect<B>;
<A, B>(self: FiberRef<A>, f: (a: A) => readonly [B, A]): Effect<B>;
}

modifySome

Added in v2.0.0 Source

Signature

declare const modifySome: <A, B>(self: FiberRef<A>, def: B, f: (a: A) => Option.Option<readonly [B, A]>) => Effect.Effect<B>

reset

Added in v2.0.0 Source

Signature

declare const reset: <A>(self: FiberRef<A>) => Effect.Effect<void>

set

Added in v2.0.0 Source

Signature

declare const set: {
<A>(value: A): (self: FiberRef<A>) => Effect<void>;
<A>(self: FiberRef<A>, value: A): Effect<void>;
}

update

Added in v2.0.0 Source

Signature

declare const update: {
<A>(f: (a: A) => A): (self: FiberRef<A>) => Effect<void>;
<A>(self: FiberRef<A>, f: (a: A) => A): Effect<void>;
}

updateAndGet

Added in v2.0.0 Source

Signature

declare const updateAndGet: {
<A>(f: (a: A) => A): (self: FiberRef<A>) => Effect<A>;
<A>(self: FiberRef<A>, f: (a: A) => A): Effect<A>;
}

updateSome

Added in v2.0.0 Source

Signature

declare const updateSome: {
<A>(pf: (a: A) => Option<A>): (self: FiberRef<A>) => Effect<void>;
<A>(self: FiberRef<A>, pf: (a: A) => Option<A>): Effect<void>;
}

Signature

declare const updateSomeAndGet: {
<A>(pf: (a: A) => Option<A>): (self: FiberRef<A>) => Effect<A>;
<A>(self: FiberRef<A>, pf: (a: A) => Option<A>): Effect<A>;
}