map-files v0.8.2
map-files

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
Install with npm:
$ npm install map-files --save
Heads up!
Breaking changes in v0.8.0. See the history for details.
Usage
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>> }
Options
options.cwd
Specify the current working directory
Params
Type: String
Default: process.cwd()
Example
files('*.txt', {cwd: 'templates'});
options.renameKey
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>> }
options.decorate
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'}
History
v0.8.0
options.name
was removed, useoptions.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.
Related projects
You might also be interested in these projects:
- export-files: node.js utility for exporting a directory of files as modules. | homepage
- file-reader: Read a glob of files, dynamically choosing the reader or requiring the files based on… more | homepage
- filter-files: Recursively read directories and return a list of files, filtered to have only the files… more | homepage
- micromatch: Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | homepage
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Building docs
Generate readme and API documentation with verb:
$ npm install verb && npm run docs
Or, if verb is installed globally:
$ verb
Running tests
Install dev dependencies:
$ npm install -d && npm test
Author
Jon Schlinkert
License
Copyright © 2016, Jon Schlinkert. Released under the MIT license.
This file was generated by verb, v0.9.0, on April 23, 2016.
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago