UNPKG

@bernierllc/content-autosave-manager

Version:

Automatic content saving with debouncing, retry logic, and conflict detection

22 lines (21 loc) 978 B
import { IAutosaveManager, AutosaveConfig, AutosaveStatusEvent, SaveFunction, SaveResult, ConflictHandler } from './types'; export declare class AutosaveManager<T = any> implements IAutosaveManager<T> { private config; private activeItems; private statusListeners; private conflictHandler?; constructor(config?: Partial<AutosaveConfig>); enable(contentId: string, saveFunction: SaveFunction<T>, config?: Partial<AutosaveConfig>): void; disable(contentId: string): void; queueSave(contentId: string, content: T): void; forceSave(contentId: string, content: T): Promise<SaveResult<T>>; getStatus(contentId: string): AutosaveStatusEvent | null; onConflict(handler: ConflictHandler<T>): void; onStatusChange(listener: (event: AutosaveStatusEvent) => void): void; clear(contentId: string): void; destroy(): void; private executeSave; private calculateBackoffDelay; private handleConflict; private emitStatus; }