src/lib/storage/settings-storage.ts

Total Symbols
2
Lines of Code
25
Avg Complexity
1.0
Avg Coverage
100.0%

Symbols by Kind

function 2

All Symbols

Name Kind Visibility Status Lines Signature
getSettings function exported- 10-12 getSettings(): : Promise<Settings>
saveSettings function exported- 18-24 saveSettings(settings: Partial<Settings>): : Promise<void>

Full Source

/**
 * Settings storage — read/write extension settings.
 */

import type { Settings } from "@/types";
import { DEFAULT_SETTINGS } from "@/types";
import { STORAGE_KEYS, getFromStorage, updateStorageAtomically } from "./core";

/** Retrieves current extension settings, merged with defaults. */
export async function getSettings(): Promise<Settings> {
  return getFromStorage<Settings>(STORAGE_KEYS.SETTINGS, DEFAULT_SETTINGS);
}

/**
 * Saves a partial settings update (shallow merge with current settings).
 * @param settings - Partial settings to merge
 */
export async function saveSettings(settings: Partial<Settings>): Promise<void> {
  await updateStorageAtomically(
    STORAGE_KEYS.SETTINGS,
    DEFAULT_SETTINGS,
    (current) => ({ ...current, ...settings }),
  );
}