settings-repository.ts
1 import type { AppSettings } from '@/types' 2 3 import { 4 loadPublicSettings as loadStoredPublicSettings, 5 loadSettings as loadStoredSettings, 6 saveSettings as saveStoredSettings, 7 } from '@/lib/server/storage' 8 import { createSingletonRepository } from '@/lib/server/persistence/repository-utils' 9 10 export const settingsRepository = createSingletonRepository<AppSettings>( 11 'settings', 12 { 13 get() { 14 return loadStoredSettings() 15 }, 16 save(value) { 17 saveStoredSettings(value) 18 }, 19 }, 20 ) 21 22 export const loadSettings = () => settingsRepository.get() 23 export const saveSettings = (value: AppSettings | Record<string, unknown>) => settingsRepository.save(value as AppSettings) 24 export const patchSettings = (updater: (current: AppSettings) => AppSettings | Record<string, unknown>) => settingsRepository.patch(updater as (current: AppSettings) => AppSettings) 25 export const loadPublicSettings = () => loadStoredPublicSettings()