UNPKG

@mx7/tenv

Version:

type-safe environment variable parser

62 lines (45 loc) 6 kB
# 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 ```bash $ npm i @mx7/tenv # or $ yarn add @mx7/tenv # or $ pnpm add @mx7/tenv ``` ### Sample Usages ```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 ``` ### More Information | 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 | | ### Author Made with ❤️ by [@mahabubx7](https://github.com/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 |