Skip to content

Commit b10c55f

Browse files
ndpvt-webclaude
andcommitted
refactor: exclude transitive devDeps and parallelize URL dep scanning
- Only include devDependencies when scanning the root package - Use mapWithConcurrency for consistent parallel processing Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 2840313 commit b10c55f

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

server/utils/dependency-analysis.ts

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -285,11 +285,17 @@ async function scanUrlDependencies(
285285
if (!versionData) return []
286286

287287
const urlDeps: UrlDependencyInfo[] = []
288-
const allDeps = {
289-
...versionData.dependencies,
290-
...versionData.optionalDependencies,
291-
...versionData.devDependencies,
292-
}
288+
// Include devDependencies only for the root package
289+
const allDeps = depth === 'root'
290+
? {
291+
...versionData.dependencies,
292+
...versionData.optionalDependencies,
293+
...versionData.devDependencies,
294+
}
295+
: {
296+
...versionData.dependencies,
297+
...versionData.optionalDependencies,
298+
}
293299

294300
for (const [depName, depUrl] of Object.entries(allDeps || {})) {
295301
if (isUrlDependency(depUrl)) {
@@ -343,11 +349,12 @@ export const analyzeDependencyTree = defineCachedFunction(
343349
})
344350

345351
// Scan for git: and https: URL dependencies in all packages
346-
const urlDependencies: UrlDependencyInfo[] = []
347-
for (const pkg of packages) {
348-
const pkgUrlDeps = await scanUrlDependencies(pkg.name, pkg.version, pkg.depth, pkg.path)
349-
urlDependencies.push(...pkgUrlDeps)
350-
}
352+
const urlDepResults = await mapWithConcurrency(
353+
packages,
354+
pkg => scanUrlDependencies(pkg.name, pkg.version, pkg.depth, pkg.path),
355+
OSV_DETAIL_CONCURRENCY,
356+
)
357+
const urlDependencies = urlDepResults.flat()
351358

352359
// Step 1: Use batch API to find which packages have vulnerabilities
353360
// This is much faster than individual queries - one request for all packages

0 commit comments

Comments
 (0)