Hyperlinkv0.8.0-beta.28

Resource

Resource.manualconsteffect/Resource.ts:99
<A, E, R>(acquire: Effect.Effect<A, E, R>): Effect.Effect<
  Resource<A, E>,
  never,
  Scope.Scope | R
>

Creates a Resource that must be refreshed manually.

When to use

Use when you need manual control over resource refresh timing rather than an automatic schedule.

constructorsautorefresh
Source effect/Resource.ts:9913 lines
export const manual = <A, E, R>(
  acquire: Effect.Effect<A, E, R>
): Effect.Effect<Resource<A, E>, never, Scope.Scope | R> =>
  Effect.contextWith((context: Context.Context<R>) => {
    const providedAcquire = Effect.updateContext(
      acquire,
      (input: Context.Context<never>) => Context.merge(context, input)
    )
    return Effect.map(
      ScopedRef.fromAcquire(Effect.exit(providedAcquire)),
      (scopedRef) => makeUnsafe(scopedRef, providedAcquire)
    )
  })
Referenced by 1 symbols