repo-tools: fix peer-deps check to skip unreferenced dependencies
The peer-deps verification was requiring all tracked peer dependencies (including react-router-dom) for every package that references any of them. Now it only requires a peer dependency if the package actually references it or if it belongs to a group containing a referenced dep. Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com> Made-with: Cursor
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/repo-tools': patch
|
||||
---
|
||||
|
||||
Fixed the `peer-deps` command to only require peer dependencies that are actually referenced by each package, rather than requiring all tracked peer dependencies for every package with any React dependency.
|
||||
@@ -143,7 +143,22 @@ export default async ({ fix }: { fix: boolean }) => {
|
||||
for (const pkg of packagesWithRelevantDependencies) {
|
||||
const packageJson = pkg.packageJson as ExtendedPackageJSON;
|
||||
const expectedPeerDeps = getExpectedPeerDependencies(packageJson);
|
||||
const allDeps = {
|
||||
...packageJson.dependencies,
|
||||
...packageJson.devDependencies,
|
||||
...packageJson.peerDependencies,
|
||||
};
|
||||
for (const dep of Object.keys(peerDependencies)) {
|
||||
const isReferencedInPackage = !!allDeps[dep];
|
||||
const isInGroupWithReferencedDep = groupsOfPeerDependencies.some(
|
||||
group =>
|
||||
group.includes(dep) && group.some(groupDep => !!allDeps[groupDep]),
|
||||
);
|
||||
|
||||
if (!isReferencedInPackage && !isInGroupWithReferencedDep) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Validate that the peer dependencies are present.
|
||||
if (isPeerDependency(dep, packageJson)) {
|
||||
if (isOptional(dep) && !isMarkedAsOptional(dep, packageJson)) {
|
||||
|
||||
Reference in New Issue
Block a user