0.5.0 • Published 8 years ago

map-config v0.5.0

Weekly downloads
27,439
License
MIT
Repository
github
Last release
8 years ago

map-config NPM version Build Status

Map configuration objects to application methods.

Install

Install with npm:

$ npm i map-config --save

Usage

var MapConfig = require('map-config');

API

MapConfig

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

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 chaining

Example

mapper
  .map('baz')
  .map('bang', function(val, key, config) {
  });

.alias

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

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);

.addKey

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 .keys
  • arr {Array}: Array of sub keys to push onto .keys
  • returns {Object} this: for chaining

Example

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']

Related projects

  • assemble: Assemble is a powerful, extendable and easy to use static site generator for node.js. Used… more | homepage
  • generate: Fast, composable, highly extendable project generator with a user-friendly and expressive API. | homepage
  • templates: System for creating and managing template collections, and rendering templates with any node.js template engine.… more | homepage
  • update: Easily keep anything in your project up-to-date by installing the updaters you want to use… more | homepage
  • verb: Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used… more | homepage

Running tests

Install dev dependencies:

$ npm i -d && npm test

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Author

Brian Woodward

License

Copyright © 2016 Brian Woodward Released under the MIT license.


This file was generated by verb, v0.1.0, on February 23, 2016.

0.5.0

8 years ago

0.4.4

8 years ago

0.4.3

8 years ago

0.4.2

8 years ago

0.4.1

8 years ago

0.4.0

8 years ago

0.3.0

8 years ago

0.2.2

8 years ago

0.2.1

9 years ago

0.2.0

9 years ago

0.1.1

9 years ago

0.1.0

9 years ago