Resource.ts overview
Since v2.0.0
Exports Grouped by Category
constructors
auto
Creates a new Resource
value that is automatically refreshed according to the specified policy. Note that error retrying is not performed automatically, so if you want to retry on errors, you should first apply retry policies to the acquisition effect before passing it to this constructor.
Signature
declare const auto: <A, E, R, Out, R2>(
acquire: Effect.Effect<A, E, R>,
policy: Schedule.Schedule<Out, unknown, R2>
) => Effect.Effect<Resource<A, E>, never, R | R2 | Scope.Scope>
Since v2.0.0
manual
Creates a new Resource
value that must be manually refreshed by calling the refresh method. Note that error retrying is not performed automatically, so if you want to retry on errors, you should first apply retry policies to the acquisition effect before passing it to this constructor.
Signature
declare const manual: <A, E, R>(
acquire: Effect.Effect<A, E, R>
) => Effect.Effect<Resource<A, E>, never, Scope.Scope | R>
Since v2.0.0
getters
get
Retrieves the current value stored in the cache.
Signature
declare const get: <A, E>(self: Resource<A, E>) => Effect.Effect<A, E>
Since v2.0.0
models
Resource (interface)
A Resource
is a possibly resourceful value that is loaded into memory, and which can be refreshed either manually or automatically.
Signature
export interface Resource<in out A, in out E = never> extends Effect.Effect<A, E>, Resource.Variance<A, E> {
/** @internal */
readonly scopedRef: ScopedRef.ScopedRef<Exit.Exit<A, E>>
/** @internal */
readonly acquire: Effect.Effect<A, E, Scope.Scope>
readonly [Unify.typeSymbol]?: unknown
readonly [Unify.unifySymbol]?: ResourceUnify<this>
readonly [Unify.ignoreSymbol]?: ResourceUnifyIgnore
}
Since v2.0.0
ResourceUnify (interface)
Signature
export interface ResourceUnify<A extends { [Unify.typeSymbol]?: any }> extends Effect.EffectUnify<A> {
Resource?: () => Extract<A[Unify.typeSymbol], Resource<any, any>>
}
Since v3.9.0
ResourceUnifyIgnore (interface)
Signature
export interface ResourceUnifyIgnore extends Effect.EffectUnifyIgnore {
Effect?: true
}
Since v3.9.0
symbols
ResourceTypeId
Signature
declare const ResourceTypeId: unique symbol
Since v2.0.0
ResourceTypeId (type alias)
Signature
type ResourceTypeId = typeof ResourceTypeId
Since v2.0.0
utils
Resource (namespace)
Since v2.0.0
Variance (interface)
Signature
export interface Variance<in out A, in out E> {
readonly [ResourceTypeId]: {
_A: Types.Invariant<A>
_E: Types.Invariant<E>
}
}
Since v2.0.0
refresh
Refreshes the cache. This method will not return until either the refresh is successful, or the refresh operation fails.
Signature
declare const refresh: <A, E>(self: Resource<A, E>) => Effect.Effect<void, E>
Since v2.0.0