Skip to content

JavaScript generator pattern for efficient directory listing

License

Notifications You must be signed in to change notification settings

vsoneji/dir-walker-gen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dir-walker-gen Build Status

JavaScript generator pattern for efficient directory listing.

Unlike other directory walkers, this coding pattern will NOT try to scan the entire tree. The directory listings are returned as a generator pattern and the subdirectories are only scanned when the calling method has consumed all the normal files in a directory.

The async nature of the function, it yields to the calling routine allowing it to process the file as needed.

Installation

$ npm install dir-walker-gen

Basic Usage

const DirGen = require('dir-walker-gen');

const options = {
    folders: ["D:\\Dropbox"]
}

for (let file of DirGen(options)) {
    console.log(file);
}

Options Object

const DirGen = require('dir-walker-gen');

const options = {
    folders: ["D:\\Dropbox", "D:\\OneDrive"],
    silent: true,
    ignoreDotDir: true,
    excludeFolders: ['Public'],
    excludeExtensions: ['tmp', 'docx', 'xlsx'],
    includeExtensions: ['jpeg', 'jpg', 'png', 'gif']
};

for (let file of DirGen(options)) {
    console.log(file);
}
Option* Comment Default
folders (Required) List of starting folders
silent Does not show console warning when directories do not exist false
ignoreDotDir Ignores directories that start with a dot (e.g. .git, .vscode, etc) false
excludeFolders Exclude all folder that ends with any of the given strings empty list (ignore nothing)
excludeExtensions List of extensions to ignore empty list (ignore nothing)
includeExtensions List of extensions to scan (all other extensions are ignored) empty list (ignore nothing)

Notes:

  1. excludeExtensions is not really needed if includeExtensions is supplied.
  2. Include and Exclude strings are case sensitive