@mx7/tenv
v1.1.0
Published
type-safe environment variable parser
Downloads
7
Maintainers
Readme
Type-safe .env variable parser
This package is a type-safe parser for .env files. It is built for node.js based typescript applications.
Installation
Recommending NodeJS v18.x (LTS) or later
This package cannot load the environment variables itself. You need to use something like
dotenv
or latest NodeJs built-in env-file loader
$ npm i @mx7/tenv
# or
$ yarn add @mx7/tenv
# or
$ pnpm add @mx7/tenv
Sample Usages
import 'dotenv/config'; // peer dependency (if you are using dotenv)
import Env from '@mx7/tenv';
const parsed = process.env as Record<string, string>;
const env = new Env(parsed); // instance of Env class
const port = env.key<number>('PORT', true).integer().unsigned().get();
// or, set a default value instead of make this required
const port = env.key<number>('PORT', 3000).integer().unsigned().get();
console.log(port); // i.e. 3000 as number
More Information
| Method | Description | Action |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- |
| get()
| Get the value of the environment variable. Should be called at last as chained | value withexpected type |
| key()
| key<T = string>(key: string, factor?: boolean \| T)
Define the variable name as key
& follow next: - set factor
: true
if it is required! - set factor
: false
or undefined
(no need to pass) for accepting undefined value if not exists! - set factor
: T
(generic) as your default value | |
| email()
| It will validate the passed string as email | |
| url()
| It will validate the passed string as url.if it requires IPv6 address, do it as url({ ipv6: true })
| |
| integer()
| It will validate the passed value as integer | |
| float()
| It will validate the passed value as float | |
| signed()
| It will validate the passed value as signed number | |
| unsigned()
| It will validate the passed value as unsigned number | |
| boolean()
| It will validate the passed value as boolean | |
Author
Made with ❤️ by @mahabubx7
Changelogs
| Version | Released At | Description |
| --------------- | ----------- | ---------------------------------------------------------------------------------------- |
| v1.1.0 minor
| 2024-01-31 | Minor update release v1.1 |
| v1.0.0 stable
| 2024-01-31 | Major stable release v1.x |
| v0.7.7 stable
| 2024-01-31 | First stable release with new feature => default value can attached with key()
method |
| v0.7.2 beta
| 2024-01-31 | Added more supports and fixes small & minor issues with changes |
| v0.7.0 beta
| 2024-01-30 | @mx7/tenv
with nodejs v18.x LTS or later compatible for type-safe .env variable parser |