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
  

/define-env/

    Package Sidebar

    Install

    npm i define-env

    Weekly Downloads

    52

    Version

    1.0.3

    License

    ISC

    Unpacked Size

    18.5 kB

    Total Files

    10

    Last publish

    Collaborators

    • refzlund