This commit is contained in:
Alex 2025-02-05 18:55:12 -05:00
parent c2d582dea0
commit cddee19340
9 changed files with 332 additions and 287 deletions

24
dist/package.json vendored
View File

@ -1,6 +1,6 @@
{
"name": "@aet/eslint-rules",
"version": "2.0.29",
"version": "2.0.36",
"license": "UNLICENSED",
"type": "module",
"bin": {
@ -23,18 +23,18 @@
"@tanstack/eslint-plugin-query": "^5.62.1"
},
"dependencies": {
"@aet/eslint-define-config": "^0.1.5",
"@aet/eslint-define-config": "^0.1.7",
"@antfu/install-pkg": "^1.0.0",
"@eslint-community/eslint-utils": "^4.4.1",
"@eslint-react/eslint-plugin": "1.24.1",
"@eslint-react/eslint-plugin": "1.26.1",
"@eslint/js": "^9.19.0",
"@nolyfill/is-core-module": "^1.0.39",
"@stylistic/eslint-plugin": "^3.0.0",
"@stylistic/eslint-plugin": "^3.0.1",
"@types/eslint": "^9.6.1",
"@typescript-eslint/eslint-plugin": "^8.21.0",
"@typescript-eslint/parser": "^8.21.0",
"@typescript-eslint/type-utils": "^8.21.0",
"@typescript-eslint/utils": "^8.21.0",
"@typescript-eslint/eslint-plugin": "^8.23.0",
"@typescript-eslint/parser": "^8.23.0",
"@typescript-eslint/type-utils": "^8.23.0",
"@typescript-eslint/utils": "^8.23.0",
"aria-query": "^5.3.2",
"axe-core": "^4.10.2",
"axobject-query": "4.1.0",
@ -42,7 +42,7 @@
"debug": "^4.4.0",
"doctrine": "^3.0.0",
"emoji-regex": "^10.4.0",
"enhanced-resolve": "^5.18.0",
"enhanced-resolve": "^5.18.1",
"eslint-config-prettier": "^10.0.1",
"eslint-import-resolver-node": "^0.3.9",
"eslint-import-resolver-typescript": "^3.7.0",
@ -61,8 +61,8 @@
"language-tags": "^2.0.1",
"lodash-es": "^4.17.21",
"minimatch": "^10.0.1",
"semver": "^7.6.3",
"typescript-eslint": "^8.21.0"
"semver": "^7.7.1",
"typescript-eslint": "^8.23.0"
},
"pnpm": {
"overrides": {
@ -78,4 +78,4 @@
"**/is-core-module": "file:./overrides/is-core-module",
"**/supports-preserve-symlinks-flag": "file:./overrides/supports-preserve-symlinks-flag"
}
}
}

1
dist/tsconfig.json vendored
View File

@ -5,6 +5,7 @@
"jsx": "react-jsx",
"module": "Preserve",
"moduleResolution": "Bundler",
"noEmit": true,
"noImplicitOverride": true,
"noImplicitReturns": true,
"noUnusedLocals": true,

View File

@ -11,18 +11,18 @@
},
"private": true,
"dependencies": {
"@aet/eslint-define-config": "^0.1.5",
"@aet/eslint-define-config": "^0.1.7",
"@antfu/install-pkg": "^1.0.0",
"@eslint-community/eslint-utils": "^4.4.1",
"@eslint-react/eslint-plugin": "1.24.1",
"@eslint-react/eslint-plugin": "1.26.1",
"@eslint/js": "^9.19.0",
"@nolyfill/is-core-module": "^1.0.39",
"@stylistic/eslint-plugin": "^3.0.0",
"@stylistic/eslint-plugin": "^3.0.1",
"@types/eslint": "^9.6.1",
"@typescript-eslint/eslint-plugin": "^8.21.0",
"@typescript-eslint/parser": "^8.21.0",
"@typescript-eslint/type-utils": "^8.21.0",
"@typescript-eslint/utils": "^8.21.0",
"@typescript-eslint/eslint-plugin": "^8.23.0",
"@typescript-eslint/parser": "^8.23.0",
"@typescript-eslint/type-utils": "^8.23.0",
"@typescript-eslint/utils": "^8.23.0",
"aria-query": "^5.3.2",
"axe-core": "^4.10.2",
"axobject-query": "4.1.0",
@ -30,7 +30,7 @@
"debug": "^4.4.0",
"doctrine": "^3.0.0",
"emoji-regex": "^10.4.0",
"enhanced-resolve": "^5.18.0",
"enhanced-resolve": "^5.18.1",
"eslint-config-prettier": "^10.0.1",
"eslint-import-resolver-node": "^0.3.9",
"eslint-import-resolver-typescript": "^3.7.0",
@ -49,8 +49,8 @@
"language-tags": "^2.0.1",
"lodash-es": "^4.17.21",
"minimatch": "^10.0.1",
"semver": "^7.6.3",
"typescript-eslint": "^8.21.0"
"semver": "^7.7.1",
"typescript-eslint": "^8.23.0"
},
"devDependencies": {
"@babel/core": "^7.26.7",
@ -58,7 +58,7 @@
"@babel/preset-env": "^7.26.7",
"@graphql-eslint/eslint-plugin": "^4.3.0",
"@swc-node/register": "^1.10.9",
"@tanstack/eslint-plugin-query": "^5.64.2",
"@tanstack/eslint-plugin-query": "^5.66.0",
"@types/babel-plugin-macros": "^3.1.3",
"@types/babel__core": "^7.20.5",
"@types/eslint-config-prettier": "^6.11.3",
@ -69,10 +69,10 @@
"@types/estree": "^1.0.6",
"@types/estree-jsx": "^1.0.5",
"@types/lodash-es": "^4.17.12",
"@types/node": "^22.10.10",
"@types/node": "^22.13.1",
"@types/react-refresh": "^0.14.6",
"@typescript-eslint/types": "^8.21.0",
"@typescript-eslint/typescript-estree": "^8.21.0",
"@typescript-eslint/types": "^8.23.0",
"@typescript-eslint/typescript-estree": "^8.23.0",
"@vitest/eslint-plugin": "^1.1.25",
"babel-plugin-macros": "^3.1.0",
"dts-bundle-generator": "9.5.1",
@ -91,7 +91,7 @@
"picocolors": "^1.1.1",
"prettier": "^3.4.2",
"prop-types": "^15.8.1",
"terser": "^5.37.0",
"terser": "^5.38.0",
"type-fest": "^4.33.0",
"typescript": "^5.7.3"
},

View File

@ -206,7 +206,7 @@ index df7b6b8..c4d0da1 100644
attributes: {
autocomplete,
diff --git a/src/rules/label-has-associated-control.js b/src/rules/label-has-associated-control.js
index dd6b199..184199e 100644
index d65abe9..22ecee7 100644
--- a/src/rules/label-has-associated-control.js
+++ b/src/rules/label-has-associated-control.js
@@ -11,7 +11,7 @@

526
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -12,10 +12,10 @@
"subject": "[patch] `no-autofocus`: don't report error if autoFocus is set to false"
},
"eslint-plugin-n": {
"hash": "86a524250dcc7c32225f2880ec66767a06c6258d",
"date": "2024-12-24T17:03:32+08:00",
"hash": "4efe60f37c71ce3d71932714207bac780332cf3d",
"date": "2025-02-01T12:40:03+01:00",
"committer": "GitHub",
"subject": "refactor: eslint v8 compat (#397)"
"subject": "perf: improve `prefer-node-protocol`'s performance (#406)"
},
"eslint-plugin-react": {
"hash": "983b88dd3cb5e07919517d3fde4085f60883ded7",

View File

@ -29,40 +29,41 @@ export const middlewares = {
};
export const envs: {
dependency: string;
dependency: string[];
eslintPlugin?: Dependency;
middleware: keyof typeof middlewares;
}[] = [
{
dependency: 'react',
dependency: ['react'],
middleware: 'react',
},
{
dependency: '@vitejs/plugin-react',
dependency: ['@vitejs/plugin-react', '@vitejs/plugin-react-swc'],
eslintPlugin: 'eslint-plugin-react-refresh',
middleware: 'reactRefresh',
},
{
dependency: 'tailwindcss',
dependency: ['tailwindcss'],
eslintPlugin: 'eslint-plugin-tailwindcss',
middleware: 'tailwind',
},
{
dependency: 'storybook',
dependency: ['storybook'],
eslintPlugin: 'eslint-plugin-storybook',
middleware: 'storybook',
},
{
dependency: '@tanstack/react-query',
dependency: ['@tanstack/react-query'],
eslintPlugin: '@tanstack/eslint-plugin-query',
middleware: 'reactQuery',
},
{
dependency: '@testing-library/react',
dependency: ['@testing-library/react'],
eslintPlugin: 'eslint-plugin-testing-library',
middleware: 'testingLibrary',
},
{
dependency: 'vitest',
dependency: ['vitest'],
eslintPlugin: '@vitest/eslint-plugin',
middleware: 'vitest',
},
@ -93,7 +94,10 @@ export function* checkEnv(): Generator<Middleware> {
const deps = getProjectDependencies();
for (const { dependency, eslintPlugin, middleware } of envs) {
if (deps.has(dependency) && (!eslintPlugin || deps.has(eslintPlugin))) {
if (
dependency.some(dep => deps.has(dep)) &&
(!eslintPlugin || deps.has(eslintPlugin))
) {
yield middlewares[middleware];
}
}

View File

@ -6,7 +6,12 @@ import { envs, getProjectDependencies } from './environment';
const deps = getProjectDependencies();
const packages = uniq(
envs
.filter(_ => deps.has(_.dependency) && _.eslintPlugin && !deps.has(_.eslintPlugin))
.filter(
_ =>
_.dependency.some(dep => deps.has(dep)) &&
_.eslintPlugin &&
!deps.has(_.eslintPlugin),
)
.map(_ => _.eslintPlugin!),
);

View File

@ -11,6 +11,7 @@ const reactRules: Partial<ReactRulesObject> = {
'@eslint-react/no-children-prop': error,
'@eslint-react/no-leaked-conditional-rendering': error,
'@eslint-react/prefer-read-only-props': off,
'@eslint-react/hooks-extra/no-direct-set-state-in-use-effect': off,
};
export async function react() {