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 envalid
To 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 dotenv
Next, 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!