JavaScript generator pattern for efficient directory listing
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 yield
s to the calling routine allowing it to process the file as needed.
$ npm install dir-walker-gen
const DirGen = require('dir-walker-gen');
const options = {
folders: ["D:\\Dropbox"]
}
for (let file of DirGen(options)) {
console.log(file);
}
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:
excludeExtensions
is not really needed if includeExtensions
is supplied.