Skip to content

Commit

Permalink
fix(linter): ignore dist and use compat helper for eslint-plugin-reac…
Browse files Browse the repository at this point in the history
…t-hooks (#28080)
  • Loading branch information
leosvelperez authored Sep 25, 2024
1 parent bf90e58 commit 3c1cac7
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 6 deletions.
3 changes: 2 additions & 1 deletion packages/eslint-plugin/src/flat-configs/react-jsx.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { fixupPluginRules } from '@eslint/compat';
import jsxA11yPlugin from 'eslint-plugin-jsx-a11y';
import reactPlugin from 'eslint-plugin-react';
import reactHooksPlugin from 'eslint-plugin-react-hooks';
Expand All @@ -16,7 +17,7 @@ import tseslint from 'typescript-eslint';
export default tseslint.config(
{
plugins: {
'react-hooks': reactHooksPlugin,
'react-hooks': fixupPluginRules(reactHooksPlugin),
},
rules: reactHooksPlugin.configs.recommended.rules,
},
Expand Down
5 changes: 5 additions & 0 deletions packages/eslint/src/generators/init/global-eslint-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,11 @@ export const getGlobalFlatEslintConfiguration = (
generateFlatPredefinedConfig('flat/javascript')
);

content = addBlockToFlatConfigExport(
content,
generateFlatOverride({ ignores: ['**/dist'] })
);

if (!rootProject) {
content = addBlockToFlatConfigExport(
content,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,9 @@ describe('@nx/eslint:lint-project', () => {
...nx.configs['flat/base'],
...nx.configs['flat/typescript'],
...nx.configs['flat/javascript'],
{
ignores: ['**/dist'],
},
{
files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'],
rules: {
Expand Down
16 changes: 11 additions & 5 deletions packages/eslint/src/generators/utils/flat-config/ast-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -891,7 +891,9 @@ export function overrideNeedsCompat(
* based on a given legacy eslintrc JSON override object
*/
export function generateFlatOverride(
_override: Partial<Linter.ConfigOverride<Linter.RulesRecord>>
_override: Partial<Linter.ConfigOverride<Linter.RulesRecord>> & {
ignores?: Linter.FlatConfig['ignores'];
}
): ts.ObjectLiteralExpression | ts.SpreadElement {
const override = mapFilePaths(_override);

Expand All @@ -907,6 +909,10 @@ export function generateFlatOverride(
files,
};

if (override.ignores) {
flatConfigOverride.ignores = override.ignores;
}

if (override.rules) {
flatConfigOverride.rules = override.rules;
}
Expand Down Expand Up @@ -1074,10 +1080,10 @@ export function generateFlatPredefinedConfig(
return spread ? ts.factory.createSpreadElement(node) : node;
}

export function mapFilePaths(
_override: Partial<Linter.ConfigOverride<Linter.RulesRecord>>
) {
const override: Partial<Linter.ConfigOverride<Linter.RulesRecord>> = {
export function mapFilePaths<
T extends Partial<Linter.ConfigOverride<Linter.RulesRecord>>
>(_override: T) {
const override: T = {
..._override,
};
if (override.files) {
Expand Down

0 comments on commit 3c1cac7

Please sign in to comment.