Skip to content
This repository has been archived by the owner on Oct 20, 2022. It is now read-only.

Latest commit

 

History

History
73 lines (58 loc) · 2.6 KB

README.md

File metadata and controls

73 lines (58 loc) · 2.6 KB

A recursive read dir, generator based implementation

Build Status Coverage Status Installs! npm License

A NodeJS module to get a generator for files in a directory and subdirectories, with a file filter capability.

Install

npm install --save fs-readdir-rec-gen

API

fsReadDirRecGen(dir [, options] [, filter] [, recursive=true])
  • dir {String} - the directory where to look for files.
  • options {String|Object} - optional, options passed NodeJs File System API (see NodeJS' fs API).
  • filter {Function} - optional, a function to filter on file names. Defaults to no filter.
  • recursive {Boolean} - optional, whether to search in sub directories. Defaults to true.

If dir does not exists, an exception is immediately thrown by NodeJS' fs API.

Examples

With a simple .js file filter:

var fsReadDirRecGen = require('fs-readdir-rec-gen')

function dotJsFilesFilter(fileName) {
    return fileName.endsWith('.js');
};
for (let file of fsReadDirRecGen('./test/testData', dotJsFilesFilter)) {
    console.log('Relative path to file : ' + file);
}
Relative path to file : test/testData/aa/class3.js
Relative path to file : test/testData/abstractsuperclass.js
Relative path to file : test/testData/class.js
Relative path to file : test/testData/class2.js

With a RegExp file filter:

var fsReadDirRecGen = require('fs-readdir-rec-gen')

function classdotJsFileFilter() {
    var format = RegExp(/.*class.*\.js/i);
    return function (filename) {
        return format.test(filename);
    }
};
for (let file of fsReadDirRecGen('./test/testData', classdotJsFileFilter())){
    console.log('Relative path to file : ' + file);
}

Without file filter:

var fsReadDirRecGen = require('fs-readdir-rec-gen')

for (let file of fsReadDirRecGen('./test/testData')){
    console.log('Relative path to file : ' + file);
}

More examples in examples.js and test dir.