
Security News
rv Is a New Rust-Powered Ruby Version Manager Inspired by Python's uv
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
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.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.
Security News
AGENTS.md is a fast-growing open format giving AI coding agents a shared, predictable way to understand project setup, style, and workflows.