1.3.4 • Published 2 years ago

gen-env-types v1.3.4

Weekly downloads
499
License
ISC
Repository
github
Last release
2 years ago

gen-env-types

Takes your .env file as input

SESSION_SECRET=asdjpfowqip
STRIPE_ACCESS_TOKEN=qoi120wqe

And generates a .d.ts file

declare namespace NodeJS {
  export interface ProcessEnv {
    SESSION_SECRET: string;
    STRIPE_ACCESS_TOKEN: string;
  }
}

Include the generated file in your tsconfig.json if not already:

{
  "include": [
    "./env.d.ts"
  ]
}

Now process.env.SESSION_SECRET will autocomplete and be type-safe.

Customize

gen-env-types respects changes made to generated files, meaning you can overwrite .env.example and env.d.ts values, this can be helpful if you want a union type:

declare namespace NodeJS {
  export interface ProcessEnv {
    NODE_ENV: "development" | "production";
  }
}

Or if you want to persist .env.example values:

PORT=3000

Usage

npx gen-env-types path/to/.env

Options

  -V, --version               Show version number
  -h, --help                  Show usage information
  -o, --types-output          Output name/path for types file | defaults to `env.d.ts`
  -e, --example-env-path      Path to save .env.example file
  -O,  --optional [vars]      Make some of the environment variables optional.
                              Accepts a list of environment variables to be made optional.
  -r, --rename-example-env    Custom name for .env example output file | defaults to `env.example` if omitted
  -k, --keep-comments         Keep comments/blank lines in .env example output file | defaults to false if omitted.
                              Not accepting the value. When specified, it will be true.

Examples with options

npx gen-env-types .env -o src/types/env.d.ts -e .
# With custom example env file name
npx gen-env-types .env -o src/types/env.d.ts -e . -r .env.test
1.3.4

2 years ago

1.3.3

2 years ago

1.3.2

2 years ago

1.3.1

2 years ago

1.3.0

3 years ago

1.2.0

3 years ago

1.1.0

3 years ago

1.0.5

3 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago