49 lines
1.2 KiB
TypeScript
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);
|
|
}
|
|
}
|
|
|