UNPKG

softkave-js-utils

Version:

JavaScript & Typescript utility functions, types, and classes

35 lines (34 loc) 1.39 kB
/// <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>; }