Skip to content

Searches for files in a directory and executes a callback for each. All insecure symlinks, dotfiles and files without extension are ignored.

License

Notifications You must be signed in to change notification settings

Bartozzz/scan-dir

Repository files navigation

scan-dir

Tests Known Vulnerabilities npm package size npm version npm dependency Status npm downloads


scan-dir searches for files in a directory and executes a callback for each. All symlinks, dotfiles and files without extension are ignored. Supports deep-loading. It can be used as an autoloader for JavaScript.

Installation

$ npm install @bartozzz/scan-dir

Usage

import scan, { scanRecursively } from "scan-dir";

scan(directory, callback);
scanRecursively(directory, callback);

Examples

Basic loading

import path from "path";
import scan, from "scan-dir";

const models = path.resolve(__dirname, "./path/to/models");
const routes = path.resolve(__dirname, "./path/to/routes");

scan(models, (fpath, fname) => {
  console.log(`Found file: ${fname} (absolute path: ${fpath})`);
});

// You can initialize modules from a directory easily:
scan(models, (fpath) => require(fpath)(some, variables, ...here));
scan(routes, (fpath) => require(fpath)(some, variables, ...here));

Deep loading

import path from "path";
import scan, { scanRecursively } from "scan-dir";

const modules = path.resolve(__dirname, "../node_modules");

// Those two calls are equivalents:
scan(modules, (fpath, fname) => /* … */, true);
scanRecursively(modules, (fpath, fname) => /* … */);

Tests

$ npm test

About

Searches for files in a directory and executes a callback for each. All insecure symlinks, dotfiles and files without extension are ignored.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •