UNPKG

@jbagatta/johnny-cache

Version:

A robust distributed dictionary for coordinating and caching expensive operations in a distributed environment

26 lines (25 loc) 1.08 kB
import { Redis } from "ioredis"; import { BuildReservation, DataStore } from "../../ports/data-store"; export declare class RedisDataStore implements DataStore { private readonly client; constructor(client: Redis); tryReserve<V>(key: string, reservationExpiryMs: number): Promise<BuildReservation<V>>; has(key: string): Promise<boolean>; get<V>(key: string): Promise<BuildReservation<V> | null>; tryUpdateReservation<V>(key: string, buildId: string, result: V, expiry?: number | undefined): Promise<boolean>; delete(key: string): Promise<void>; updateExpiry(key: string, expiry?: number): Promise<void>; close(): void; } export declare const tryReserveAndReturnExistingBuildLuaScript: string; export declare const tryUpdateReservationLuaScript: string; export declare class RedisConnectionOptions { sentinel?: { host: string; port: number; primaryName: string; }; url?: string; password?: string; } export declare function createRedisDataStore(redisConnectionOptions: RedisConnectionOptions): RedisDataStore;