5.2.25 • Published 8 months ago

fs-iterator v5.2.25

Weekly downloads
13
License
MIT
Repository
github
Last release
8 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

8 months ago

5.2.19

9 months ago

5.2.18

9 months ago

5.2.17

9 months ago

5.2.16

9 months ago

5.2.24

9 months ago

5.2.23

9 months ago

5.2.22

9 months ago

5.2.21

9 months ago

5.2.20

9 months ago

5.2.15

9 months ago

5.2.14

9 months ago

5.2.13

9 months ago

5.2.12

9 months ago

5.2.11

9 months ago

5.2.3

10 months ago

5.2.2

10 months ago

5.2.1

10 months ago

5.2.0

10 months ago

5.2.10

10 months ago

5.2.9

10 months ago

5.2.8

10 months ago

5.2.7

10 months ago

5.2.6

10 months ago

5.2.5

10 months ago

5.1.1

11 months ago

5.1.0

11 months ago

5.0.1

2 years ago

5.0.0

2 years ago

4.2.0

2 years 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

6 years ago

2.5.1

6 years ago

2.5.0

6 years ago

2.4.0

6 years ago

2.3.0

6 years ago

2.2.0

6 years ago

2.1.0

6 years ago

2.0.0

6 years ago

1.3.0

6 years ago

1.2.0

6 years ago

1.1.0

6 years ago

1.0.0

6 years ago