5.2.25 • Published 3 months ago

fs-iterator v5.2.25

Weekly downloads
13
License
MIT
Repository
github
Last release
3 months ago

fs-iterator

A file system iterator with filter and asyncIterator interfaces

Entries are of the format:

  • string: basename - file or directory name
  • string: path - realtive path from the directory to the file or directory
  • string: fullPath - full path to the file or directory
  • fs.Stats || fsDirent: stats - file, directory or symlink stats

Promise

const Iterator = require('fs-iterator');

// traverse skipping .git folders
const iterator = new Iterator(__dirname, { filter: (entry) => { return entry.stats.isDirectory() && entry.basename === '.git'; } });
iterator.on('error', console.log); // log expected errors without stopping flow 'ENOENT', 'EPERM', 'EACCES', 'ELOOP'

let entry = await iterator.next();
while(entry) {
  /* do something */
  entry = await iterator.next();
}

// using forEach with concurrency
const iterator2 = new Iterator(__dirname, { error: (err) => { return true; /* filter errors */ }});
const done = await iterator2.forEach((entry) => { /* do something */ }, { concurrency: 1024 })

Callback

const Iterator = require('fs-iterator');

// traverse skipping .git folders
const iterator = new Iterator(__dirname, { filter: (entry) => { return entry.stats.isDirectory() && entry.basename === '.git'; }, error: (err) => { return true; /* filter errors */ } });
iterator.forEach((entry) => { /* do something */ }, { concurrency: 1024 }, (err, done) => {})

Iterator Options:

  • number: depth - choose maximum depth of the tree to traverse. (default: Infinity)
  • function: filter - filter function to continue processing the tree. Return false to skip processing (default: process all)
  • bool: callbacks - use a filter function with a callback format like function(entry, callback). (default: false)
  • bool: alwaysStat - stat each file individually rather than fetching dirents when reading directories. (default: false)
  • bool: lstat - use lstat to get the link's stats instead of using stat on the file itself. (default: false)
  • function: error - custom error callback for expected filesystem errors ('ENOENT', 'EPERM', 'EACCES', 'ELOOP'). Return false to stop processing. (default: silent filsystem errors)

forEach Options:

  • bool: callbacks - use an each function with a callback function(entry, callback) (default: false)
  • number: concurrency - parallelism of processing. (default: Infinity)
  • number: limit - maximum number to process. (default: Infinity)
5.2.25

3 months ago

5.2.19

5 months ago

5.2.18

5 months ago

5.2.17

5 months ago

5.2.16

5 months ago

5.2.24

5 months ago

5.2.23

5 months ago

5.2.22

5 months ago

5.2.21

5 months ago

5.2.20

5 months ago

5.2.15

5 months ago

5.2.14

5 months ago

5.2.13

5 months ago

5.2.12

5 months ago

5.2.11

5 months ago

5.2.3

5 months ago

5.2.2

5 months ago

5.2.1

6 months ago

5.2.0

6 months ago

5.2.10

5 months ago

5.2.9

5 months ago

5.2.8

5 months ago

5.2.7

5 months ago

5.2.6

5 months ago

5.2.5

5 months ago

5.1.1

7 months ago

5.1.0

7 months ago

5.0.1

1 year ago

5.0.0

1 year ago

4.2.0

1 year ago

4.1.1

3 years ago

4.1.0

4 years ago

4.0.1

5 years ago

4.0.2

5 years ago

4.0.0

5 years ago

3.0.3

5 years ago

3.0.2

5 years ago

3.0.1

5 years ago

3.0.0

5 years ago

2.6.0

5 years ago

2.5.8

5 years ago

2.5.7

5 years ago

2.5.6

5 years ago

2.5.5

5 years ago

2.5.4

5 years ago

2.5.3

5 years ago

2.5.2

5 years ago

2.5.1

5 years ago

2.5.0

5 years ago

2.4.0

5 years ago

2.3.0

5 years ago

2.2.0

5 years ago

2.1.0

5 years ago

2.0.0

5 years ago

1.3.0

5 years ago

1.2.0

5 years ago

1.1.0

5 years ago

1.0.0

5 years ago