UNPKG

starboard-notebook

Version:

Starboard Notebook

34 lines (33 loc) 1.2 kB
export declare type RegistryEventType = "register" | "deregister"; export declare type RegistryEvent<S, T> = { type: RegistryEventType; key: S; value: T; }; export declare type MapRegistryListenerFunction<S, T> = (event: RegistryEvent<S, T>) => void; /** * A registry here is just a wrapper around a Map. It has a register function that calls set, * but also emits an event for internal use. */ export declare class MapRegistry<S, T> { protected map: Map<S, T>; private handlers; subscribe(handler: MapRegistryListenerFunction<S, T>): void; unsubscribe(handler: MapRegistryListenerFunction<S, T>): void; private notifyHandlers; get(key: S): T | undefined; /** * This does *not* trigger a register event, so cells already present with this cell type will not switch automatically. * Use register instead. */ set(key: S | Array<S>, value: T): void; has(key: S): boolean; keys(): IterableIterator<S>; values(): IterableIterator<T>; register(key: S | Array<S>, value: T): void; deregister(key: S): false | undefined; /** * Get the underlying Map */ getMap(): Map<S, T>; }