ConfigNamespace with token, factory, and asProvider() method
// apps/backend/src/config/database.config.ts
export const databaseConfig = registerAs('database', (env: Env) => ({
url: env.DATABASE_URL,
maxConnections: parseInt(env.DATABASE_MAX_CONNECTIONS || '10'),
}))
// Auto-generates: databaseConfig.KEY = Symbol('CONFIG:database')
// Usage in module:
// Option 1: Manual provider
{
provide: databaseConfig.KEY,
useFactory: databaseConfig.factory,
inject: [DI_TOKENS.CloudflareEnv]
}
// Option 2: asProvider() helper
databaseConfig.asProvider()
// Returns: { provide: databaseConfig.KEY, useFactory: ..., inject: [DI_TOKENS.CloudflareEnv] }
Create a namespaced configuration factory Similar to NestJS registerAs