UNPKG

@clickup/ent-framework

Version:

A PostgreSQL graph-database-alike library with microsharding and row-level security

29 lines 1.27 kB
/** * Represents a container of TObj's that can be created in the container from * the TInit data. If the object corresponding to a particular init data already * exists, it's returned instead of being created. */ export declare class Registry<TInit, TObj> { private options; private map; constructor(options: { /** A handler which computes an unique key from the init data provided. */ key: (init: TInit) => string; /** A handler which creates a new object from its init data. */ create: (init: TInit) => TObj; /** This handler is called when an object is deleted from the registry. */ end?: (obj: TObj, key: string, init: TInit) => Promise<unknown>; }); /** * Computes the key for the init data and returns the object corresponding to * that key if it already exists in the registry. Otherwise, creates a new * object, adds it to the registry and returns it. */ getOrCreate(init: TInit): [obj: TObj, key: string]; /** * Deletes all objects from the registry except those whose keys are in the * keepKeys set. For each object, calls an optional end() handler. */ deleteExcept(keepKeys: Set<string>): Promise<void>; } //# sourceMappingURL=Registry.d.ts.map