@bernierllc/content-autosave-manager
Version:
Automatic content saving with debouncing, retry logic, and conflict detection
22 lines (21 loc) • 978 B
TypeScript
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;
}