softkave-js-utils
Version:
JavaScript & Typescript utility functions, types, and classes
14 lines (13 loc) • 496 B
TypeScript
import { AnyFn } from '../types.js';
export type ListenableResourceListener<T> = AnyFn<[T | undefined]>;
export declare class ListenableResource<T> {
protected data?: T;
protected listeners: Map<ListenableResourceListener<T>, ListenableResourceListener<T>>;
constructor(data?: T);
listen(fn: ListenableResourceListener<T>): void;
removeListener(fn: AnyFn): void;
clearListeners(): void;
get(): T | undefined;
set(data: T): void;
protected broadcast(): void;
}