Scope
Constructors
Context
Destructors
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>;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
A scope that can be explicitly closed with a specified exit value.
Signature
interface CloseableScope extends Scope, Pipeable {
readonly [CloseableScopeTypeId]: typeof CloseableScopeTypeId;
}Represents a scope that manages finalizers and can fork child scopes.
Signature
interface Scope extends Pipeable {
readonly [ScopeTypeId]: typeof ScopeTypeId;
readonly strategy: ExecutionStrategy;
}Other
Symbols
CloseableScopeTypeId
A unique identifier for the CloseableScope type.
Signature
declare const CloseableScopeTypeId: unique symbol;CloseableScopeTypeId type
The type of the unique identifier for CloseableScope.
Signature
type CloseableScopeTypeId = typeof CloseableScopeTypeId;ScopeTypeId
A unique identifier for the Scope type.
Signature
declare const ScopeTypeId: unique symbol;ScopeTypeId type
The type of the unique identifier for Scope.
Signature
type ScopeTypeId = typeof ScopeTypeId;Utils
addFinalizer
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>;addFinalizerExit
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>;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>>;
};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>;
Creates a new closeable scope where finalizers will run according to the specified
ExecutionStrategy. If no execution strategy is provided,sequentialwill be used by default.