1.0.0 • Published 2 years ago

@voxasoftworks/envi v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

@voxasoftworks/envi

A simple library to traverse configuration files and produce environment files.

Replace your .env file with an easier to read config.json.

The @voxasoftworks/envi command will load config.json from the current working directory, and output a .env file in the same directory.

envi converts

{
  "SERVICE_A": {
    "API": {
      "API_TOKEN": "1234567890",
      "API_ENDPOINT": "https://api-a.example.com",
      "VERSION": "v2"
    }
  },
  "SERVICE_B": {
    "API": {
      "TOKEN": "0987654321",
      "ENDPOINT": "https://api-b.example.com",
      "VERSION": "v1"
    }
  },
  "WEBSITE": {
    "API": {
      "CONSUMER_KEY": "1234567890",
      "CONSUMER_SECRET": "0987654321",
      "API_ENDPOINT": "https://api-website.example.com",
      "API_VERSION": "v1"
    },
    "EMAIL": {
      "HOST": "smtp.example.com",
      "PORT": "587",
      "USERNAME": "hello@example.com",
      "PASSWORD": "example"
    }
  }
}

into this...

SERVICE_A_API_API_TOKEN="1234567890"
SERVICE_A_API_API_ENDPOINT="https://api-a.example.com"
SERVICE_A_API_VERSION="v2"
SERVICE_B_API_TOKEN="0987654321"
SERVICE_B_API_ENDPOINT="https://api-b.example.com"
SERVICE_B_API_VERSION="v1"
WEBSITE_API_CONSUMER_KEY="1234567890"
WEBSITE_API_CONSUMER_SECRET="0987654321"
WEBSITE_API_API_ENDPOINT="https://api-website.example.com"
WEBSITE_API_API_VERSION="v1"
WEBSITE_EMAIL_HOST="smtp.example.com"
WEBSITE_EMAIL_PORT="587"
WEBSITE_EMAIL_USERNAME="hello@example.com"
WEBSITE_EMAIL_PASSWORD="example"

Installation

yarn add -D @voxasoftworks/envi

Usage

By default, the command will load config.json from the current working directory, and output a .env file in the same directory.

// In package.json...
{
    "scripts": {
        "config": "@voxasoftworks/envi"
    }
}

Generating an environment file

Using the --configInput and --envOutput, you can specify the path to the configuration file and the path to the environment file.

@voxasoftworks/envi generate --config ./env.json --output ./env/.env

Generating example files

Using the --configExample and --envExample flags, you can generate example configuration and environment files.

@voxasoftworks/envi --configExample ./config.example.json
@voxasoftworks/envi --envExample ./config.example.json