address duplicate filtering and Combine predicates to reduce traversal

This commit is contained in:
John Evans 2025-10-07 10:24:10 -04:00
parent 8031ae1877
commit 0b34253611
2 changed files with 8 additions and 3 deletions

View file

@ -63,6 +63,8 @@ export class GitIgnoreController extends BaseIgnoreController {
await this.findGitignoreFilesRecursively(this.cwd)
// Load any files discovered by recursion that weren't loaded yet
// De-duplicate discovered paths to avoid redundant loads
this.gitignoreFiles = Array.from(new Set(this.gitignoreFiles))
for (const p of this.gitignoreFiles) {
if (!this.gitignoreContents.has(p)) {
await this.loadGitignoreFile(p)

View file

@ -215,9 +215,12 @@ export async function regexSearchFiles(
// console.log(results)
// Filter results using both controllers if provided
const filteredResults = results
.filter((result) => gitIgnoreController?.validateAccess(result.file) ?? true)
.filter((result) => rooIgnoreController?.validateAccess(result.file) ?? true)
const filteredResults = results.filter((result) => {
const file = result.file
return (
(gitIgnoreController?.validateAccess(file) ?? true) && (rooIgnoreController?.validateAccess(file) ?? true)
)
})
return formatResults(filteredResults, cwd)
}