1.0.1 • Published 10 years ago
@flowpl/jsonconfig v1.0.1
features
- load Object from a JSON file
- explicitly reference additional files and merge contents into a single Object
- load all files from a directory and merge their contents (conf.d style)
- explicitly reference a directory to import files from
install
npm install git://github.com/flowpl/jsonconfig_js.git
usage
var config = require('jsonconfig_js').load('pathToFile.json');config file syntax
plain JSON string
file1.json
{"option1": "value1"}results in:
{"option1": "value1"}import file
file1.json
{"option1": "value1", "imports": ["/path/to/additional_file.json"]}additional_file.json
{"option2": "value2"}results in:
{"option2": "value2", "option1": "value1"}import directory
file1.json
{"option1": "value1", "imports": ["/path/to/conf.d"]}conf.d/additional_file1.json
{"option2":"value2"}conf.d/additional_file2.json
{"option3":"value3"}results in:
{"option2":"value2","option3":"value3","option1":"value1"}cascading imports
file1.json
{"option1": "value1", "imports": ["/path/to/file2.json"]}file2.json
{"option2": "value2", "imports": ["/path/to/file3.json"]}file3.json
{"option3": "value3", "imports": ["/path/to/file3.json"]}results in:
{"option3":"value3","option2":"value2","option1":"value1"}Beware: circular imports result in infinite loops
overwriting values
file1.json
{"option1": "value1", "imports": ["/path/to/file2.json", "/path/to/file3,json"]}file2.json
{"option1": "overwritten value", "option2": "value2", "option3": "value3"}file3.json
{"option3": "newValue3"}results in:
{"option1":"value1", "option2": "value2", "option3": "newValue3"}The second import overwrites the first. The third import overwrites the second. The current file always wins.
cascading imports support overwriting as well
test
npm test