@origins-digital/config
v1.2.0
Published
Origins Digital NestJS Config
Readme
@origins-digital/config
A configuration validation package for NestJS applications that uses Zod for environment variable validation.
Installation
npm install @origins-digital/configFeatures
- Environment variable validation using Zod schemas
- Type-safe configuration
- Clear error messages for invalid configurations
Usage
Basic Usage
import { ConfigModule } from '@nestjs/config';
import { validate } from '@origins-digital/config';
import { z } from 'zod';
const envSchema = z.object({
DATABASE_URL: z.string().url(),
PORT: z.number().default(3000),
NODE_ENV: z
.enum(['development', 'production', 'test'])
.default('development'),
});
@Module({
imports: [
ConfigModule.forRoot({
validate: validate(envSchema),
}),
],
})
export class AppModule {}Advanced Usage
You can create complex validation schemas using Zod:
import { z } from 'zod';
const envSchema = z.object({
DATABASE: z.object({
URL: z.string().url(),
POOL_SIZE: z.number().default(10),
}),
REDIS: z.object({
HOST: z.string(),
PORT: z.number(),
PASSWORD: z.string().optional(),
}),
JWT: z.object({
SECRET: z.string(),
EXPIRES_IN: z.string().default('1d'),
}),
});
@Module({
imports: [
ConfigModule.forRoot({
validate: validate(envSchema),
}),
],
})
export class AppModule {}Error Handling
When validation fails, the package will throw an error with detailed information about which environment variables are invalid:
❌ Invalid environment variables: {
"DATABASE_URL": ["Invalid url"],
"PORT": ["Expected number, received string"]
}Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
