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

0.1.0 • Public • Published

enveror

npm

This library under alpha version now.

environment variables managing library for TypeScript (or JavaScript).

$ npm i enveror

feature

  • easy to validate type
  • easy to use some type as env val(string/number/boolean/string[]/number[]/object)
  • easy to define nested env var
  • easy to use array for env var

how to use

place .enveror to current dir as following content.

STAGE = "dev"
CLOUD.API_KEY_ID = "hogehoge=hog"
import { Enveror } from 'enveror';

const enveror = new Enveror();
const stage = enveror.get('STAGE').as_string();
console.log(stage);

const cloud_api_key_id = enveror.get('CLOUD').get('API_KEY_ID').as_string();
// const cloud_api_key_id = enveror.get('CLOUD.API_KEY_ID').as_string(); // same as above
console.log(cloud_api_key_id);

env format

default loaded file is ./.enveror.

You can write environment variables as following format.

STAGE = "dev"
CLOUD.API_KEY_ID = "hogehoge=hog"
CLOUD.API_SECRET_KEY = "fug+;l[l;uw:er\-0-63-096z,nxvcafuga"
CLOUD.STORAGE.IMAGES = "myimages"
CORS_ORIGINS =["http://localhost:3000"]
WORKER_COUNT =4
TIMEOUT_SECONDS= 2.3
EMPTY_STRING=" "
SAMPLE = true

above file is interpretted as following object

{
  "STAGE": "dev",
  "CLOUD": {
    "API_KEY_ID": "hogehoge=hog",
    "API_SECRET_KEY": "fug+;l[l;uw:er\\-0-63-096z,nxvcafuga",
    "STORAGE": { "IMAGES": "myimages" }
  },
  "API": { "CORS_ORIGIN": ["http://localhost:3000"] },
  "WORKER_COUNT": 4,
  "TIMEOUT_SECONDS": 2.3,
  "EMPTY_STRING": " ",
  "SAMPLE": true
}

points

  • "" is interpretted as string var
  • [] is interpretted as array
  • . is interpretted as nested key

supported types

type assertion
string as_string()
number as_number()
boolean as_boolean()
string[] as_array_string()
number[] as_array_number()

in additional, string in nested object is accessable by .get("X").get("Y").as_string() or .get("X.Y").as_string()

API

Constructor

You can pass options into Enveror().

new Enveror({
  routes = ['./.enveror.local'], // additional enveror file
  disableDefault = false, // disable loading `./.enveror`
});

Methods

method args return
get(key:string):Value key is key of env var Value of key
keys():string[] keys in 1-depth
to_object():object loaded object
to_string():string stringified loaded object

Value Methods

Value is value container for environment variable(s).

it has type-assertion and children getter.

method args return
as_any(): ValueType get var without assertion
as_string(): string assertion for string
as_number(): number assertion for number
as_boolean(): boolean assertion for boolean
as_array_string(): string[] assertion for string[]
as_array_number(): number[] assertion for number[]
get(key: string): Value key is key of child child Value of key
keys(): string[] keys of children

internal type-checker for variable

KEY = "VAR", KEY= "VAR", KEY ="VAR" and KEY="VAR" is same meaning in this library.

/^"._"$/           => "string"
/^[0-9]+$/         => "number"
/^[0-9]+.[0-9]+$/  => "number"
/^(true|false)$/   => "boolean"
/^\[._\]$/         => "array"
not matched        => Error

Package Sidebar

Install

npm i enveror

Weekly Downloads

2

Version

0.1.0

License

MIT

Unpacked Size

17.1 kB

Total Files

6

Last publish

Collaborators

  • ysuzuki19