1.0.1 • Published 10 years ago

@flowpl/jsonconfig v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
10 years ago

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

1.0.2

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago