Hyperlinkv0.8.0-beta.28

Channel

Channel.runIntoPubSubArrayconsteffect/Channel.ts:8521
<OutElem>(
  pubsub: PubSub.PubSub<OutElem>,
  options?: { readonly shutdownOnEnd?: boolean | undefined } | undefined
): <OutErr, OutDone, Env>(
  self: Channel<
    Arr.NonEmptyReadonlyArray<OutElem>,
    OutErr,
    OutDone,
    unknown,
    unknown,
    unknown,
    Env
  >
) => Effect.Effect<OutDone, OutErr, Env>
<OutElem, OutErr, OutDone, Env>(
  self: Channel<
    Arr.NonEmptyReadonlyArray<OutElem>,
    OutErr,
    OutDone,
    unknown,
    unknown,
    unknown,
    Env
  >,
  pubsub: PubSub.PubSub<OutElem>,
  options?: { readonly shutdownOnEnd?: boolean | undefined } | undefined
): Effect.Effect<OutDone, OutErr, Env>

Runs an array-emitting channel and publishes each array element to a PubSub.

Details

Each element inside emitted non-empty arrays is published as an individual PubSub message. Use options.shutdownOnEnd to shut down the PubSub when channel execution ends.

destructors
Source effect/Channel.ts:852129 lines
export const runIntoPubSubArray: {
  <OutElem>(
    pubsub: PubSub.PubSub<OutElem>,
    options?: {
      readonly shutdownOnEnd?: boolean | undefined
    } | undefined
  ): <OutErr, OutDone, Env>(
    self: Channel<Arr.NonEmptyReadonlyArray<OutElem>, OutErr, OutDone, unknown, unknown, unknown, Env>
  ) => Effect.Effect<OutDone, OutErr, Env>
  <OutElem, OutErr, OutDone, Env>(
    self: Channel<Arr.NonEmptyReadonlyArray<OutElem>, OutErr, OutDone, unknown, unknown, unknown, Env>,
    pubsub: PubSub.PubSub<OutElem>,
    options?: {
      readonly shutdownOnEnd?: boolean | undefined
    } | undefined
  ): Effect.Effect<OutDone, OutErr, Env>
} = dual(
  (args) => isChannel(args[0]),
  <OutElem, OutErr, OutDone, Env>(
    self: Channel<Arr.NonEmptyReadonlyArray<OutElem>, OutErr, OutDone, unknown, unknown, unknown, Env>,
    pubsub: PubSub.PubSub<OutElem>,
    options?: {
      readonly shutdownOnEnd?: boolean | undefined
    } | undefined
  ) =>
    runForEach(self, (value) => PubSub.publishAll(pubsub, value)).pipe(
      options?.shutdownOnEnd === true ? Effect.ensuring(PubSub.shutdown(pubsub)) : identity_
    )
)
Referenced by 2 symbols