loqatevars
Version:
Locate JavaScript files with 'const' or 'process.env' usage in LLM-generated codebases
47 lines (40 loc) • 1.16 kB
JavaScript
const fs = require('fs');
const path = require('path');
function walk(dir) {
const entries = fs.readdirSync(dir, { withFileTypes: true });
let files = [];
for (const entry of entries) {
const full = path.join(dir, entry.name);
if (entry.isDirectory()) {
files = files.concat(walk(full));
} else {
files.push(full);
}
}
return files;
}
function globbySync(patterns, options = {}) {
const cwd = options.cwd || process.cwd();
const ignore = options.ignore || [];
const exts = patterns.map(p => p.replace('**/*', ''));
const allFiles = walk(cwd).filter(f => exts.some(ext => f.endsWith(ext)));
return allFiles.filter(f => !ignore.some(pat => {
const clean = pat.replace(/\*\*\//g, '').replace(/\*\*/g, '');
return f.includes(clean);
}));
}
function globbyStream(patterns, options = {}) {
const files = globbySync(patterns, options);
async function* generator() {
for (const file of files) { yield file; }
}
return generator();
}
function globby() {}
globby.stream = jest.fn(globbyStream);
module.exports = {
__esModule: true,
default: globby,
globbySync,
stream: globby.stream,
};