Files
formipay/node_modules/totalist/readme.md
dwindown e8fbfb14c1 fix: prevent asset conflicts between React and Grid.js versions
Add coexistence checks to all enqueue methods to prevent loading
both React and Grid.js assets simultaneously.

Changes:
- ReactAdmin.php: Only enqueue React assets when ?react=1
- Init.php: Skip Grid.js when React active on admin pages
- Form.php, Coupon.php, Access.php: Restore classic assets when ?react=0
- Customer.php, Product.php, License.php: Add coexistence checks

Now the toggle between Classic and React versions works correctly.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-18 17:02:14 +07:00

2.8 KiB

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