Skip to content

Commit 8be8f73

Browse files
committed
chore(constraints): allow execeptions for dependency-range consistency
1 parent e0d921a commit 8be8f73

File tree

1 file changed

+22
-2
lines changed

1 file changed

+22
-2
lines changed

yarn.config.cjs

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -714,6 +714,24 @@ function expectControllerDependenciesListedAsPeerDependencies(
714714
}
715715
}
716716

717+
function getInconsistentDependenciesAndDevDependencies(dependencyIdent, dependenciesByRange) {
718+
const ALLOWED_INCONSISTENT_DEPENDENCIES = Object.entries({
719+
// '@metamask/foo': ['^1.0.0'],
720+
});
721+
for (const [allowedPackage, ignoredRange] of ALLOWED_INCONSISTENT_DEPENDENCIES) {
722+
if (allowedPackage === dependencyIdent) {
723+
return new Map(
724+
Object.entries(
725+
dependenciesByRange
726+
).filter(
727+
([range]) => !ignoredRange.includes(range)
728+
)
729+
)
730+
}
731+
}
732+
return dependenciesByRange;
733+
}
734+
717735
/**
718736
* Expect that all version ranges in `dependencies` and `devDependencies` for
719737
* the same dependency across the entire monorepo are the same. As it is
@@ -732,9 +750,11 @@ function expectConsistentDependenciesAndDevDependencies(Yarn) {
732750
dependencyIdent,
733751
dependenciesByRange,
734752
] of nonPeerDependenciesByIdent.entries()) {
735-
const dependencyRanges = [...dependenciesByRange.keys()].sort();
753+
const dependenciesToConsider =
754+
getInconsistentDependenciesAndDevDependencies(dependencyIdent, dependenciesByRange);
755+
const dependencyRanges = [...dependenciesToConsider.keys()].sort();
736756
if (dependenciesByRange.size > 1) {
737-
for (const dependencies of dependenciesByRange.values()) {
757+
for (const dependencies of dependenciesToConsider.values()) {
738758
for (const dependency of dependencies) {
739759
dependency.error(
740760
`Expected version range for ${dependencyIdent} (in ${

0 commit comments

Comments
 (0)