fix: guard preferences save against uninitialized store

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-21 10:56:08 -04:00
parent f74eb17039
commit 820b451514

View File

@@ -14,18 +14,29 @@ const DEFAULT_PREFERENCES: Preferences = {
};
let store: Store | null = null;
let loadPromise: Promise<void> | null = null;
export const preferences = $state<Preferences>({ ...DEFAULT_PREFERENCES });
export async function loadPreferences(): Promise<void> {
if (loadPromise) {
await loadPromise;
return;
}
loadPromise = (async () => {
store = await load('preferences.json', { autoSave: true });
const savedDir = await store.get<string>('outputDirectory');
const savedCookie = await store.get<CookieSource>('cookieSource');
if (savedDir) preferences.outputDirectory = savedDir;
if (savedCookie) preferences.cookieSource = savedCookie;
})();
await loadPromise;
}
export async function savePreferences(): Promise<void> {
if (!store) {
await loadPreferences();
}
if (!store) return;
await store.set('outputDirectory', preferences.outputDirectory);
await store.set('cookieSource', preferences.cookieSource);