New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

colleqtor

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

colleqtor - npm Package Compare versions

Comparing version 2.1.2 to 2.2.0

2

package.json
{
"name": "colleqtor",
"version": "2.1.2",
"version": "2.2.0",
"description": "Seize the directory.",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -26,31 +26,74 @@ const { version } = require('../package.json');

function dirEntriesToFileNames (dirPath, dirEntries, options) {
const { stripDirPath, recursive, useAsync } = options;
const cleanName = p => stripDirPath ? p : path.join(dirPath, p);
const entries = dirEntries.filter(e => e.isFile() || e.isDirectory());
return !useAsync
? entries.reduce(function (output, dirEntry) {
if (dirEntry.isFile())
return [ ...output, cleanName(dirEntry.name) ];
else if (dirEntry.isDirectory() && recursive) {
const subDirPath = path.join(dirPath, dirEntry.name);
return [ ...output, ...listFiles(subDirPath, options) ];
} else return output;
}, [])
: new Promise((resolve, reject) => {
const output = [];
let finishedCount = 0;
try {
entries.forEach((dirEntry, index) => {
const finish = () => ++finishedCount === entries.length ? resolve(output) : null;
if (dirEntry.isFile()) {
output.push(cleanName(dirEntry.name));
finish();
} else if (dirEntry.isDirectory() && recursive) {
const subDirPath = path.join(dirPath, dirEntry.name);
listFiles(subDirPath, options)
.then(list => {
list.forEach(item => output.push(item));
finish();
}, reject);
} else {
finish();
}
});
} catch (e) {
reject(e);
}
});
}
function listFiles (dir, options = {}) {
checkOptions('listFiles', options);
const {
extension = null,
stripDirPath = null,
recursive = null,
exclude = null
} = options;
const { useAsync, extension, exclude } = options;
const cleanName = p => stripDirPath ? p : path.join(dir, p);
const dirContents = fs.readdirSync(dir, { withFileTypes: true });
const fileNames = dirContents.reduce(function (output, dirItem) {
if (dirItem.isFile())
return [
...output,
cleanName(dirItem.name)
];
else if (dirItem.isDirectory() && recursive)
return [
...output,
...listFiles(path.join(dir, dirItem.name), { extension, stripDirPath, recursive })
];
else return output;
}, []);
if (!useAsync) {
const files = fs.readdirSync(dir, { withFileTypes: true });
const fileNames = dirEntriesToFileNames(dir, files, options);
return fileNames
.filter(extensionFilter(extension))
.filter(exclusionFilter(exclude));
return fileNames
.filter(extensionFilter(extension))
.filter(exclusionFilter(exclude));
}
return new Promise((resolve, reject) => {
fs.readdir(dir, { withFileTypes: true }, (err, files) => {
if (err) return reject(err);
dirEntriesToFileNames(dir, files, options)
.then(fileNames => {
const filteredFilenames = fileNames
.filter(extensionFilter(extension))
.filter(exclusionFilter(exclude));
resolve(filteredFilenames);
}, reject);
});
});
};

@@ -57,0 +100,0 @@

@@ -7,2 +7,3 @@ const zaq = require('zaq');

zaq.ok('LIST FILES: Only dir provided:', colleqtor.listFiles(testDir));

@@ -16,1 +17,3 @@ zaq.ok('lsitFiles: Dir and extension (log) provided:', colleqtor.listFiles(testDir, { extension: 'log' }));

zaq.ok('getFileContent(listFiles(testDir, \'txt\'))', colleqtor.getFileContents(colleqtor.listFiles(testDir, { extension: 'txt' })));
colleqtor.listFiles(testDir, { extension: 'txt', useAsync: true })
.then(list => zaq.ok('listFiles with { useAsync: true }', list));
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