From 9d216b41fbb6928862efb8196ded00ac86c3663d Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Fri, 1 May 2026 18:50:32 +0200 Subject: [PATCH] auto-git: [unlink] src/serialization/editor-autosave.ts --- src/serialization/editor-autosave.ts | 52 ---------------------------- 1 file changed, 52 deletions(-) delete mode 100644 src/serialization/editor-autosave.ts diff --git a/src/serialization/editor-autosave.ts b/src/serialization/editor-autosave.ts deleted file mode 100644 index bef26a66..00000000 --- a/src/serialization/editor-autosave.ts +++ /dev/null @@ -1,52 +0,0 @@ -import type { SaveSceneDocumentDraftResult } from "./local-draft-storage"; - -export interface EditorAutosaveControllerOptions { - debounceMs?: number; - onComplete?: (result: SaveSceneDocumentDraftResult) => void; - saveDraft: () => SaveSceneDocumentDraftResult; -} - -export class EditorAutosaveController { - private readonly debounceMs: number; - private readonly onComplete: ((result: SaveSceneDocumentDraftResult) => void) | undefined; - private readonly saveDraft: () => SaveSceneDocumentDraftResult; - private timeoutId: number | null = null; - - constructor(options: EditorAutosaveControllerOptions) { - this.debounceMs = options.debounceMs ?? 200; - this.onComplete = options.onComplete; - this.saveDraft = options.saveDraft; - } - - schedule() { - this.clearPendingTimeout(); - this.timeoutId = window.setTimeout(() => { - this.timeoutId = null; - this.runSave(); - }, this.debounceMs); - } - - flush(): SaveSceneDocumentDraftResult { - this.clearPendingTimeout(); - return this.runSave(); - } - - dispose() { - this.clearPendingTimeout(); - } - - private clearPendingTimeout() { - if (this.timeoutId === null) { - return; - } - - window.clearTimeout(this.timeoutId); - this.timeoutId = null; - } - - private runSave(): SaveSceneDocumentDraftResult { - const result = this.saveDraft(); - this.onComplete?.(result); - return result; - } -}