Map configuration objects to application methods.
Install with npm:
$ npm i map-config --save
var MapConfig = require('map-config');
Create a new instance of MapConfig with a specified map and application.
Params
app {Object}: Object containing the methods that will be called based on the map specification.map {Object}: Optional object specifying how to map a configuration to an application.Example
var mapper = new MapConfig(app, map);
Map properties to methods and/or functions.
Params
key {String}: property key to map.val {Function|Object}: Optional function to call when a config has the given key. Functions will be passed (val, key, config) when called. Functions may also take a callback to indicate async usage. May also pass another instance of MapConfig to be processed.returns {Object} this: to enable chainingExample
mapper
.map('baz')
.map('bang', function(val, key, config) {
});
Create an alias for property key.
Params
alias {String}: Alias to use for key.key {String}: Actual property or method on app.returns {Object}: Returns the instance for chaining.Example
mapper.alias('foo', 'bar');
Process a configuration object with the already configured map and app.
Params
config {Object}: Configuration object to map to application methods.cb {Function}: Optional callback function that will be called when finished or if an error occurs during processing.Example
mapper.process(config);
Add a key to the .keys array. May also be used to add an array of namespaced keys to the .keys array. Useful for mapping "sub-configs" to a key in a parent config.
Params
key {String}: key to push onto .keysarr {Array}: Array of sub keys to push onto .keysreturns {Object} this: for chainingExample
mapper.addKey('foo');
console.log(mapper.keys);
//=> ['foo']
var one = new MapConfig();
var two = new MapConfig();
two.map('foo');
two.map('bar');
two.map('baz');
// map config `two` to config `one`
one.map('two', function(val, key, config, next) {
two.process(val, next);
});
// map keys from config `two` to config `one`
one.addKey('two', two.keys);
console.log(one.keys);
//=> ['two.foo', 'two.bar', 'two.baz']
Install dev dependencies:
$ npm i -d && npm test
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Brian Woodward
Copyright © 2016 Brian Woodward Released under the MIT license.
This file was generated by verb, v0.1.0, on February 23, 2016.