Hyperlinkv0.8.0-beta.28

Sink

Sink.provideServiceconsteffect/Sink.ts:1986
<I, S>(key: Context.Key<I, S>, value: Types.NoInfer<S>): <A, In, L, E, R>(
  self: Sink<A, In, L, E, R>
) => Sink<A, In, L, E, Exclude<R, I>>
<A, In, L, E, R, I, S>(
  self: Sink<A, In, L, E, R>,
  key: Context.Key<I, S>,
  value: Types.NoInfer<S>
): Sink<A, In, L, E, Exclude<R, I>>

Provides a single service implementation to this sink.

Details

The service identified by key is removed from the sink's service requirements.

services
Source effect/Sink.ts:198620 lines
export const provideService: {
  <I, S>(
    key: Context.Key<I, S>,
    value: Types.NoInfer<S>
  ): <A, In, L, E, R>(self: Sink<A, In, L, E, R>) => Sink<A, In, L, E, Exclude<R, I>>
  <A, In, L, E, R, I, S>(
    self: Sink<A, In, L, E, R>,
    key: Context.Key<I, S>,
    value: Types.NoInfer<S>
  ): Sink<A, In, L, E, Exclude<R, I>>
} = dual(3, <A, In, L, E, R, I, S>(
  self: Sink<A, In, L, E, R>,
  key: Context.Key<I, S>,
  value: Types.NoInfer<S>
): Sink<A, In, L, E, Exclude<R, I>> =>
  fromTransform((upstream, scope) =>
    self.transform(upstream, scope).pipe(
      Effect.provideService(key, value)
    )
  ))