dir-walker-gen
Version:
A javascript generator pattern for directlry listing
57 lines (44 loc) • 2.04 kB
Markdown
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.
```shell
$ npm install dir-walker-gen
```
```javascript
const DirGen = require('dir-walker-gen');
const options = {
folders: ["D:\\Dropbox"]
}
for (let file of DirGen(options)) {
console.log(file);
}
```
```javascript
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<sup>*</sup> | 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