Skip to main content Link Search Menu Expand Document (external link)

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>

Source

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>

Source

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>

Source

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
}

Source

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

Source

Since v3.9.0

ResourceUnifyIgnore (interface)

Signature

export interface ResourceUnifyIgnore extends Effect.EffectUnifyIgnore {
  Effect?: true
}

Source

Since v3.9.0

symbols

ResourceTypeId

Signature

declare const ResourceTypeId: unique symbol

Source

Since v2.0.0

ResourceTypeId (type alias)

Signature

type ResourceTypeId = typeof ResourceTypeId

Source

Since v2.0.0

utils

Resource (namespace)

Source

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

Source

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>

Source

Since v2.0.0