easy-loader
v1.1.1
Published
Simple & lightweight configuration loader for every day usage
Downloads
4
Maintainers
Readme
Easy loader
Simple & lightweight configuration loader for every day usage.
Easy loader helps to organize configuration files with hierarchical structured data inside.
Installation
npm install easy-loader --save
or
yarn add easy-loader
Usage
Basic file structure
root
|- config
|--- default.js // <-- optional file, but recommended to add here default values
|--- development.js
|--- staging.js
|--- production.js
|- config.js // <-- the only one file you rely on in your application
|- .localrc // <-- possibly you've already been using 'rc' module
Use configs in your app
Suppose you define your entry point for accessing configs config.js
const optionalCustomOptions = {
pattern: ['config/<%=NODE_ENV%>.js', 'configs/<%=NODE_ENV%>.js', '<%=NODE_ENV%>.js'],
patternVars: { NODE_ENV: process.env.NODE_ENV || 'development' },
patternDefaultVars: { NODE_ENV: 'default' },
cwd: process.cwd(),
useRC: true,
rcOpts: { prefix: 'local' },
mergeWithDefaults: true,
};
module.exports = require('easy-loader')(optionalCustomOptions);
And now you can use any of your config options from any place in your code, for example:
const config = require('./path/to/config');
const pg = require('pg');
const pgClient = pg.Client(config('database.pg')); // also available by using dot notation like: config.database.pg
Configuration
You may define different behavior to easy-loader
by passing options from previous example.
pattern
- array or string - template path to configuration files, should use lodash.template format
patternVars
- object - contains all variables needed to be passed into pattern template
patternDefaultVars
- object - same as patternVars
, but contains values to reach default file
cwd
- string - root directory where files are searching
useRC
- boolean - whether or not to use rc
library
rcOpts
- object - currently rcOpts.prefix
is used only, but can be extended in future
mergeWithDefaults
- boolean - whether or not to merge values with content from default file
Advanced usage
TODO:
License
Easy loader is released under the MIT license.