@bitblit/ratchet-common
Version:
Common tools for general use
21 lines (20 loc) • 721 B
TypeScript
import { LoggerLevelName } from '../logger/logger-level-name.js';
export declare class ExpiringObject<T> {
private _config;
private _cacheObject;
private _lastUpdatedEpochMS;
private _timeRemainingMS;
constructor(inputConfig?: ExpiringObjectConfig<T>);
private defaultConfig;
private defaultTimeRemainingMS;
update(newValue: T, doNotUpdateClock?: boolean): void;
fetchCacheObjectTimeRemainingMS(): Promise<number>;
fetch(): Promise<T>;
}
export declare class ExpiringObjectConfig<T> {
timeToLiveMS?: number;
generator?: () => Promise<T>;
initialValue?: T;
logLevel?: LoggerLevelName;
overrideTimeRemainingMS?: (lastUpdatedEpochMS: number) => Promise<number>;
}