@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
subscribedAtstamp. - 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