Hyperlinkv0.8.0-beta.28

Sink

Sink.ensuringconsteffect/Sink.ts:2163
<X, E2, R2>(effect: Effect.Effect<X, E2, R2>): <A, E, In, L, R>(
  self: Sink<A, In, L, E, R>
) => Sink<A, In, L, E | E2, R2 | R>
<A, In, L, E, R, X, E2, R2>(
  self: Sink<A, In, L, E, R>,
  effect: Effect.Effect<X, E2, R2>
): Sink<A, In, L, E | E2, R | R2>

Runs a finalizer effect after this sink completes, fails, or is interrupted.

Details

The original sink result and leftovers are preserved unless the finalizer itself fails.

Finalization
Source effect/Sink.ts:216312 lines
export const ensuring: {
  <X, E2, R2>(
    effect: Effect.Effect<X, E2, R2>
  ): <A, E, In, L, R>(self: Sink<A, In, L, E, R>) => Sink<A, In, L, E | E2, R2 | R>
  <A, In, L, E, R, X, E2, R2>(
    self: Sink<A, In, L, E, R>,
    effect: Effect.Effect<X, E2, R2>
  ): Sink<A, In, L, E | E2, R | R2>
} = dual(2, <A, In, L, E, R, X, E2, R2>(
  self: Sink<A, In, L, E, R>,
  effect: Effect.Effect<X, E2, R2>
): Sink<A, In, L, E | E2, R | R2> => onExit(self, () => effect))