browser-vault-gui/src/config.ts
2025-10-20 18:45:52 +02:00

49 lines
1.2 KiB
TypeScript

// Application configuration
export interface AppConfig {
cache: {
maxSizeMB: number; // Maximum cache size in megabytes
maxAge: number; // Maximum age of cache entries in milliseconds
enabled: boolean;
};
search: {
maxDepth: number; // Maximum recursion depth for path search
maxResults: number; // Maximum number of results to return
};
}
// Default configuration
export const defaultConfig: AppConfig = {
cache: {
maxSizeMB: 10, // 10 MB default
maxAge: 1000 * 60 * 30, // 30 minutes
enabled: true,
},
search: {
maxDepth: 10,
maxResults: 1000,
},
};
// Load configuration from localStorage
export function loadConfig(): AppConfig {
try {
const saved = localStorage.getItem('vaultGuiConfig');
if (saved) {
return { ...defaultConfig, ...JSON.parse(saved) };
}
} catch (error) {
console.error('Failed to load config:', error);
}
return defaultConfig;
}
// Save configuration to localStorage
export function saveConfig(config: AppConfig): void {
try {
localStorage.setItem('vaultGuiConfig', JSON.stringify(config));
} catch (error) {
console.error('Failed to save config:', error);
}
}