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.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
map-files
0.8.28 years ago10 years agoMinified + gzip package size for map-files in KB

Readme

map-files NPM version NPM downloads Build Status
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, use options.renameKey instead.
  • options.cache was removed
  • options.read was removed
  • options.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.