1.1.0 • Published 4 years ago

dynamic-variables v1.1.0

Weekly downloads
19
License
MIT
Repository
github
Last release
4 years ago

divider

Setting up

Installing it

You can install it from one of these 3 options:

with NPM

  $ npm install dynamic-variables

with Yarn

  $ yarn add dynamic-variables

manually

you may also install it as a development dependency in a package.json file:

  // package.json
  "dependencies": {
    "dynamic-variables": "latest"
  }

Then install it with either npm install or yarn install

divider

Getting started

Basic usage

import { env } from 'dynamic-variables'

// it will be assigned 'API_SERVER_PUBLIC` in the browser and 'API_SERVER_CONTAINER' in the server
const backendEndpoint = env(process.env.API_SERVER_PUBLIC, process.env.API_SERVER_CONTAINER)

Advanced usage

Multiple named environments + Custom environment detector

import { env, setDetector } from 'dynamic-variables'

setDetector(() => process.browser ? 'BROWSER' : 'SSR')

// it will be assigned 'API_SERVER_PUBLIC` in the browser and 'API_SERVER_CONTAINER' in the server
const backendEndpoint = env({BROWSER: process.env.API_SERVER_PUBLIC, SSR: process.env.API_SERVER_CONTAINER})

Multiple services endpoints

import environment, { env } from 'dynamic-variables'

module.exports = environment({
  redis: env(process.env.REDIS_CONTAINER),
  backend: {
    graphq: env(process.env.GRAPHQL_SERVER_PUBLIC, process.env.GRAPHQL_SERVER_CONTAINER),
    // 🌈 Note that backend.rest below is a function! ☄️
    // As such, it can avoid ReferenceErrors in case the variables in it were not defined
    rest: () => env(process.env.REST_SERVER_PUBLIC, process.env.REST_SERVER_CONTAINER),
  }
})

For more examples, please check the tests file.

I hope you enjoy using this tiny lib! 🎉

divider