totalist
A tiny (195B to 220B) utility to recursively list all (total) files in a directory
Last updated 2 years ago by lukeed .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ gnpm install totalist 
SYNC missed versions from official npm registry.

totalist build status codecov

A tiny (195B to 224B) utility to recursively list all (total) files in a directory

Traverse a directory recursively, running a function for every file found.

With this module, you easily apply custom logic to decide which file(s) to process without worrying about accidentally accessing a directory or making repeat fs.Stats requests.

Install

$ npm install --save totalist

Modes

There are two "versions" of totalist available:

"async"

Node.js: >= 8.x
Size (gzip): 220 bytes
Availability: CommonJS, ES Module

This is the primary/default mode. It makes use of async/await and util.promisify.

"sync"

Node.js: >= 6.x
Size (gzip): 195 bytes
Availability: CommonJS, ES Module

This is the opt-in mode, ideal for scenarios where async usage cannot be supported.

Usage

Selecting a Mode

// import via npm module
import { totalist } from 'totalist';
import { totalist } from 'totalist/sync';

Example Usage

import { totalist } from 'totalist/sync';

const styles = new Set();
const scripts = new Set();

totalist('src', (name, abs, stats) => {
  if (/\.js$/.test(name)) {
    scripts.add(abs);
    if (stats.size >= 100e3) {
      console.warn(`[WARN] "${name}" might cause performance issues (${stats.size})`);
    }
  } else if (/\.css$/.test(name)) {
    styles.add(abs);
  }
});

console.log([...scripts]);
//=> [..., '/Users/lukeed/.../src/path/to/example.css', ...]

API

totalist(dir, callback)

Returns: void

Important: The "async" usage must be awaited or included within a Promise chain.

dir

Type: string
Required: true

The directory to traverse.

This may be a relative or an absolute path.

Note: Node.js will assume a relative path is meant to be resolved from the current location (process.cwd()).

callback

Type: Function
Required: true

The callback function to run for every file.

The function receives three parameters:

relPath

Type: String
The path relative to the initial dir value you provided.

absPath

Type: String
The absolute path of the file.

stats

Type: fs.Stats
The fs.Stats object for the file.

License

MIT © Luke Edwards

Current Tags

  • 3.0.1                                ...           latest (2 years ago)

7 Versions

  • 3.0.1                                ...           2 years ago
  • 3.0.0                                ...           3 years ago
  • 2.0.0                                ...           4 years ago
  • 1.1.0                                ...           4 years ago
  • 1.0.1                                ...           5 years ago
  • 1.0.0                                ...           5 years ago
  • 0.0.0                                ...           5 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (0)
None
Dev Dependencies (3)
Dependents (2)

Copyright 2013 - present © cnpmjs.org | Home |