@secjs/env

Very simple Env get function for NodeJS

Usage no npm install needed!

<script type="module">
  import secjsEnv from 'https://cdn.skypack.dev/@secjs/env';
</script>

README

Env 🔁

Very simple Env get function for NodeJS

GitHub followers GitHub stars

Buy Me A Coffee

GitHub language count Repository size License Commitizen

The intention behind this repository is to always maintain a viable and simple Env function to use in any type of NodeJS Framework. @secjs/env uses dotenv library to find .env file in the project root, you can run your application with environment NODE_ENV set and @secjs/env will try to find the .env.${NODE_ENV}.

Installation

npm install @secjs/env

Example

NODE_ENV=testing node index.js

If index.js file is using Env function the singleton of Env will run and verify if exists NODE_ENV. In this case Env will use .env.testing file.

Usage

You can use Env function as a global importing just one time the global file. Global already call resolveEnvFile function.

import '@secjs/env/src/utils/global.ts'

Env('DB_DATABASE', 'my-database')

Or you can call directly the Env function, but first you will need to call resolveEnvFile to get the env file by NODE_ENV.

import { Env, resolveEnvFile } from '@secjs/env'

// Simulating .env file
HOST='127.0.0.1'
PORT=3333
DB_PORT=5432
DB_DEBUG=false
DB_DATABASE='database'
APP_URL='http://${HOST}:${PORT}'

// Important to resolve env file
resolveEnvFile()

// The response value will be the value of DB_DATABASE variable or my-database by default
const db = Env('DB_DATABASE', 'my-database')
console.log(db) // 'database'

// Template string support
const appUrl = Env('APP_URL', 'http://localhost:3000')
console.log(appUrl) // 'http://127.0.0.1:3333'

const dbPort = Env('DB_PORT', '5432')
console.log(dbPort) // '5432'

const dbDebug = Env('DB_DEBUG', 'false')
console.log(dbDebug) // 'false' // Same as true value

const dbPortCasted = Env({ name: 'DB_PORT', type: 'number' }, 5432)
console.log(dbPortCasted) // 5432

const dbDebugCasted = Env({ name: 'DB_DEBUG', type: 'boolean' }, false)
console.log(dbDebugCasted) // false

License

Made with 🖤 by jlenon7 :wave: