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.2.0 to 2.2.1

9

package.json
{
"name": "colleqtor",
"version": "2.2.0",
"version": "2.2.1",
"description": "Seize the directory.",
"main": "index.js",
"scripts": {},
"scripts": {
"test": "node test.js"
},
"repository": {

@@ -29,3 +31,6 @@ "type": "git",

"zaq": "^2.1.3"
},
"devDependencies": {
"chalk": "^2.4.2"
}
}

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

function dirEntriesToFileNames (dirPath, dirEntries, options) {
const { stripDirPath, recursive, useAsync } = options;
const cleanName = p => stripDirPath ? p : path.join(dirPath, p);
function dirEntriesToFileNames (dirPath, dirEntries, options = {}) {
const cleanName = (p, isDir) => (options.stripDirPath
? (p === dirPath ? '' : p)
: (p === dirPath ? p : path.join(dirPath, p))) + (isDir ? path.sep : '');
const entries = dirEntries.filter(e => e.isFile() || e.isDirectory());
return !useAsync
return !options.useAsync
? entries.reduce(function (output, dirEntry) {
if (dirEntry.isFile())
return [ ...output, cleanName(dirEntry.name) ];
else if (dirEntry.isDirectory() && recursive) {
if (!options.recursive) {
return options.directories
? [ ...output, cleanName(dirEntry.name, true) ]
: output;
} else {
const subDirPath = path.join(dirPath, dirEntry.name);
return [ ...output, ...listFiles(subDirPath, options) ];
} else return output;
const subDirContents = listFiles(subDirPath, options).map(file => options.stripDirPath ? path.join(dirEntry.name, file) : null);
return options.directories
? [ ...output, cleanName(dirEntry.name, true), ...subDirContents ]
: [ ...output, ...subDirContents ];
}
}, [])

@@ -51,4 +61,10 @@ : new Promise((resolve, reject) => {

output.push(cleanName(dirEntry.name));
finish();
} else if (dirEntry.isDirectory() && recursive) {
return finish();
}
if (options.directories) {
output.push(cleanName(dirEntry.name, true));
}
if (options.recursive) {
const subDirPath = path.join(dirPath, dirEntry.name);

@@ -75,5 +91,3 @@

const { useAsync, extension, exclude } = options;
if (!useAsync) {
if (!options.useAsync) {
const files = fs.readdirSync(dir, { withFileTypes: true });

@@ -83,4 +97,4 @@ const fileNames = dirEntriesToFileNames(dir, files, options);

return fileNames
.filter(extensionFilter(extension))
.filter(exclusionFilter(exclude));
.filter(extensionFilter(options.extension, options.directories))
.filter(exclusionFilter(options.exclude));
}

@@ -94,7 +108,6 @@

.then(fileNames => {
const filteredFilenames = fileNames
.filter(extensionFilter(extension))
.filter(exclusionFilter(exclude));
resolve(filteredFilenames);
const filteredFileNames = fileNames
.filter(extensionFilter(options.extension, options.directories))
.filter(exclusionFilter(options.exclude));
resolve(filteredFileNames);
}, reject);

@@ -108,4 +121,2 @@ });

const { extension = null, stripDirPath = false } = options;
return listFiles(dir, options)

@@ -112,0 +123,0 @@ .map(p => removeFileExtension(p));

@@ -15,12 +15,10 @@ const path = require('path');

const extensionFilter = ext => item => {
const extensionFilter = (ext, keepDirectories) => item => {
if (isString(ext) && ext.length) {
const itemExt = path.extname(item).toLowerCase();
return isString(itemExt)
&& itemExt.length > 1
&& (itemExt === ext.toLowerCase()
|| itemExt.substring(1) === ext.toLowerCase());
return (keepDirectories && item[item.length - 1] === path.sep)
|| (isString(itemExt) && itemExt.length > 1 && (itemExt === ext.toLowerCase() || itemExt.substring(1) === ext.toLowerCase()));
} else if (isArray(ext)) {
return ext.some(subExtension => extensionFilter(subExtension)(item));
return ext.some(subExtension => extensionFilter(subExtension, keepDirectories)(item));
}

@@ -27,0 +25,0 @@

const zaq = require('zaq');
const path = require('path');
const chalk = require('chalk');
const colleqtor = require('./index');
let testDir = path.join(__dirname, '/test');
const runTest = (code) => zaq.ok(chalk.green(code), eval(code));
const runAsyncTest = (code) => eval(code).then(results => zaq.ok(chalk.green(code), results));
const testDir = path.join(__dirname, '/test');
zaq.ok('LIST FILES: Only dir provided:', colleqtor.listFiles(testDir));
zaq.ok('lsitFiles: Dir and extension (log) provided:', colleqtor.listFiles(testDir, { extension: 'log' }));
zaq.ok('listFiles: Dir and extension (txt) provided:', colleqtor.listFiles(testDir, { extension: 'txt' }));
zaq.ok('listFiles: Dir and extensions (log, txt) provided:', colleqtor.listFiles(testDir, { extension: ['log', 'txt'] }));
zaq.ok('listFiles: Dir and extension (txt) provided, stripping directory:', colleqtor.listFiles(testDir, { extension: 'txt', stripDirPath: true }));
zaq.ok('gatherFileNames: Only dir provided:', colleqtor.gatherFileNames(testDir));
zaq.ok('.requireAll(testDir + \'/requireable\')', colleqtor.requireAll(testDir + '/requirable'));
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));
runTest(`colleqtor.listFiles(testDir)`);
runTest(`colleqtor.listFiles(testDir, { extension: 'txt', stripDirPath: true })`);
runTest(`colleqtor.listFiles(testDir, { extension: ['log', 'txt'] })`);
runTest(`colleqtor.listFiles(testDir, { extension: 'txt', stripDirPath: true })`);
runTest(`colleqtor.listFiles(testDir, { directories: true, recursive: true, stripDirPath: true })`);
runTest(`colleqtor.gatherFileNames(testDir)`);
runTest(`colleqtor.requireAll(testDir + '/requirable')`);
runTest(`colleqtor.getFileContents(colleqtor.listFiles(testDir, { extension: 'txt' }))`);
runAsyncTest(`colleqtor.listFiles(testDir, { extension: 'txt', useAsync: true })`);
runAsyncTest(`colleqtor.listFiles(testDir, { directories: true, useAsync: true, extension: 'log', recursive: true })`);
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