Skip to content

@epikodelabs/streamix


@epikodelabs/streamix / createRegister

Function: createRegister()

createRegister<T>(opts): (receiver, paused) => Subscription

Defined in: projects/libraries/streamix/src/lib/subjects/helpers.ts:154

Creates a register(receiver) function for Subjects.

The returned function:

  • Adds a receiver to the subject's delivery sets.
  • Ensures new subscriptions do not receive already-queued emissions by tracking a subscribedAt stamp.
  • Integrates with the subject's terminal state so late subscribers are immediately completed/errored.
  • Ensures unsubscribe() stops future deliveries synchronously, while the receiver completion is still scheduled via the subscription hook.

This is an internal building block used by different Subject variants to keep subscription semantics consistent.

Type Parameters

T

T

Value type.

Parameters

opts

Shared subject state and helpers.

receivers

Set<StrictReceiver<T>>

ready

Set<StrictReceiver<T>>

terminalRef

{ current: null | QueueItem<T>; }

terminalRef.current

null | QueueItem<T>

createSubscription

(onUnsubscribe?) => Subscription

tryCommit

() => void

Returns

A registration function that returns a Subscription.

(receiver, paused): Subscription

Parameters

receiver

Receiver<T>

paused

boolean = false

Returns

Subscription

Released under the MIT License.