config-expander
Expands expressions in config files
example
file.js
import { expand } from "config-expander";
// expanding hole expressions at the value position (result key is a number)
expand({ key: "${value + 1}" }, { constants: { value: 77 } }).then(r =>
console.log(JSON.stringify(r))
);
// calculate port numbers
expand({ constants: { base: 10000 }, http: { port: "${base + 1}" } }).then(r =>
console.log(JSON.stringify(r))
);
// load config from file
expand("${include('tests/fixtures/other.json')}").then(r =>
console.log(JSON.stringify(r))
);
Output
{ "key" : 78 }
{ "constants": { "base": 10000 }, "http": { "port": 10001 }}
{ "key": "value from other" }
Examples
read config file (json)
const configuration await expand("${include('" + '/path/to/the/config.json' + "')}")
load key file
{
"ca": "${document(os.home + '/ca.pem')}"
}
calculate port numbers
{
"http-port": "${base + 0}",
"https-port": "${base + 1}"
}
conditions
{
"copy-cmd": "${os.platform == 'win32' ? 'copy' : 'cp'}"
}
API
Table of Contents
defaultConstants
Predefined constants
Type: Object
Properties
-
env
Object environment variables from process.env -
os
Object os module -
basedir
string filesystem configuration start point
expand
Expands expressions in a configuration object
Parameters
Returns Promise resolves to the expanded configuration
Value
Type: Object
Properties
Apply
Type: Function
Parameters
ConfigFunction
Type: Object
Properties
functions
knwon functions
include
include definition form a file
Parameters
-
file
string file name to be included
Returns string content of the file
replace
Replace string
Parameters
-
source
string input value
Returns string replaced content
toUpperCase
convert string into upper case
Parameters
-
source
string input value
Returns string uppercase result
toLowerCase
convert string into lower case
Parameters
-
source
string input value
Returns string lowercase result
split
split source string on pattern boundaries
Parameters
Returns Array<string> separated source
encrypt
Encrypt a plaintext value
Parameters
Returns string encrypted value
decrypt
Decrypt a former encrypted string
Parameters
Returns string plaintext
spawn
Call programm
Parameters
Returns string stdout
merge
merge from b into a When a and b are arrays of values only the none duplaces are appendend to a
Parameters
-
a
any -
b
any
Returns any merged b into a
install
With npm do:
npm install config-expander
license
BSD-2-Clause