3.0.0 • Published 9 months ago

nestjs-envalid v3.0.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
9 months ago

code style: prettier Commitizen friendly

Language grade: JavaScript codecov Maintainability

Envalid is a small library for validating and accessing environment variables in Node.js (v14.16 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

Note: This package is pure ESM, which requires you to add "type": "module" to your package.json file. If you're using CommonJS, you can for now use the legacy tag on NPM to use the latest version of v1. The legacy version will be supported for now, but we will eventually drop support for it.

Quickstart

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;
    }
  }
}

Add support for dotenv

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 {}

Common JS / Version 1

If you need either support for Node 8.12 or above or CommonJS, you can use the legacy version of this package. To do so, you'll need to use the legacy tag.

yarn add nestjs-envalid@legacy envalid

The legacy version will be supported for now, but we will eventually drop support for it. We will notify you when we eventually do, at least a few months before, but you should migrate to ESM as soon as possible.

Contributing

Contributions, issues and feature requests are welcome!Feel free to check issues page.

Give a ⭐️ if this project helped you!

3.0.0

9 months ago

1.3.0

9 months ago

2.1.2

12 months ago

2.2.0

10 months ago

2.1.1

2 years ago

2.1.0

2 years ago

2.0.0

2 years ago

1.2.1

3 years ago

1.2.0

3 years ago

1.1.0

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago