config-expander
Expands expressions in config files
example
file.js
import { expand } from "config-expander";
expand({ key: "${value + 1}" }, { constants: { value: 77 } }).then(r =>
console.log(JSON.stringify(r))
);
expand({ constants: { base: 10000 }, http: { port: "${base + 1}" } }).then(r =>
console.log(JSON.stringify(r))
);
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.envos
Object os modulebasedir
string filesystem configuration start point
expand
Expands expressions in a configuration object
Parameters
Returns Promise<Object> resolves to the expanded configuration
Context
Type: Object
Properties
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
Returns string replaced content
toUpperCase
Convert string into upper case.
Parameters
Returns string uppercase result
toLowerCase
Convert string into lower case.
Parameters
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 executable.
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
Returns any merged b into a
install
With npm do:
npm install config-expander
license
BSD-2-Clause