A typed environment variable parser with support for choices, custom parsers, and more.
import { createEnv } from 'typed-env';
const env = createEnv({
  PORT: { type: 'number', default: 80 }
});
env.PORT; // number- Strongly typed
- Supports custom parsers
- Supports optional environment variables
- Supports limiting the possible values (see Choices)
- Supports passing custom environments (see Options)
import { createEnv } from 'typed-env';
const env = createEnv({
  NODE_ENV: {
    type: 'string',
    choices: ['development', 'production']
  }
});
env.NODE_ENV; // 'development' | 'production'You can pass a parser function to return your own custom type
import { createEnv } from 'typed-env';
const env = createEnv({
  HOMEPAGE: { parser: url => new URL(url) }
});
env.HOMEPAGE; // URLIf you want to use a custom env, pass env in the options parameter, otherwise it will load from process.env
interface Options {
  env?: Record<string, string> | NodeJS.ProcessEnv;
}