Skip to main content

Class: MappedSubject<I, T>

Defined in: src/sdk/sub/MappedSubject.ts:22

A subscribable subject that is a mapped stream from one or more input subscribables.

Extends​

Type Parameters​

Type Parameter
I extends any[]
T

Implements​

Properties​

canInitialNotify​

readonly canInitialNotify: true = true

Defined in: src/sdk/sub/MappedSubject.ts:27

Whether this subscription supports initial notifications on resume.

Implementation of​

MappedSubscribable.canInitialNotify


initialNotifyFunc()​

protected readonly initialNotifyFunc: (sub) => void

Defined in: src/sdk/sub/AbstractSubscribable.ts:26

A function which sends initial notifications to subscriptions.

Notifies a subscription of this subscribable's current state.

Parameters​

ParameterTypeDescription
subHandlerSubscription<(v) => void>The subscription to notify.

Returns​

void

Inherited from​

AbstractSubscribable.initialNotifyFunc


isSubscribable​

readonly isSubscribable: true = true

Defined in: src/sdk/sub/AbstractSubscribable.ts:10

Flags this object as a Subscribable.

Implementation of​

MappedSubscribable.isSubscribable

Inherited from​

AbstractSubscribable.isSubscribable


notifyDepth​

protected notifyDepth: number = 0

Defined in: src/sdk/sub/AbstractSubscribable.ts:23

Inherited from​

AbstractSubscribable.notifyDepth


onSubDestroyedFunc()​

protected readonly onSubDestroyedFunc: (sub) => void

Defined in: src/sdk/sub/AbstractSubscribable.ts:29

A function which responds to when a subscription to this subscribable is destroyed.

Responds to when a subscription to this subscribable is destroyed.

Parameters​

ParameterTypeDescription
subHandlerSubscription<(v) => void>The destroyed subscription.

Returns​

void

Inherited from​

AbstractSubscribable.onSubDestroyedFunc


singletonSub?​

protected optional singletonSub: HandlerSubscription<(v) => void>

Defined in: src/sdk/sub/AbstractSubscribable.ts:20

Inherited from​

AbstractSubscribable.singletonSub


subs?​

protected optional subs: HandlerSubscription<(v) => void>[]

Defined in: src/sdk/sub/AbstractSubscribable.ts:22

Inherited from​

AbstractSubscribable.subs

Accessors​

isAlive​

Get Signature​

get isAlive(): boolean

Defined in: src/sdk/sub/MappedSubject.ts:39

Whether the subscription to the parent subscribable is alive. While alive, this subscribable will update its state based on its parent's state, unless it is paused. Once dead, this subscribable will no longer update its state, and cannot be resumed again.

Returns​

boolean

Whether the subscription to the parent subscribable is alive. While alive, this subscribable will update its state based on its parent's state, unless it is paused. Once dead, this subscribable will no longer update its state, and cannot be resumed again.

Implementation of​

MappedSubscribable.isAlive


isPaused​

Get Signature​

get isPaused(): boolean

Defined in: src/sdk/sub/MappedSubject.ts:45

Whether the subscription to the parent subscribable is paused. While paused, this subscribable will not update its state until it is resumed.

Returns​

boolean

Whether the subscription to the parent subscribable is paused. While paused, this subscribable will not update its state until it is resumed.

Implementation of​

MappedSubscribable.isPaused

Methods​

addSubscription()​

protected addSubscription(sub): void

Defined in: src/sdk/sub/AbstractSubscribable.ts:35

Adds a subscription to this subscribable.

Parameters​

ParameterTypeDescription
subHandlerSubscription<(v) => void>The subscription to add.

Returns​

void

Inherited from​

AbstractSubscribable.addSubscription


destroy()​

destroy(): void

Defined in: src/sdk/sub/MappedSubject.ts:216

Destroys the subscription to the parent subscribable.

Returns​

void

Implementation of​

MappedSubscribable.destroy


get()​

get(): T

Defined in: src/sdk/sub/MappedSubject.ts:170

Gets this item's state.

Returns​

T

This item's state.

Implementation of​

MappedSubscribable.get

Overrides​

AbstractSubscribable.get


map()​

Call Signature​

map<M>(fn, equalityFunc?): MappedSubscribable<M>

Defined in: src/sdk/sub/AbstractSubscribable.ts:186

Maps this subscribable to a new subscribable.

Type Parameters​
Type Parameter
M
Parameters​
ParameterTypeDescription
fn(input, previousVal?) => MThe function to use to map to the new subscribable.
equalityFunc?(a, b) => booleanThe function to use to check for equality between mapped values. Defaults to the strict equality comparison (===).
Returns​

MappedSubscribable<M>

The mapped subscribable.

Implementation of​

MappedSubscribable.map

Inherited from​

AbstractSubscribable.map

Call Signature​

map<M>(fn, equalityFunc, mutateFunc, initialVal): MappedSubscribable<M>

Defined in: src/sdk/sub/AbstractSubscribable.ts:195

Maps this subscribable to a new subscribable with a persistent, cached value which is mutated when it changes.

Type Parameters​
Type Parameter
M
Parameters​
ParameterTypeDescription
fn(input, previousVal?) => MThe function to use to map to the new subscribable.
equalityFunc(a, b) => booleanThe function to use to check for equality between mapped values.
mutateFunc(oldVal, newVal) => voidThe function to use to change the value of the mapped subscribable.
initialValMThe initial value of the mapped subscribable.
Returns​

MappedSubscribable<M>

The mapped subscribable.

Implementation of​

MappedSubscribable.map

Inherited from​

AbstractSubscribable.map


notify()​

protected notify(): void

Defined in: src/sdk/sub/AbstractSubscribable.ts:80

Notifies subscriptions that this subscribable's value has changed.

Returns​

void

Inherited from​

AbstractSubscribable.notify


notifySubscription()​

protected notifySubscription(sub): void

Defined in: src/sdk/sub/AbstractSubscribable.ts:156

Notifies a subscription of this subscribable's current state.

Parameters​

ParameterTypeDescription
subHandlerSubscription<(v) => void>The subscription to notify.

Returns​

void

Inherited from​

AbstractSubscribable.notifySubscription


onSubDestroyed()​

protected onSubDestroyed(sub): void

Defined in: src/sdk/sub/AbstractSubscribable.ts:164

Responds to when a subscription to this subscribable is destroyed.

Parameters​

ParameterTypeDescription
subHandlerSubscription<(v) => void>The destroyed subscription.

Returns​

void

Inherited from​

AbstractSubscribable.onSubDestroyed


pause()​

pause(): this

Defined in: src/sdk/sub/MappedSubject.ts:175

Pauses the subscription to the parent subscribable. Once paused, this subscribable will not update its state until it is resumed.

Returns​

this

This subscribable, after it has been paused.

Throws​

Error if the subscription to the parent subscribable is not alive.

Implementation of​

MappedSubscribable.pause


pipe()​

Call Signature​

pipe(to, paused?): Subscription

Defined in: src/sdk/sub/AbstractSubscribable.ts:219

Subscribes to and pipes this subscribable's state to a mutable subscribable. Whenever an update of this subscribable's state is received through the subscription, it will be used as an input to change the other subscribable's state.

Parameters​
ParameterTypeDescription
toMutableSubscribable<any, T>The mutable subscribable to which to pipe this subscribable's state.
paused?booleanWhether the new subscription should be initialized as paused. Defaults to false.
Returns​

Subscription

The new subscription.

Implementation of​

MappedSubscribable.pipe

Inherited from​

AbstractSubscribable.pipe

Call Signature​

pipe<M>(to, map, paused?): Subscription

Defined in: src/sdk/sub/AbstractSubscribable.ts:229

Subscribes to this subscribable's state and pipes a mapped version to a mutable subscribable. Whenever an update of this subscribable's state is received through the subscription, it will be transformed by the specified mapping function, and the transformed state will be used as an input to change the other subscribable's state.

Type Parameters​
Type Parameter
M
Parameters​
ParameterTypeDescription
toMutableSubscribable<any, M>The mutable subscribable to which to pipe this subscribable's mapped state.
map(fromVal, toVal) => MThe function to use to transform inputs.
paused?booleanWhether the new subscription should be initialized as paused. Defaults to false.
Returns​

Subscription

The new subscription.

Implementation of​

MappedSubscribable.pipe

Inherited from​

AbstractSubscribable.pipe


resume()​

resume(): this

Defined in: src/sdk/sub/MappedSubject.ts:194

Resumes the subscription to the parent subscribable. Once resumed, this subscribable will immediately begin to update its state based its parent's state.

Any initialNotify argument passed to this method is ignored. This subscribable is always immediately notified of its parent's state when resumed.

Returns​

this

This subscribable, after it has been resumed.

Throws​

Error if the subscription to the parent subscribable is not alive.

Implementation of​

MappedSubscribable.resume


sub()​

sub(handler, initialNotify, paused): Subscription

Defined in: src/sdk/sub/AbstractSubscribable.ts:50

Subscribes to changes in this subscribable's state.

Parameters​

ParameterTypeDefault valueDescription
handler(v) => voidundefinedA function which is called when this subscribable's state changes.
initialNotifybooleanfalseWhether to immediately invoke the callback function with this subscribable's current state. Defaults to false. This argument is ignored if the subscription is initialized as paused.
pausedbooleanfalseWhether the new subscription should be initialized as paused. Defaults to false.

Returns​

Subscription

The new subscription.

Implementation of​

MappedSubscribable.sub

Inherited from​

AbstractSubscribable.sub


unsub()​

unsub(handler): void

Defined in: src/sdk/sub/AbstractSubscribable.ts:65

Unsubscribes a callback function from this subscribable.

Parameters​

ParameterTypeDescription
handler(v) => voidThe function to unsubscribe.

Returns​

void

Deprecated​

This method has been deprecated in favor of using the Subscription object returned by .sub() to manage subscriptions.

Implementation of​

MappedSubscribable.unsub

Inherited from​

AbstractSubscribable.unsub


create()​

Call Signature​

static create<I>(...inputs): MappedSubject<I, Readonly<I>>

Defined in: src/sdk/sub/MappedSubject.ts:89

Creates a new mapped subject whose state is a combined tuple of an arbitrary number of input values.

Type Parameters​
Type Parameter
I extends any[]
Parameters​
ParameterTypeDescription
...inputsMappedSubscribableInputs<I>The subscribables which provide the inputs to the new subject.
Returns​

MappedSubject<I, Readonly<I>>

A new subject whose state is a combined tuple of the specified input values.

Call Signature​

static create<I, T>(mapFunc, ...inputs): MappedSubject<I, T>

Defined in: src/sdk/sub/MappedSubject.ts:97

Creates a new mapped subject. Values are compared for equality using the strict equality comparison (===).

Type Parameters​
Type Parameter
I extends any[]
T
Parameters​
ParameterTypeDescription
mapFunc(inputs, previousVal?) => TThe function to use to map inputs to the new subject value.
...inputsMappedSubscribableInputs<I>The subscribables which provide the inputs to the new subject.
Returns​

MappedSubject<I, T>

Call Signature​

static create<I, T>(mapFunc, equalityFunc, ...inputs): MappedSubject<I, T>

Defined in: src/sdk/sub/MappedSubject.ts:107

Creates a new mapped subject. Values are compared for equality using a custom function.

Type Parameters​
Type Parameter
I extends any[]
T
Parameters​
ParameterTypeDescription
mapFunc(inputs, previousVal?) => TThe function to use to map inputs to the new subject value.
equalityFunc(a, b) => booleanThe function which the new subject uses to check for equality between values.
...inputsMappedSubscribableInputs<I>The subscribables which provide the inputs to the new subject.
Returns​

MappedSubject<I, T>

Call Signature​

static create<I, T>(mapFunc, equalityFunc, mutateFunc, initialVal, ...inputs): MappedSubject<I, T>

Defined in: src/sdk/sub/MappedSubject.ts:121

Creates a new mapped subject with a persistent, cached value which is mutated when it changes. Values are compared for equality using a custom function.

Type Parameters​
Type Parameter
I extends any[]
T
Parameters​
ParameterTypeDescription
mapFunc(inputs, previousVal?) => TThe function to use to map inputs to the new subject value.
equalityFunc(a, b) => booleanThe function which the new subject uses to check for equality between values.
mutateFunc(oldVal, newVal) => voidThe function to use to change the value of the new subject.
initialValTThe initial value of the new subject.
...inputsMappedSubscribableInputs<I>The subscribables which provide the inputs to the new subject.
Returns​

MappedSubject<I, T>


DEFAULT_EQUALITY_FUNC()​

readonly static DEFAULT_EQUALITY_FUNC(a, b): boolean

Defined in: src/sdk/sub/AbstractSubscribable.ts:18

Checks if two values are equal using the strict equality operator.

Parameters​

ParameterTypeDescription
aanyThe first value.
banyThe second value.

Returns​

boolean

whether a and b are equal.

Inherited from​

AbstractSubscribable.DEFAULT_EQUALITY_FUNC