normalize-config 
Normalize a declarative configuration with any combination of src-dest mappings, files arrays, files objects and options into a consistent format so the config can easily be passed to any build system.
Install
Install with npm:
$ npm i normalize-config --save
Usage
var config = require('normalize-config');
All of the following normalize to the same object:
config('*.js', 'dist/')
config(['*.js'], 'dist/')
config({'dist/': '*.js'})
config({'dist/': ['*.js']})
config({src: '*.js', dest: 'dist/'})
config({src: ['*.js'], dest: 'dist/'})
config({files: {'dist/': '*.js'}})
config({files: {'dist/': ['*.js']}})
config({files: [{'dist/': ['*.js']}]})
Examples
All of the following:
config('*.js', 'dist/', {cwd: 'lib'});
config({src: '*.js', dest: 'dist/', options: {cwd: 'lib'}});
config({src: '*.js', dest: 'dist/'}, {cwd: 'lib'});
result in:
{
options: { cwd: 'lib' },
files: [
{ options: { cwd: 'lib' },
src: [ '*.js' ],
dest: 'dist/'
}
]
}
All of the following result in the same object:
config('lib/*.js', 'foo/');
config({'foo/': 'lib/*.js'});
config({dest: 'foo/', src: 'lib/*.js'});
no dest
All of the following result in the same object:
config('lib/*.js');
config(['lib/*.js']);
config({'': 'lib/*.js'});
config({'': ['lib/*.js']});
config({src: 'lib/*.js'});
config({src: ['lib/*.js']});
config({src: 'lib/*.js', dest: ''});
config({src: ['lib/*.js'], dest: ''});
with dest
All of the following result in the same object:
config('lib/*.js', 'foo/');
config(['lib/*.js'], 'foo/');
config({'foo/': 'lib/*.js'});
config({'foo/': ['lib/*.js']});
config({src: ['lib/*.js'], dest: 'foo/'});
config({src: 'lib/*.js', dest: 'foo/'});
Related projects
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
Jon Schlinkert
License
Copyright © 2016 Jon Schlinkert
Released under the MIT license.
This file was generated by verb on January 05, 2016.