1.0.0 • Published 1 year ago

@ankurthakurdelhi/config-helper v1.0.0

Weekly downloads
-
License
ISC
Repository
gitlab
Last release
1 year ago

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