@breadstone/archipel-platform-configuration
v0.0.39
Published
Type-safe configuration management with strategy-based resolution for NestJS applications.
Maintainers
Readme
@breadstone/archipel-platform-configuration
Type-safe configuration management with strategy-based resolution for NestJS applications.
Features
- Typed config keys — Compile-time type safety via
IConfigKey<T>andcreateConfigKey<T>() - Strategy pattern — Swap configuration sources (environment variables,
.envfiles, custom) without changing consumers - Global NestJS module —
ConfigModule.forRoot()bootstraps a globalConfigService;ConfigModule.register()declares per-library config entries - Central registry —
ConfigRegistrycollects all registered keys for discovery and validation
Quick Start
import { ConfigModule, EnvironmentConfigStrategy } from '@breadstone/archipel-platform-configuration';
@Module({
imports: [
ConfigModule.forRoot({
strategyFactory: () => new EnvironmentConfigStrategy(),
}),
],
})
export class AppModule {}Defining Config Keys
import { createConfigKey } from '@breadstone/archipel-platform-configuration';
export const DATABASE_URL = createConfigKey<string>('DATABASE_URL');
export const CACHE_TTL = createConfigKey<number>('CACHE_TTL');Registering Library Entries
ConfigModule.register('my-library', [
{ key: DATABASE_URL, required: true, description: 'PostgreSQL connection string' },
{ key: CACHE_TTL, required: false, defaultValue: 3600, description: 'Cache TTL in seconds' },
]);Import Options
// Main import
import { ConfigModule, ConfigService, createConfigKey } from '@breadstone/archipel-platform-configuration';
// File-based strategy (tree-shakable sub-export)
import { FileConfigStrategy } from '@breadstone/archipel-platform-configuration/file';Error Handling
| Error Class | When Thrown |
| ------------------------ | -------------------------------------- |
| ConfigKeyNotFoundError | Requested config key is not registered |
Peer Dependencies
| Package | Required | Notes |
| ---------------- | -------- | --------------------------- |
| @nestjs/common | Yes | NestJS core |
| dotenv | Yes | .env file parsing support |
Documentation
📖 Package Docs: .docs/packages/platform-configuration/index.md
Development
# Build
yarn nx build platform-configuration
# Test
yarn nx test platform-configuration
# Lint
yarn nx lint platform-configuration