https://github.com/animatedcreativity/node-file-config
Automatically read config from files for a project. If changes are made to the config files, a new copy of config is fetched next time.
https://github.com/animatedcreativity/node-file-config
Last synced: 4 months ago
JSON representation
Automatically read config from files for a project. If changes are made to the config files, a new copy of config is fetched next time.
- Host: GitHub
- URL: https://github.com/animatedcreativity/node-file-config
- Owner: animatedcreativity
- Created: 2019-03-21T04:24:30.000Z (about 7 years ago)
- Default Branch: glitch
- Last Pushed: 2019-04-15T15:33:14.000Z (about 7 years ago)
- Last Synced: 2025-10-20T05:50:47.642Z (8 months ago)
- Language: JavaScript
- Size: 13.7 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# node-file-config
Automatically read config from files for a project. If changes are made to the config files, a new copy of config is fetched next time.
**Usage:**
```
var fileConfig = require("node-file-config");
var config = new fileConfig("");
console.log(config.get(userConfig, files));
```
- `userConfig`: Optional. If any user config is provided it will not be overridden and will just combine with the config read from the files.
- `files`: Additional config files array if you want to look for config in more files.
The module checks for these config files automatically even if no additional files are provided:
- ../../.js
- ../.js
- ./.js
- ../../.js
- ../.js
- ./.js
- ./config.js
- path.dirname(require.main.filename) + /.js
- path.dirname(require.main.filename) + /config.js
- __dirname + .js
- __dirname + config.js
The priority of config is decided in the same order. But, if you specify extra config `files` as mentioned above, they will have top priority in the order of array provided.
All data gets combined with `userConfig` from all the found config files.
---------------------------------------
**Example:**
Files...
../../.js
```
exports = module.exports = function() {
return {
test1: "test123", // different than user config, check below
test2: "test456", // different than user config, check below
test3: "test3"
}
};
```
./.js
```
exports = module.exports = function() {
return {
test3: "test10", // different than the previous config file
test4: "test4",
test5: "test5"
}
};
```
./config.js
```
exports = module.exports = function() {
return {
test5: "test50", // different than the previous config file
test6: "test6",
test7: "test7"
}
};
```
Let's fetch...
```
var fileConfig = require("node-file-config");
var config = new fileConfig("");
console.log(config.get({test1: "test1", test2: "test2"}));
```
Will give...
```
{
test1: "test1",
test2: "test2",
test3: "test3",
test4: "test4",
test5: "test5",
test6: "test6",
test7: "test7"
}
```
Now, let's say you made changes on the go...
../../.js
```
exports = module.exports = function() {
return {
test1: "test123", // different than user config, check below
test2: "test456", // different than user config, check below
test3: "test3",
test5: "testChanged",
test8: "testNew"
}
};
```
When fetching again next time while project is still running...
```
console.log(config.get({test1: "test1", test2: "test2"}));
```
Will give...
```
{
test1: "test1",
test2: "test2",
test3: "test3",
test4: "test4",
test5: "testChanged",
test6: "test6",
test7: "test7",
test8: "testNew"
}
```