Scope
Constructors
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
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 symbolCloseableScopeTypeId type
The type of the unique identifier for CloseableScope.
Signature
type CloseableScopeTypeId = typeof CloseableScopeTypeIdScopeTypeId
A unique identifier for the Scope type.
Signature
declare const ScopeTypeId: unique symbolScopeTypeId type
The type of the unique identifier for Scope.
Signature
type ScopeTypeId = typeof ScopeTypeIdUtils
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>