Skip to content

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>;
};