@ankurthakurdelhi/config-helper
v1.0.0
Published
Helper for loading Configuration as a singleton and use it dynamically in the application without reloading the application. It currently support loading the Configuration from a Local JS/JSON file or through HTTP(S) URL. It support Expiry, thus, it reloa
Downloads
1
Maintainers
Readme
Helper for loading Configuration as a singleton and use it dynamically in the application without reloading the application. It currently support loading the Configuration from a Local JS/JSON file or through HTTP(S) URL. It support Expiry, thus, it reloads the Config internally after the given expiry.
Introduction
We wanted a way using which we can change the Configuration of a certain environment without reloading the whole NodeJS application. Adding to this, we wanted to load the Configuration from a Remote Application (e.g. Strapi CMS) so that it can be updated remotely whenever required and without reloading the whole application.
Usage
var configHelper = require("config-helper");
// Loading a Relative Config file with Expiry of 4 seconds
var configLocal = configHelper("./myconfig.json", 4000);
// Loading an Absolute Config file with Expiry of 10 seconds
var configAnotherLocal = configHelper("/opt/some/place/on/earth/config.js", 10000);
// Loading an Absolute Config file with Expiry of 30 seconds
var configRemote = configHelper("https://someurl/which/returns/JSON", 30000);
// Using it
/* Assuming that we get the below Object as Config:
{ "name": "Scorpio-N", "data": { "petrol": false, "4wd": true } }
*/
console.log("Full Configuration Object", config());
// returns { "name": "Scorpio-N", "data": { "petrol": false, "4wd": true } }
console.log("Vehicle Name", config("name"));
// returns "Scorpio-N"
console.log("Is Vehicle 4x4 ?", config("data.4wd"));
// returns true