config-reader-validator
v1.0.2
Published
A simple config reader and validator
Maintainers
Readme
Config Reader Validator
A library that uses class-validator and class-transformer to validate your config class in a nest DTO style, it also reads environment for you.
Installation
pnpm:
pnpm add class-transformer class-validator dotenv reflect-metadatanpm:
npm i class-transformer class-validator dotenv reflect-metadataFeatures
@Env(envKey?: string)
if added above a class property, it reads the property name in CONSTANT_CASE from the environment into the variable.
Optionally if an envKey is provided as an argument, it tries to read that from the environment and not the default CONSTANT_CASE name it expects.
Usage
my-config.config.ts
import { IsString, IsNotEmpty } from 'class-validator';
import { Env } from 'config-reader-validator';
class MyConfig {
@IsOptional()
@IsNotEmpty()
@IsString()
@Env('Property')
readonly myProperty?: string;
@IsNotEmpty()
@IsString()
@Env()
readonly myEnvProperty!: string;
}main.ts
import {
Env,
configValidatorSetup,
validateConfig,
} from 'config-reader-validator';
import { MyConfig } from './my-config.ts';
const main = async () => {
configValidatorSetup();
const validatedConfig = await validateConfig(new MyConfig());
console.log(validatedConfig);
};
void main();Optional configuration
- configValidatorSetup: accepts an optional
dotEnvConfig?: DotenvConfigOptionswhich is the defaultdotenvconfiguration - validateConfig: receives an optional
validationOptions?: ValidationOptionswhich is the default class-validator options
Todos
- [ ] tests
