diff --git a/packages/eslint-plugin-nx/src/rules/enforce-module-boundaries.ts b/packages/eslint-plugin-nx/src/rules/enforce-module-boundaries.ts index 0497736daa..77da740fe9 100644 --- a/packages/eslint-plugin-nx/src/rules/enforce-module-boundaries.ts +++ b/packages/eslint-plugin-nx/src/rules/enforce-module-boundaries.ts @@ -49,6 +49,7 @@ type Options = [ depConstraints: DepConstraint[]; enforceBuildableLibDependency: boolean; allowCircularSelfDependency: boolean; + checkDynamicDependenciesExceptions: string[]; banTransitiveDependencies: boolean; checkNestedExternalImports: boolean; } @@ -85,6 +86,7 @@ export default createESLintRule({ properties: { enforceBuildableLibDependency: { type: 'boolean' }, allowCircularSelfDependency: { type: 'boolean' }, + checkDynamicDependenciesExceptions: [{ type: 'string' }], banTransitiveDependencies: { type: 'boolean' }, checkNestedExternalImports: { type: 'boolean' }, allow: [{ type: 'string' }], @@ -139,6 +141,7 @@ export default createESLintRule({ depConstraints: [], enforceBuildableLibDependency: false, allowCircularSelfDependency: false, + checkDynamicDependenciesExceptions: [], banTransitiveDependencies: false, checkNestedExternalImports: false, }, @@ -151,6 +154,7 @@ export default createESLintRule({ depConstraints, enforceBuildableLibDependency, allowCircularSelfDependency, + checkDynamicDependenciesExceptions, banTransitiveDependencies, checkNestedExternalImports, }, @@ -494,6 +498,9 @@ export default createESLintRule({ if ( node.type === AST_NODE_TYPES.ImportDeclaration && node.importKind !== 'type' && + !checkDynamicDependenciesExceptions.some((a) => + matchImportWithWildcard(a, imp) + ) && onlyLoadChildren( projectGraph, sourceProject.name,