softkave-js-utils
Version:
JavaScript & Typescript utility functions, types, and classes
35 lines (34 loc) • 1.39 kB
TypeScript
/// <reference types="node" resolution-mode="require"/>
import { DisposableResource } from './disposables.js';
export declare class RefreshableResource<T = unknown> implements DisposableResource {
protected timeout: number;
protected resource: T;
protected previous: T | null;
protected refreshFn: (current: T) => Promise<T>;
protected onRefresh: (resource: T, previous: T) => void;
protected onError: (error: unknown, current: T) => void;
protected intervalId: NodeJS.Timeout | null;
constructor(props: {
timeout: number;
resource: T;
refreshFn: (current: T) => Promise<T>;
onRefresh: (resource: T, previous: T | null) => void;
onError: (error: unknown, previous: T | null) => void;
});
start(): this;
stop(): this;
getValue(): T;
setValue(value: T): this;
getPreviousValue(): T | null;
refresh(): Promise<void>;
getRefreshTimeout(): number;
setRefreshTimeout(timeout: number): this;
getRefreshFn(): (current: T) => Promise<T>;
setRefreshFn(refreshFn: () => Promise<T>): this;
getOnRefresh(): (resource: T, previous: T) => void;
setOnRefresh(onRefresh: (resource: T) => void): this;
getOnError(): (error: unknown, current: T) => void;
setOnError(onError: (error: unknown) => void): this;
dispose(): void;
protected __refresh(): Promise<void>;
}