@mx7/tenv
Version:
type-safe environment variable parser
62 lines (45 loc) • 6 kB
Markdown
This package is a type-safe parser for .env files. It is built for node.js based typescript applications.
**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
```bash
$ npm i @mx7/tenv
$ yarn add @mx7/tenv
$ pnpm add @mx7/tenv
```
```typescript
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
```
| Method | Description | Action |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- |
| `get()` | Get the value of the environment variable. Should be called at last as chained | value with<br>expected type |
| `key()` | `key<T = string>(key: string, factor?: boolean \| T)` <br />Define the variable name as `key` & follow next:<br> - set `factor`: `true` if it is required!<br> - set `factor`: `false` or `undefined` (no need to pass) for accepting undefined value if not exists!<br> - 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.<br>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 | |
Made with ❤️ by [@mahabubx7](https://github.com/mahabubx7)
| 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 |