Inject variables from environment variables or js/json files to json
Name | Version | Downloads |
---|---|---|
json-injector | ||
json-injector-cli |
- npm
$ npm install json-injector
- yarn
$ yarn add json-injector
- Example: test.template.js
module.exports = {
testVar: '${testVar:-defaultValue}',
home: '${home}',
number: '123',
a: {
b: [0],
},
};
- You can write bash syntax to inject variables with inject-env.
- Passing options to jsonInjector
import jsonInjector from 'json-injector'
import envVarInjector from 'json-injector/lib/injectors/env-var'
jsonInjector({
files: ['test'],
injectors: [envVarInjector({ TEST_VAR: 'testVar', HOME: 'home' })],
postInject: {
number: v => +v,
'a.b[0]': v => console.log(v),
},
});
- Save options in config file.
- Example: json-injector.config.js
const envVarInjector = require('json-injector/lib/injectors/env-var');
// test config
module.exports = {
files: ['test'], // files to be injected
injectors: [ // injectors to be used
envVarInjector({ TEST_VAR: 'testVar', HOME: 'home' })
],
postInject: { // post-inject action to each variable
number: v => +v,
'a.b[0]': v => console.log(v) || v,
},
};
- Injected json file will be saved as
test.json
{
"testVar": "defaultValue",
"home": "/Users/kimxogus",
"number": 123,
"a": {
"b": [
0
]
}
}
- Resolves environment variable to user-named variable in string.
const envVarInjector = require('json-injector/lib/injectors/env-var');
envVarInjector({
TEST_VAR: // key: Environment Variable name.
'testVar' // value: Variable name to be injected in json.
});
- Reads
js
orjson
files and inject their variables.
const fileInjector = require('json-injector/lib/injectors/file');
const testConfigPath = process.env.HOME + '/test';
fileInjector({
baseDir: testConfigPath, // base directory
patterns: ['config/*.json', 'config/*.js'], // file's patterns (relative to baseDir)
});