Skip to content

Commit 2a1ed31

Browse files
authored
fix(builtin): include optionalDependencies in strictly visible packages (#2657)
These are identical to regular dependencies except that a failure to install them is non-fatal. They should be visible as Bazel dependencies. Note I didn't include peerDependencies here still. These are an indication that some consumer should install the package, and that results in a bazel-visible dependency, so I think that's working correctly
1 parent 8abc8e0 commit 2a1ed31

File tree

3 files changed

+13
-8
lines changed

3 files changed

+13
-8
lines changed

internal/npm_install/generate_build_file.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -526,10 +526,11 @@ export function getDirectDependencySet(pkgJsonPath: string): Set<string> {
526526
stripBom(fs.readFileSync(pkgJsonPath, {encoding: 'utf8'}))
527527
);
528528

529-
const dependencies: string[] = Object.keys(pkgJson.dependencies || {});
530-
const devDependencies: string[] = Object.keys(pkgJson.devDependencies || {});
531-
532-
return new Set([...dependencies, ...devDependencies]);
529+
return new Set([
530+
...Object.keys(pkgJson.dependencies || {}),
531+
...Object.keys(pkgJson.devDependencies || {}),
532+
...Object.keys(pkgJson.optionalDependencies || {}),
533+
]);
533534
}
534535

535536
/**

internal/npm_install/index.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -317,9 +317,11 @@ function hasRootBuildFile(pkg, rootPath) {
317317
}
318318
function getDirectDependencySet(pkgJsonPath) {
319319
const pkgJson = JSON.parse(stripBom(fs.readFileSync(pkgJsonPath, { encoding: 'utf8' })));
320-
const dependencies = Object.keys(pkgJson.dependencies || {});
321-
const devDependencies = Object.keys(pkgJson.devDependencies || {});
322-
return new Set([...dependencies, ...devDependencies]);
320+
return new Set([
321+
...Object.keys(pkgJson.dependencies || {}),
322+
...Object.keys(pkgJson.devDependencies || {}),
323+
...Object.keys(pkgJson.optionalDependencies || {}),
324+
]);
323325
}
324326
exports.getDirectDependencySet = getDirectDependencySet;
325327
function findPackages(p, dependencies) {

internal/npm_install/test/package.spec.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
"@angular/core": "9.1.0"
55
},
66
"devDependencies": {
7-
"@angular/common": "9.1.0",
7+
"@angular/common": "9.1.0"
8+
},
9+
"optionalDependencies": {
810
"zone.js": "0.8.29"
911
}
1012
}

0 commit comments

Comments
 (0)