electron/services/database/SettingsRepository
Repository for application settings persistence and management using the repository pattern.
Remarks
Handles CRUD operations for application configuration settings with type-safe value handling, validation, and atomic updates. Provides centralized settings management with proper transaction support and error handling.
Key features:
- Type-safe settings CRUD operations with value conversion
- Atomic setting updates with transaction support
- Default value management and fallback handling
- Efficient key-value storage with proper indexing
- Comprehensive error handling with operational hooks
- Setting validation and type coercion
- Bulk operations for multiple settings updates
Examples
const settingsRepo = new SettingsRepository({ databaseService });
// Set a setting value
await settingsRepo.setSetting("historyLimit", 1000);
// Get a setting with default fallback
const limit = await settingsRepo.getSetting("historyLimit", 500);
// Get all settings
const allSettings = await settingsRepo.getAllSettings();
// Update multiple settings atomically
await settingsRepo.setSettings({
historyLimit: 1000,
checkInterval: 60000,
enableNotifications: true,
});