import { load, Store } from '@tauri-apps/plugin-store'; import type { CookieSource } from '$lib/bindings/dependencies'; export type { CookieSource }; export interface Preferences { outputDirectory: string; cookieSource: CookieSource; } const DEFAULT_PREFERENCES: Preferences = { outputDirectory: '~/', cookieSource: { type: 'browser', browser: 'firefox' }, }; let store: Store | null = null; export const preferences = $state({ ...DEFAULT_PREFERENCES }); export async function loadPreferences(): Promise { store = await load('preferences.json', { autoSave: true }); const savedDir = await store.get('outputDirectory'); const savedCookie = await store.get('cookieSource'); if (savedDir) preferences.outputDirectory = savedDir; if (savedCookie) preferences.cookieSource = savedCookie; } export async function savePreferences(): Promise { if (!store) return; await store.set('outputDirectory', preferences.outputDirectory); await store.set('cookieSource', preferences.cookieSource); await store.save(); } export async function setOutputDirectory(dir: string): Promise { preferences.outputDirectory = dir; await savePreferences(); } export async function setCookieSource(source: CookieSource): Promise { preferences.cookieSource = source; await savePreferences(); }