diff --git a/packages/linter/src/generators/utils/eslint-file.spec.ts b/packages/linter/src/generators/utils/eslint-file.spec.ts index 69f0859ae3f6a4..0556f3c56a2574 100644 --- a/packages/linter/src/generators/utils/eslint-file.spec.ts +++ b/packages/linter/src/generators/utils/eslint-file.spec.ts @@ -2,6 +2,7 @@ import { baseEsLintConfigFile, eslintConfigFileWhitelist, findEslintFile, + lintConfigHasOverride, } from './eslint-file'; import { Tree } from '@nx/devkit'; @@ -36,4 +37,40 @@ describe('@nx/linter:eslint-file', () => { } ); }); + + describe('lintConfigHasOverride', () => { + it('should return true when override exists in eslintrc format', () => { + tree.write( + '.eslintrc.json', + '{"overrides": [{ "files": ["*.ts"], "rules": {} }]}' + ); + expect( + lintConfigHasOverride( + tree, + '.', + (o) => { + return o.files?.includes('*.ts'); + }, + false + ) + ).toBe(true); + }); + + it('should return false when eslintrc is not in JSON format', () => { + tree.write( + '.eslintrc.js', + 'module.exports = {overrides: [{ files: ["*.ts"], rules: {} }]};' + ); + expect( + lintConfigHasOverride( + tree, + '.', + (o) => { + return o.files?.includes('*.ts'); + }, + false + ) + ).toBe(false); + }); + }); }); diff --git a/packages/linter/src/generators/utils/eslint-file.ts b/packages/linter/src/generators/utils/eslint-file.ts index b4c06b5384d537..084e69a9322d93 100644 --- a/packages/linter/src/generators/utils/eslint-file.ts +++ b/packages/linter/src/generators/utils/eslint-file.ts @@ -247,7 +247,10 @@ export function lintConfigHasOverride( root, isBase ? baseEsLintConfigFile : '.eslintrc.json' ); - return readJson(tree, fileName).overrides?.some(lookup) || false; + + return tree.exists(fileName) + ? readJson(tree, fileName).overrides?.some(lookup) || false + : false; } }