36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
const path = require("node:path");
|
|
const discovery = require("./discovery.js");
|
|
const ignoreRules = require("./ignoreRules.js");
|
|
const { isBinaryFile } = require("./binary.js");
|
|
const { aggregateFileContents } = require("./aggregate.js");
|
|
|
|
// Backward-compatible signature; delegate to central loader
|
|
async function parseGitignore(gitignorePath) {
|
|
return await ignoreRules.parseGitignore(gitignorePath);
|
|
}
|
|
|
|
async function discoverFiles(rootDir) {
|
|
try {
|
|
// Delegate to discovery module which respects .gitignore and defaults
|
|
return await discovery.discoverFiles(rootDir, { preferGit: true });
|
|
} catch (error) {
|
|
console.error("Error discovering files:", error.message);
|
|
return [];
|
|
}
|
|
}
|
|
|
|
async function filterFiles(files, rootDir) {
|
|
const { filter } = await ignoreRules.loadIgnore(rootDir);
|
|
const relativeFiles = files.map((f) => path.relative(rootDir, f));
|
|
const filteredRelative = relativeFiles.filter((p) => filter(p));
|
|
return filteredRelative.map((p) => path.resolve(rootDir, p));
|
|
}
|
|
|
|
module.exports = {
|
|
parseGitignore,
|
|
discoverFiles,
|
|
isBinaryFile,
|
|
aggregateFileContents,
|
|
filterFiles,
|
|
};
|