Socket
Socket
Sign inDemoInstall

get-all-files

Package Overview
Dependencies
0
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.0.0 to 2.0.1

157

lib/get-all-files.js

@@ -1,17 +0,15 @@

'use strict'
"use strict";
Object.defineProperty(exports, '__esModule', {
Object.defineProperty(exports, "__esModule", {
value: true
})
exports.default = void 0
});
exports.default = void 0;
var _fs = _interopRequireDefault(require('fs'))
var _fs = _interopRequireDefault(require("fs"));
var _path = require('path')
var _path = require("path");
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : { default: obj }
}
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const fa = _fs.default.promises
const fa = _fs.default.promises;

@@ -25,3 +23,3 @@ function normalizeOptions({

isExcludedDir
}
};
}

@@ -31,22 +29,22 @@

if (options.resolve === true) {
dirname = (0, _path.resolve)(dirname)
dirname = (0, _path.resolve)(dirname);
}
if (dirname.length > 0 && dirname[dirname.length - 1] !== _path.sep) {
dirname += _path.sep
dirname += _path.sep;
}
return dirname
return dirname;
}
function* sync(filename, options) {
options = normalizeOptions(options)
options = normalizeOptions(options);
if (!_fs.default.lstatSync(filename).isDirectory()) {
return filename
return filename;
}
yield* (function* walk(dirname) {
yield* function* walk(dirname) {
if (options.isExcludedDir(dirname)) {
return
return;
}

@@ -57,52 +55,53 @@

})) {
const filename = dirname + dirent.name
const filename = dirname + dirent.name;
if (dirent.isDirectory()) {
yield* walk(filename + _path.sep)
yield* walk(filename + _path.sep);
} else {
yield filename
yield filename;
}
}
})(normalizeDirname(filename, options))
}(normalizeDirname(filename, options));
}
sync.array = (filename, options) => Array.from(sync(filename, options))
sync.array = (filename, options) => Array.from(sync(filename, options));
function createNotifier() {
let done = false
let done = false;
let resolve = () => {}
let resolve = () => {};
let reject = () => {}
let reject = () => {};
let notified = new Promise((pResolve, pReject) => {
resolve = pResolve
reject = pReject
})
resolve = pResolve;
reject = pReject;
});
return {
resolve() {
const oldResolve = resolve
const oldResolve = resolve;
notified = new Promise((pResolve, pReject) => {
resolve = pResolve
reject = pReject
})
oldResolve()
resolve = pResolve;
reject = pReject;
});
oldResolve();
},
reject(error) {
reject(error)
reject(error);
},
get done() {
return done
return done;
},
set done(value) {
done = value
done = value;
},
onResolved() {
return notified
return notified;
}
}
};
}

@@ -112,42 +111,38 @@

if (dirnames.length === 0) {
notifier.done = true
return
notifier.done = true;
return;
}
const children = []
let pending = dirnames.length
const children = [];
let pending = dirnames.length;
for (const dirname of dirnames) {
if (options.isExcludedDir(dirname)) {
continue
continue;
}
_fs.default.readdir(
dirname,
{
withFileTypes: true
},
(error, dirents) => {
if (error != null) {
notifier.reject(error)
return
}
_fs.default.readdir(dirname, {
withFileTypes: true
}, (error, dirents) => {
if (error != null) {
notifier.reject(error);
return;
}
for (const dirent of dirents) {
const filename = dirname + dirent.name
for (const dirent of dirents) {
const filename = dirname + dirent.name;
if (dirent.isDirectory()) {
children.push(filename + _path.sep)
} else {
filenames.push(filename)
}
if (dirent.isDirectory()) {
children.push(filename + _path.sep);
} else {
filenames.push(filename);
}
}
notifier.resolve()
notifier.resolve();
if (--pending === 0) {
walk(children, filenames, notifier)
}
if (--pending === 0) {
walk(children, filenames, notifier, options);
}
)
});
}

@@ -157,31 +152,31 @@ }

async function* async(filename, options) {
options = normalizeOptions(options)
options = normalizeOptions(options);
if (!(await fa.lstat(filename)).isDirectory()) {
return filename
return filename;
}
const filenames = []
const notifier = createNotifier()
walk([normalizeDirname(filename, options)], filenames, notifier, options)
const filenames = [];
const notifier = createNotifier();
walk([normalizeDirname(filename, options)], filenames, notifier, options);
do {
await notifier.onResolved()
await notifier.onResolved();
while (filenames.length > 0) {
yield filenames.pop()
yield filenames.pop();
}
} while (!notifier.done)
} while (!notifier.done);
}
async.array = async (filename, options) => {
const iterator = async(filename, options)
const filenames = []
const iterator = async(filename, options);
const filenames = [];
for await (const filename of iterator) {
filenames.push(filename)
filenames.push(filename);
}
return filenames
}
return filenames;
};

@@ -191,3 +186,3 @@ var _default = {

sync
}
exports.default = _default
};
exports.default = _default;
{
"name": "get-all-files",
"version": "2.0.0",
"author": "Tomer Aberbach <tomeraberbach@gmail.com> (https://tomeraberba.ch)",
"description": "A blazing fast recursive directory crawler with lazy sync and async iterator support.",
"keywords": [
"fs",
"recursive",
"readdir",
"path",
"directory",
"files",
"lazy",
"async",
"iterator",
"iterable"
],
"homepage": "https://github.com/TomerAberbach/get-all-files",
"repository": "TomerAberbach/get-all-files",
"bugs": {
"url": "https://github.com/TomerAberbach/get-all-files/issues"
},
"license": "MIT",
"main": "lib/get-all-files.js",
"module": "lib/get-all-files.mjs",
"files": [
"lib"
],
"scripts": {
"lint:eslint:base": "eslint -c ./eslint.config.js --cache --ext js --ignore-path .gitignore",
"lint:eslint": "pnpm run lint:eslint:base -- --fix .",
"lint:prettier:base": "prettier --loglevel silent",
"lint:prettier": "pnpm run lint:prettier:base -- --write .",
"lint": "run-s lint:*",
"test": "ava",
"build:main": "cross-env BABEL_ENV=main babel -o lib/get-all-files.js src/index.js",
"build:module": "cross-env BABEL_ENV=module babel -o lib/get-all-files.mjs src/index.js",
"build": "run-p build:*",
"benchmark": "babel-node src/benchmark.js"
},
"devDependencies": {
"@ava/babel": "^1.0.1",
"@babel/cli": "^7.8.4",
"@babel/core": "^7.9.6",
"@babel/node": "^7.8.7",
"@babel/preset-env": "^7.9.6",
"@babel/register": "^7.9.0",
"all-files-in-tree": "^1.1.2",
"ava": "^3.8.1",
"babel-eslint": "10.1.0",
"benny": "^3.6.14",
"core-js": "^3.6.5",
"cross-env": "^7.0.2",
"eslint": "6.8.0",
"eslint-config-prettier": "6.11.0",
"eslint-plugin-ava": "10.3.0",
"eslint-plugin-prettier": "3.1.3",
"fdir": "^2.1.1",
"fs-readdir-recursive": "^1.1.0",
"klaw-sync": "^6.0.0",
"npm-run-all": "^4.1.5",
"prettier": "2.0.5",
"recur-readdir": "^0.0.1",
"recursive-files": "^1.0.2",
"recursive-fs": "^2.1.0",
"recursive-readdir": "^2.2.2",
"regenerator-runtime": "^0.13.5",
"rrdir": "^8.0.1",
"walk-sync": "^2.1.0"
},
"engines": {
"node": ">= 10"
}
"name": "get-all-files",
"version": "2.0.1",
"author": "Tomer Aberbach <tomeraberbach@gmail.com> (https://tomeraberba.ch)",
"description": "A blazing fast recursive directory crawler with lazy sync and async iterator support.",
"keywords": [
"fs",
"recursive",
"readdir",
"path",
"directory",
"files",
"lazy",
"async",
"iterator",
"iterable"
],
"homepage": "https://github.com/TomerAberbach/get-all-files",
"repository": "TomerAberbach/get-all-files",
"bugs": {
"url": "https://github.com/TomerAberbach/get-all-files/issues"
},
"license": "MIT",
"main": "lib/get-all-files.js",
"module": "lib/get-all-files.mjs",
"files": [
"lib"
],
"scripts": {
"lint:eslint:base": "eslint -c ./eslint.config.js --cache --ext js --ignore-path .gitignore",
"lint:eslint": "pnpm run lint:eslint:base -- --fix .",
"lint:prettier:base": "prettier --loglevel silent",
"lint:prettier": "pnpm run lint:prettier:base -- --write .",
"lint": "run-s lint:*",
"test": "ava",
"build:main": "cross-env BABEL_ENV=main babel -o lib/get-all-files.js src/index.js",
"build:module": "cross-env BABEL_ENV=module babel -o lib/get-all-files.mjs src/index.js",
"build": "run-p build:*",
"benchmark": "babel-node src/benchmark.js"
},
"devDependencies": {
"@ava/babel": "^1.0.1",
"@babel/cli": "^7.8.4",
"@babel/core": "^7.9.6",
"@babel/node": "^7.8.7",
"@babel/preset-env": "^7.9.6",
"@babel/register": "^7.9.0",
"all-files-in-tree": "^1.1.2",
"ava": "^3.8.2",
"babel-eslint": "10.1.0",
"benny": "^3.6.14",
"core-js": "^3.6.5",
"cross-env": "^7.0.2",
"eslint": "7.0.0",
"eslint-config-prettier": "6.11.0",
"eslint-plugin-ava": "10.3.0",
"eslint-plugin-prettier": "3.1.3",
"fdir": "^3.4.2",
"fs-readdir-recursive": "^1.1.0",
"klaw-sync": "^6.0.0",
"np": "^6.2.3",
"npm-run-all": "^4.1.5",
"prettier": "2.0.5",
"recur-readdir": "^0.0.1",
"recursive-files": "^1.0.2",
"recursive-fs": "^2.1.0",
"recursive-readdir": "^2.2.2",
"regenerator-runtime": "^0.13.5",
"rrdir": "^8.1.0",
"walk-sync": "^2.1.0"
},
"engines": {
"node": ">= 10"
}
}

@@ -5,3 +5,3 @@ # Get All Files

> A blazing fast recursive directory crawler with sync and async iterator support.
> A blazing fast recursive directory crawler with lazy sync and async iterator support.

@@ -70,3 +70,3 @@ ## Install

A path of file or directory to recursively find files in.
A path to a file or directory to recursively find files in.

@@ -81,3 +81,3 @@ #### `options`

Type: `boolean`
Type: `boolean`\
Default: `false`

@@ -89,3 +89,3 @@

Type: `(dirname: string) => boolean`
Type: `(dirname: string) => boolean`\
Default: `() => false`

@@ -92,0 +92,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc