@snow-tzu/type-config
Version:
Core configuration management system with Spring Boot-like features
41 lines • 1.3 kB
TypeScript
import { ConfigSource } from './sources';
export interface ConfigManagerOptions {
profile?: string;
configDir?: string;
envPrefix?: string;
additionalSources?: ConfigSource[];
encryptionKey?: string;
validateOnBind?: boolean;
enablePlaceholderResolution?: boolean;
}
export declare class ConfigManager {
private options;
private config;
private sources;
private readonly profile;
private initialized;
private configInstances;
private readonly encryptionHelper?;
private readonly validateOnBind;
private placeholderResolver;
private readonly enablePlaceholderResolution;
private mapBinder;
constructor(options?: ConfigManagerOptions);
initialize(): Promise<void>;
private reload;
private resolveEnvironmentVariables;
get<T = any>(path: string, defaultValue?: T): T;
getAll(): Record<string, any>;
getProfile(): string;
bind<T>(ConfigClass: new () => T): T;
private validateInstanceSync;
private formatValidationErrors;
private isConfigurationClass;
private getAllProperties;
private getAllPropertiesForNestedClass;
private bindNestedClass;
private convertAndBindType;
private deepMerge;
dispose(): Promise<void>;
}
//# sourceMappingURL=config-manager.d.ts.map