mirror of
https://github.com/jeffusion/gitea-ai-assistant.git
synced 2026-03-27 10:05:50 +00:00
Implement ConfigManager with three-layer configuration priority: - Layer 1: Zod schema defaults - Layer 2: Environment variables (process.env) - Layer 3: JSON file overrides (config-overrides.json) Features: - Atomic file writes with temp+rename for reliability - Synchronous load at startup for immediate availability - Runtime hot-reload via async methods - Source tracking (default/env/override) per config key - Full Zod schema validation with type safety Files added: - src/config/config-manager.ts: Core manager implementation - src/config/config-schema.ts: Field metadata and group definitions - src/config/__tests__/: Unit tests for config manager - typings/: TypeScript declaration files
13 lines
297 B
TypeScript
13 lines
297 B
TypeScript
import { configManager } from './config-manager';
|
|
|
|
type AppConfig = import('./config-manager').AppConfig;
|
|
|
|
const config = new Proxy({} as AppConfig, {
|
|
get(_target, prop) {
|
|
return configManager.getCurrent()[prop as keyof AppConfig];
|
|
},
|
|
});
|
|
|
|
export { configManager };
|
|
export default config;
|