Return an object for a glob of files. Pass a `rename` function for the keys, or a `parse` function for the content, allowing it to be used for readable or require-able files.
MIT License
Return an object for a glob of files. Pass a rename
function for the keys, or a parse
function for the content, allowing it to be used for readable or require-able files.
Install with npm:
$ npm install map-files --save
Heads up!
Breaking changes in v0.8.0. See the history for details.
var mapFiles = require('map-files');
console.log(mapFiles('templates/*.txt'));
Returns an object of vinyl files that looks something like this:
{ 'test/fixtures/a.txt': <File "test/fixtures/a.txt" <Buffer 41 41 41>>,
'test/fixtures/b.txt': <File "test/fixtures/b.txt" <Buffer 42 42 42>>,
'test/fixtures/c.txt': <File "test/fixtures/c.txt" <Buffer 43 43 43>> }
Specify the current working directory
Params
Type: String
Default: process.cwd()
Example
files('*.txt', {cwd: 'templates'});
Rename the key of each file object:
Params
Type: Function
Default: file.relative
Example
var files = mapFiles('templates/*.txt', {
renameKey: function (file) {
return file.basename;
}
});
Returns something like:
{ 'a.txt': <File "test/fixtures/a.txt" <Buffer 41 41 41>>,
'b.txt': <File "test/fixtures/b.txt" <Buffer 42 42 42>>,
'c.txt': <File "test/fixtures/c.txt" <Buffer 43 43 43>> }
Pass an object of methods to decorate as getters onto each file in the results.
var yaml = require('js-yaml');
var files = mapFiles('test/fixtures/*.yml', {
renameKey: 'stem',
decorate: {
yaml: function(file) {
return yaml.safeLoad(file.contents.toString());
}
}
});
console.log(files.a.yaml);
//=> {title: 'AAA'}
v0.8.0
options.name
was removed, use options.renameKey
instead.options.cache
was removedoptions.read
was removedoptions.decorate
was added. See the decorate docs.v0.5.0
As of v0.5.0, map-files returns absolute file paths by default. You can achieve the same results by using a custom name
function as in the examples.
You might also be interested in these projects:
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Generate readme and API documentation with verb:
$ npm install verb && npm run docs
Or, if verb is installed globally:
$ verb
Install dev dependencies:
$ npm install -d && npm test
Jon Schlinkert
Copyright © 2016, Jon Schlinkert. Released under the MIT license.
This file was generated by verb, v0.9.0, on April 23, 2016.