Envalid is a small library for validating and accessing environment variables in Node.js (v8.12 or later) programs, aiming to:
- ensure that your program only runs when all of its environment dependencies are met
- give you executable documentation about the environment your program expects to run in
- give you an immutable API for your environment variables, so they don't change from under you while the program is running
nestjs-envalid is simple wrapper on top of envalid made for NestJS
yarn add nestjs-envalid envalidTo improve readability you can configure the variables in a separate file named
config.ts, like the example below:
import { makeValidators, num, Static } from 'nestjs-envalid';
export const validators = makeValidators({
PORT: num({ default: 3000 }),
});
export type Config = Static<typeof validators>;The validators can then be added to EnvalidModule, like so:
import { EnvalidModule } from 'nestjs-envalid';
import { validators } from './config';
@Module({
imports: [EnvalidModule.forRoot({ validators })],
})
export class AppModule {}To inject your configuration, you can do this:
import { ENVALID, Config } from './config';
@Injectable()
export class SomeService {
constructor(@Inject(ENVALID) private readonly env: Config) {}
someMethod() {
if (this.env.isProd) {
const other = this.env.HELLO_WORLD;
}
}
}You'll need to install dotenv.
yarn add dotenvNext, just set useDotenv to true
import { validators } from './config';
@Module({
imports: [EnvalidModule.forRoot({ validators, useDotenv: true })],
})
export class AppModule {}Contributions, issues and feature requests are welcome!
Feel free to check
issues page.
Give a ⭐️ if this project helped you!