define-env
TypeScript icon, indicating that this package has built-in type declarations

1.0.3 • Public • Published

define-env

This package allows you to define environmental variables alongside their default development values.

If the values are missing it will throw an exception. This ensures production code always contains the expected environmental variables.

Quick Start

npm i -D define-env   /   pnpm add -D define-env
const envVar = defineEnv(e => ({
    secret: e.VITE_SECRET,
    mongo: {
        uri: e.VITE_MONGOURI,
        database: e.VITE_MONGODATABASE
    },
	isNumber: e.VITE_NUMBER(parseFloat)
}),
/** Development default values */
{
    secret: 'dev',
    mongo: {
        uri: 'mongodb://0.0.0.0:27017',
        database: 'test-db',
    },
    isNumber: '25'
})

Example exception

These environment variables are missing:
   
    mongo: 
        uri: VITE_MONGOURI
  

In-depth

Create your env variable

import defineEnv from 'define-env'

const envVar = defineEnv(e => ({...}))

export default envVar

Use e to access ENV variables

const envVar = defineEnv(e => ({
    secret: e.VITE_SECRET,
    mongo: {
        uri: e.VITE_MONGOURI,
        database: e.VITE_MONGODATABASE
    },
}))

Format a value if it exists, to ex. a number

const envVar = defineEnv(e => ({
    number: e.VITE_NUMBER(parseFloat),
    upper: e.VITE_SOMESTR(v => v.toUpperCase())
}))

Set default values for development.

const envVar = defineEnv(e => ({
    secret: e.VITE_SECRET,
    mongo: {
        uri: e.VITE_MONGOURI,
        database: e.VITE_MONGODATABASE
    },
    isNumber: e.VITE_NUMBER(parseFloat)
}),
/** Development default values */
{
    secret: 'dev',
    mongo: {
        uri: 'mongodb://0.0.0.0:27017',
        database: 'test-db',
    },
    isNumber: '25'
})

Example exception:

These environment variables are missing:
   
    mongo: 
        uri: VITE_MONGOURI
  

Readme

Keywords

none

Package Sidebar

Install

npm i define-env

Weekly Downloads

53

Version

1.0.3

License

ISC

Unpacked Size

18.5 kB

Total Files

10

Last publish

Collaborators

  • refzlund