Configuration API
Decorator-driven configuration management from environment variables with automatic validation.
What It Does
The Configuration API provides a NestJS-based system for populating TypeScript class models from environment variables using decorators and metadata reflection. It automates environment variable mapping, validation, and error reporting for configuration management.
Key Capabilities
| Capability | Description |
|---|---|
| Decorator-Driven | @Config() decorator marks configuration points for automatic injection |
| Hierarchical Naming | Class-level prefixes and property-level customization |
| Automatic Validation | Integrates with class-validator for config validation |
| Type Safety | TypeScript class-based models with compile-time verification |
| NestJS Integration | Works as Injectable service with ConfigService |
| Error Logging | Clear formatting for validation errors |
| Environment Variable Conversion | Automatic SNAKE_CASE naming convention |
Usage Pattern
@Config({base: 'BROWSER'})
export class BrowserConfigModel {
@Config()
@IsString()
@IsUrl()
baseURL = 'https://browser.example.com'
@Config({envar: 'CUSTOM_NAME'})
@IsNumber()
port = 3000
}
// Populate and validate
const reflector = new ConfigReflector(configService)
const [model, errors] = await reflector.reflect(BrowserConfigModel)Exports
@Config()- Decorator for configuration injectionConfigReflector- Service for reflection and validation
Common Use Cases
- Application configuration from environment
- Type-safe config objects
- Config validation at startup
- Multi-environment configuration
What Customers Don’t Have to Build
- Environment variable mapping
- SNAKE_CASE conversion
- Validation integration
- Config reflection
- Error logging
- Type-safe config injection
Last updated on