<A, E>(self: Resource<A, E>): Effect.Effect<void, E>Re-runs this resource's acquisition effect and updates the current value.
When to use
Use to force an existing Resource to reacquire its value at a
caller-controlled point.
Details
When acquisition succeeds, refreshing replaces the value stored in the resource's scoped reference and releases resources associated with the previous value.
Gotchas
If acquisition fails, the returned effect fails and the previously stored
result is left as what get reads.
export const const refresh: <A, E>(
self: Resource<A, E>
) => Effect.Effect<void, E>
Re-runs this resource's acquisition effect and updates the current value.
When to use
Use to force an existing Resource to reacquire its value at a
caller-controlled point.
Details
When acquisition succeeds, refreshing replaces the value stored in the
resource's scoped reference and releases resources associated with the
previous value.
Gotchas
If acquisition fails, the returned effect fails and the previously stored
result is left as what get reads.
refresh = <function (type parameter) A in <A, E>(self: Resource<A, E>): Effect.Effect<void, E>A, function (type parameter) E in <A, E>(self: Resource<A, E>): Effect.Effect<void, E>E>(self: Resource<A, E>(parameter) self: {
scopedRef: ScopedRef.ScopedRef<Exit.Exit<A, E>>;
acquire: Effect.Effect<A, E>;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
}
self: interface Resource<in out A, in out E = never>A Resource is a value loaded into memory that can be refreshed manually or
automatically according to a schedule.
When to use
Use to model a scoped value whose latest acquisition result is kept available
for repeated reads and can be refreshed manually or on a schedule.
Resource<function (type parameter) A in <A, E>(self: Resource<A, E>): Effect.Effect<void, E>A, function (type parameter) E in <A, E>(self: Resource<A, E>): Effect.Effect<void, E>E>): import EffectEffect.type Effect.Effect = /*unresolved*/ anyEffect<void, function (type parameter) E in <A, E>(self: Resource<A, E>): Effect.Effect<void, E>E> =>
import ScopedRefScopedRef.const set: {
<A, R, E>(acquire: Effect.Effect<A, E, R>): (
self: ScopedRef<A>
) => Effect.Effect<
void,
E,
Exclude<R, Scope.Scope>
>
<A, R, E>(
self: ScopedRef<A>,
acquire: Effect.Effect<A, E, R>
): Effect.Effect<
void,
E,
Exclude<R, Scope.Scope>
>
}
set(self: Resource<A, E>(parameter) self: {
scopedRef: ScopedRef.ScopedRef<Exit.Exit<A, E>>;
acquire: Effect.Effect<A, E>;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
}
self.Resource<in out A, in out E = never>.scopedRef: ScopedRef.ScopedRef<Exit.Exit<A, E>>(property) Resource<in out A, in out E = never>.scopedRef: {
backing: Synchronized.SynchronizedRef<readonly [Scope.Closeable, A]>;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
}
scopedRef, import EffectEffect.map(self: Resource<A, E>(parameter) self: {
scopedRef: ScopedRef.ScopedRef<Exit.Exit<A, E>>;
acquire: Effect.Effect<A, E>;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
}
self.Resource<in out A, in out E = never>.acquire: Effect.Effect<A, E>(property) Resource<in out A, in out E = never>.acquire: {
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
toString: () => string;
toJSON: () => unknown;
}
acquire, import ExitExit.succeed))