soundcraft-ui-connection
Version:
Library for controlling the Soundcraft Ui series audio mixers
17 lines (16 loc) • 679 B
TypeScript
/**
* Store for facade objects
* This is used to cache channels and others so that they don't need to be recreated all the time.
* This is just a wrapper around a "Map" object, but we like to keep it abstract.
*/
export declare class ObjectStore {
private store;
get<T>(id: string): T;
set(id: string, value: unknown): void;
/**
* Return the cached object for the given id or create it (and cache it) using the factory.
* Caching lives in the accessor methods of the facades, so that constructors always
* run exactly once and never re-run their side effects on a cached instance.
*/
getOrCreate<T>(id: string, factory: () => T): T;
}