moderator-toolbox-nxg-for-reddit / util/data/pubsub

util/data/pubsub

Functions

createEmitter()

createEmitter<Arg>(): Emitter<Arg>

Defined in: extension/data/util/data/pubsub.ts:29

Creates a global event emitter — a single listener set with subscribe/emit. Use for page-wide signals (no per-key scoping). Listeners are snapshotted on dispatch so one that unsubscribes mid-emit can’t mutate the set being iterated.

Type Parameters

Arg

Arg = void

Returns

Emitter<Arg>


createKeyedStore()

createKeyedStore<T>(): KeyedStore<T>

Defined in: extension/data/util/data/pubsub.ts:70

Creates a per-key value store: each key holds its latest value and its own listener set, so a publish to one key only wakes that key’s subscribers.

Type Parameters

T

T

Returns

KeyedStore<T>

Interfaces

Emitter

Defined in: extension/data/util/data/pubsub.ts:10

A subscribable event source carrying an argument of type Arg (defaults to none).

Type Parameters

Arg

Arg = void

Methods

emit()

emit(arg): void

Defined in: extension/data/util/data/pubsub.ts:21

Notifies every current subscriber.

Parameters
arg

Arg

The value passed to each listener.

Returns

void

subscribe()

subscribe(listener): () => void

Defined in: extension/data/util/data/pubsub.ts:16

Registers a listener.

Parameters
listener

(arg) => void

Called on every Emitter.emit.

Returns

An unsubscribe function.

() => void


KeyedStore

Defined in: extension/data/util/data/pubsub.ts:45

A per-key value store: holds the latest value per key and notifies that key’s subscribers.

Type Parameters

T

T

Methods

get()

get(key): T | undefined

Defined in: extension/data/util/data/pubsub.ts:50

Returns the latest published value for a key, or undefined if none has been published.

Parameters
key

string

The key to read.

Returns

T | undefined

publish()

publish(key, value): void

Defined in: extension/data/util/data/pubsub.ts:56

Stores a value for a key and notifies that key’s subscribers.

Parameters
key

string

The key to update.

value

T

The new value (passed to each listener).

Returns

void

subscribe()

subscribe(key, listener): () => void

Defined in: extension/data/util/data/pubsub.ts:63

Subscribes to value changes for a single key.

Parameters
key

string

The key to watch.

listener

(value) => void

Called with the new value on every KeyedStore.publish for that key.

Returns

An unsubscribe function.

() => void