Skip to content

Scope

15 exports Added in v2.0.0 Source

Constructors

make

Added in v2.0.0 Source

Creates a new closeable scope where finalizers will run according to the specified ExecutionStrategy. If no execution strategy is provided, sequential will be used by default.

Signature

declare const make: (
  executionStrategy?: ExecutionStrategy.ExecutionStrategy,
) => Effect.Effect<CloseableScope>;

Context

Scope

Added in v2.0.0 Source

A tag representing the current Scope in the environment.

Signature

declare const Scope: Tag<Scope, Scope>;

Destructors

close

Added in v2.0.0 Source

Closes this scope with the specified exit value, running all finalizers that have been added to the scope.

Signature

declare const close: (
  self: CloseableScope,
  exit: Exit.Exit<unknown, unknown>,
) => Effect.Effect<void>;

use

Added in v2.0.0 Source

Provides this closeable scope to an Effect that requires a scope, guaranteeing that the scope is closed with the result of that effect as soon as the effect completes execution, whether by success, failure, or interruption.

Signature

declare const use: {
  (scope: CloseableScope): <A, E, R>(effect: Effect<A, E, R>) => Effect<A, E, Exclude<R, Scope>>;
  <A, E, R>(effect: Effect<A, E, R>, scope: CloseableScope): Effect<A, E, Exclude<R, Scope>>;
};

Models

CloseableScope interface

Added in v2.0.0 Source

A scope that can be explicitly closed with a specified exit value.

Signature

interface CloseableScope extends Scope, Pipeable {
  readonly [CloseableScopeTypeId]: typeof CloseableScopeTypeId;
}

Scope interface

Added in v2.0.0 Source

Represents a scope that manages finalizers and can fork child scopes.

Signature

interface Scope extends Pipeable {
  readonly [ScopeTypeId]: typeof ScopeTypeId;
  readonly strategy: ExecutionStrategy;
}

Other

Scope

Added in v2.0.0 Source

Symbols

A unique identifier for the CloseableScope type.

Signature

declare const CloseableScopeTypeId: unique symbol;

CloseableScopeTypeId type

Added in v2.0.0 Source

The type of the unique identifier for CloseableScope.

Signature

type CloseableScopeTypeId = typeof CloseableScopeTypeId;

ScopeTypeId

Added in v2.0.0 Source

A unique identifier for the Scope type.

Signature

declare const ScopeTypeId: unique symbol;

ScopeTypeId type

Added in v2.0.0 Source

The type of the unique identifier for Scope.

Signature

type ScopeTypeId = typeof ScopeTypeId;

Utils

addFinalizer

Added in v2.0.0 Source

Adds a finalizer to this scope. The finalizer is guaranteed to be run when the scope is closed. Use this when the finalizer does not need to know the Exit value that the scope is closed with.

See

Signature

declare const addFinalizer: (self: Scope, finalizer: Effect.Effect<unknown>) => Effect.Effect<void>;

Adds a finalizer to this scope. The finalizer receives the Exit value when the scope is closed, allowing it to perform different actions based on the exit status.

See

Signature

declare const addFinalizerExit: (self: Scope, finalizer: Scope.Finalizer) => Effect.Effect<void>;

extend

Added in v2.0.0 Source

Extends the scope of an Effect that requires a scope into this scope. It provides this scope to the effect but does not close the scope when the effect completes execution. This allows extending a scoped value into a larger scope.

Signature

declare const extend: {
  (scope: Scope): <A, E, R>(effect: Effect<A, E, R>) => Effect<A, E, Exclude<R, Scope>>;
  <A, E, R>(effect: Effect<A, E, R>, scope: Scope): Effect<A, E, Exclude<R, Scope>>;
};

fork

Added in v2.0.0 Source

Forks a new child scope with the specified execution strategy. The child scope will automatically be closed when this scope is closed.

Signature

declare const fork: (
  self: Scope,
  strategy: ExecutionStrategy.ExecutionStrategy,
) => Effect.Effect<CloseableScope>;