
Company News
/Security News
Socket Selected for OpenAI's Cybersecurity Grant Program
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.
handy-config
Advanced tools
A lightweight module that takes care of handling configs / credentials based on node environment
A lightweight module that takes care of handling configs / credentials based on node environment
Require the module with:
var cfg = require('handy-config')(); //in a single file
global.cfg = require('handy-config')(); //globally
if (cfg.error) throw cfg.error;
The module will load only the data specific to your NODE_ENV.
This is how your .cfg file should look like:
{
"all": {
"session_secret": "meatballs",
"port": 3000
},
"production": {
"port": 80,
"mongo_url": "mongodb://localhost/prod",
"mongo_pass": "spaghetti"
},
"development": {
"port": 8080,
"mongo_url": "mongodb://localhost/dev"
}
}
Fields under all apply regardless of NODE_ENV, but will get overridden by environment specific fields.
In this example the port field doesn't apply (given NODE_ENV='development'), because it was already defined.
Given that you set NODE_ENV to production, invoking the module returns the following:
cfg = {
port: 80,
mongo_url: "mongodb://localhost/prod"
mongo_pass: "spaghetti",
session_secret: "meatballs"
}
// FYI the module uses the spread operator to handle this
// cfg = {...config.all, ...config.production}
You only have to invoke the module once.
// app.js
var cfg = require('handy-config')(); //configures the modules and returns the config
// This step cannot be omitted and needs to be done before all other imports
// mongo.js
var cfg = require('handy-config'); //returns the config
You can override the default file name and encoding. Below are the defaults:
var cfg = require('handy-config')({
path: '.cfg',
encoding: 'utf8'
});
NODE_ENV easilyYou can add this to your package.json
"scripts": {
"dev": "set NODE_ENV=development&& node app",
"prod": "set NODE_ENV=production&& node app"
}
And then just run it in your command line
npm dev
This will automatically set your NODE_ENV before runtime.
Run this command in your command line:
npm i handy-config
And that's it!
FAQs
A lightweight module that takes care of handling configs / credentials based on node environment
We found that handy-config demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
/Security News
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.

Security News
Socket CEO Feross Aboukhadijeh joins 10 Minutes or Less, a podcast by Ali Rohde, to discuss the recent surge in open source supply chain attacks.

Research
/Security News
Campaign of 108 extensions harvests identities, steals sessions, and adds backdoors to browsers, all tied to the same C2 infrastructure.