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