Very simple Env get function for NodeJS
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}
.
npm install @secjs/env
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.
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
Made with 🖤 by jlenon7 👋