From 9ef2dd90dd23448f70827bcaebad1b14e18226e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Jona=C5=A1?= Date: Mon, 20 Mar 2023 15:24:15 +0100 Subject: [PATCH] feat(linter): add override for noImportsOfLazyLoadedLibraries (#15670) --- .../src/rules/enforce-module-boundaries.ts | 7 +++++++ 1 file changed, 7 insertions(+) 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,