Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

calendarize

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

calendarize

WIP

  • 0.0.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
5.3K
increased by8.99%
Maintainers
1
Weekly downloads
 
Created
Source

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): 224 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

FAQs

Package last updated on 21 Jan 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc