Nourishing Plushie Monster

    totalist
    TypeScript icon, indicating that this package has built-in type declarations

    3.0.0 • Public • Published

    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

    Install

    npm i totalist

    DownloadsWeekly Downloads

    3,236,456

    Version

    3.0.0

    License

    MIT

    Unpacked Size

    7.39 kB

    Total Files

    9

    Last publish

    Collaborators

    • lukeed