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.
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.
Install
Install with npm:
$ npm install map-files --save
Usage
var files = require('map-files');
console.log(files('templates/*.txt'));
Returns an object that looks something like:
{ a: { content: 'AAA', path: 'templates/a.txt' },
b: { content: 'BBB', path: 'templates/b.txt' },
c: { content: 'CCC', path: 'templates/c.txt' }}
options.cache
Type: Boolean
Default: false
If true
, results will be cached in memory so that subsequent lookups for the same cwd and patterns don't repeatedly hit the file system.
options.cwd
Type: String
Default: process.cwd()
Specify the current working directory
files('*.txt', {cwd: 'templates'});
options.name
Type: Function
Default: path.basename(fp, path.extname(fp))
Rename the key of each file object:
var templates = files('templates/*.txt', {
name: function (filepath) {
return path.basename(filepath);
}
});
Returns something like:
{ 'a.txt': { content: 'AAA', path: 'templates/a.txt' },
'b.txt': { content: 'BBB', path: 'templates/b.txt' },
'c.txt': { content: 'CCC', path: 'templates/c.txt' }}
options.read
Pass a custom read
function to change the object returned for each file.
Type: Function
Default: fs.readFileSync()
The default function reads files and returns a string, but you can do anything
you want with the function, like require
files:
var helpers = files('helpers/*.js', {
read: function (fp) {
return require(path.resolve(fp));
}
});
Other files libs
- 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
Running tests
Install dev dependencies:
$ npm install -d && npm test
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
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.