Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
configloader
Advanced tools
Load YAML configs based on current node environment.
Let's say you have this kind of config setup:
config/
config.yml // Shared configuration
config.dev.yml // Extended dev configuration
config.production.yml // Extended production configuration
Then ConfigLoader can help you load these based on current environment. Let's
say you are running node in a development environment by setting NODE_ENV
:
$ NODE_ENV=dev node yourapp.js
ConfigLoader would then load up config.yml
and extend it
with config.dev.yml
.
Your config.yml
might look like this:
site:
title: My Awesome Site
http:
port: 80
database:
user:
pass:
And your config.dev.yml
might look like this:
http:
port: 1337
database:
user: root
pass: IAMMEGAHAxx00r
The loaded configuration would then be:
{ site: { title: "My Awesome Site" },
http: { port: 1337 },
database: { user: 'root', pass: 'IAMMEGAHAxx00r' }
}
ConfigLoader is one single function that behaves a bit differently depending on what arguments you give it.
If you do not give ConfigLoader a callback function it will do the loading synchronously.
var configloader = require('configloader');
var config = configloader('path/to/configs');
If path/to/configs
does not contain any files matching the requirements an
error will be thrown if loading is done synchronously.
If you do give ConfigLoader a callback function it will return the loaded configuration to that function.
var configloader = require('condigloader');
configloader('path/to/configs', function (err, config) {
if (err) {
console.log('had an error :(');
return;
}
console.log(config);
});
If any of the configuration files contains YAML errors the err
argument will
be the error from js-yaml.
If no configurations files were found in path/to/configs
I think you will
get undefined
as the second argument. :P
If you want to force a certain environent to be used you can pass
{ env: 'other-env' }
as a second argument to configloader()
.
By convention ConfigLoader requires you to name your configuration files
using this pattern:
config(\.environment)?\.yml
If you'd like to change this pull requests making more use of the options
argument are very much welcome!
If ConfigLoader can't find any configured environment it will fall back on
dev
.
Install with npm:
$ npm install configloader
Tests are written using mocha
.
ISC
FAQs
Load YAML configs based on current environment.
We found that configloader 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.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.