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 --saveHeads 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.namewas removed, useoptions.renameKeyinstead.options.cachewas removedoptions.readwas removedoptions.decoratewas 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 docsOr, if verb is installed globally:
$ verbRunning tests
Install dev dependencies:
$ npm install -d && npm testAuthor
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.
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
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago