nestjs-config-validator
Version:
Advanced configuration validator for NestJS with type-safe schema validation and full TypeScript type inference
59 lines (58 loc) • 2.14 kB
TypeScript
import { RootConfigSchema, ConfigSchema } from './types';
export interface ConfigValue {
[key: string]: unknown;
}
export interface ValidationResult {
valid: boolean;
errors: string[];
}
/**
* Продвинутый валидатор конфигурации с полной валидацией
*/
export declare class AdvancedConfigValidator {
private configData;
constructor(configPath?: string);
private loadConfig;
/**
* Получает значение из переменной окружения
*/
private getEnvValue;
/**
* Преобразует строковое значение из переменной окружения в нужный тип
*/
private parseEnvValue;
/**
* Возвращает объект, если значение является простым объектом, иначе undefined
*/
private ensureObject;
/**
* Резолвит значение для конечного (leaf) свойства с приоритетом:
* nodeEnv > config.json > defaultValue
*/
private resolveLeafValue;
/**
* Рекурсивная валидация только конечных (leaf) свойств.
* Контейнеры (object) сами по себе не считаются обязательными.
*/
private validateObjectProperties;
/**
* Валидирует схему конфигурации
*/
validateSchema(schema: ConfigSchema, configSection?: string): ValidationResult;
/**
* Валидирует тип свойства
*/
private validatePropertyType;
/**
* Дополнительная валидация для enum свойств
*/
private validateEnumProperty;
/**
* Получает валидированную конфигурацию
*/
getValidatedConfig(schema: ConfigSchema, configSection?: string): ConfigValue;
/**
* Валидирует всю корневую схему
*/
validateRootSchema(rootSchema: RootConfigSchema): ValidationResult;
}