map-files

    0.8.2 • Public • Published

    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.

    Install

    npm i map-files

    DownloadsWeekly Downloads

    3,118

    Version

    0.8.2

    License

    MIT

    Last publish

    Collaborators

    • jonschlinkert