/** * Interface pro úložiště dat. */ export interface StorageInterface { initialize?(): Promise; hasData(key: string): Promise; getData(key: string): Promise; setData(key: string, data: Type): Promise; /** * Vrátí seznam všech klíčů, případně jen těch obsahujících předaný podřetězec. * @param contains volitelný podřetězec, který musí klíč obsahovat (např. '_extra') */ listKeys(contains?: string): Promise; /** * Atomicky načte, zmutuje a uloží data pod daným klíčem. * V Redis implementaci používá WATCH/MULTI/EXEC retry loop. * Vrátí výslednou hodnotu po aplikaci mutátoru. */ updateData(key: string, mutator: (current: Type | undefined) => Type): Promise; /** Ověří dostupnost úložiště. Vrátí false pokud není dostupné. */ healthCheck?(): Promise; }