0.1.0 • Published 1 year ago
enveror v0.1.0
enveror
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
0.1.0
1 year ago
0.0.0-alpha.5
1 year ago
0.0.0-alpha.4
2 years ago
0.0.0-alpha.3
2 years ago
0.0.0-alpha.2
2 years ago
0.0.0-alpha.1
2 years ago
0.0.0-alpha.0
2 years ago