@@ -714,6 +714,35 @@ function expectControllerDependenciesListedAsPeerDependencies(
714714 }
715715}
716716
717+ /**
718+ * Filter out dependency ranges which are not to be considered in `expectConsistentDependenciesAndDevDependencies`.
719+ *
720+ * @param {string } dependencyIdent - The dependency being filtered for
721+ * @param {Map<string, Dependency> } dependenciesByRange - Dependencies by range
722+ * @returns {Map<string, Dependency> } The resulting map.
723+ */
724+ function getInconsistentDependenciesAndDevDependencies (
725+ dependencyIdent ,
726+ dependenciesByRange ,
727+ ) {
728+ const ALLOWED_INCONSISTENT_DEPENDENCIES = Object . entries ( {
729+ // '@metamask/foo': ['^1.0.0'],
730+ } ) ;
731+ for ( const [
732+ allowedPackage ,
733+ ignoredRange ,
734+ ] of ALLOWED_INCONSISTENT_DEPENDENCIES ) {
735+ if ( allowedPackage === dependencyIdent ) {
736+ return new Map (
737+ Object . entries ( dependenciesByRange ) . filter (
738+ ( [ range ] ) => ! ignoredRange . includes ( range ) ,
739+ ) ,
740+ ) ;
741+ }
742+ }
743+ return dependenciesByRange ;
744+ }
745+
717746/**
718747 * Expect that all version ranges in `dependencies` and `devDependencies` for
719748 * the same dependency across the entire monorepo are the same. As it is
@@ -732,9 +761,14 @@ function expectConsistentDependenciesAndDevDependencies(Yarn) {
732761 dependencyIdent ,
733762 dependenciesByRange ,
734763 ] of nonPeerDependenciesByIdent . entries ( ) ) {
735- const dependencyRanges = [ ...dependenciesByRange . keys ( ) ] . sort ( ) ;
764+ const dependenciesToConsider =
765+ getInconsistentDependenciesAndDevDependencies (
766+ dependencyIdent ,
767+ dependenciesByRange ,
768+ ) ;
769+ const dependencyRanges = [ ...dependenciesToConsider . keys ( ) ] . sort ( ) ;
736770 if ( dependenciesByRange . size > 1 ) {
737- for ( const dependencies of dependenciesByRange . values ( ) ) {
771+ for ( const dependencies of dependenciesToConsider . values ( ) ) {
738772 for ( const dependency of dependencies ) {
739773 dependency . error (
740774 `Expected version range for ${ dependencyIdent } (in ${
0 commit comments