Skip to content

Commit 063be54

Browse files
committed
chore: fix eslint
1 parent 013b156 commit 063be54

15 files changed

+285
-217
lines changed

Diff for: .eslintignore

-4
This file was deleted.

Diff for: .eslintrc.cjs

-67
This file was deleted.

Diff for: eslint.config.mjs

+97
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
import { globalIgnores } from 'eslint/config';
2+
import globals from 'globals';
3+
import js from '@eslint/js';
4+
import prettierRecommended from 'eslint-plugin-prettier/recommended';
5+
import tseslint from 'typescript-eslint';
6+
7+
export default tseslint.config([
8+
globalIgnores([
9+
'benchmark/suites/',
10+
'**/__fixtures__/',
11+
'**/dist/',
12+
'**/.nx/',
13+
'**/coverage',
14+
'**/node_modules',
15+
]),
16+
js.configs.recommended,
17+
{
18+
files: ['**/*.js', '**/*.mjs', '**/*.cjs', '**/*.ts', '**/*.tsx'],
19+
languageOptions: {
20+
globals: {
21+
...globals.node,
22+
},
23+
24+
ecmaVersion: 2022,
25+
sourceType: 'module',
26+
},
27+
28+
rules: {
29+
'no-shadow': 'error',
30+
'no-var': 'error',
31+
32+
'padding-line-between-statements': [
33+
'error',
34+
{
35+
blankLine: 'always',
36+
prev: '*',
37+
next: 'return',
38+
},
39+
{
40+
blankLine: 'always',
41+
prev: ['const', 'let', 'var'],
42+
next: '*',
43+
},
44+
{
45+
blankLine: 'any',
46+
prev: ['const', 'let', 'var'],
47+
next: ['const', 'let', 'var'],
48+
},
49+
{
50+
blankLine: 'never',
51+
prev: ['import'],
52+
next: ['import'],
53+
},
54+
],
55+
56+
'prefer-const': 'error',
57+
},
58+
},
59+
{
60+
files: ['**/*.cjs'],
61+
62+
languageOptions: {
63+
ecmaVersion: 2022,
64+
sourceType: 'script',
65+
},
66+
67+
rules: {
68+
strict: ['error', 'global'],
69+
},
70+
},
71+
{
72+
files: ['**/*.ts', '**/*.tsx'],
73+
74+
extends: [
75+
tseslint.configs.recommended,
76+
tseslint.configs.strict,
77+
tseslint.configs.stylistic,
78+
],
79+
80+
rules: {
81+
'no-shadow': 'off',
82+
'@typescript-eslint/no-shadow': 'error',
83+
84+
'@typescript-eslint/array-type': [
85+
'error',
86+
{
87+
default: 'array-simple',
88+
},
89+
],
90+
91+
'@typescript-eslint/consistent-type-imports': 'error',
92+
'@typescript-eslint/no-non-null-assertion': 'off',
93+
'@typescript-eslint/sort-type-constituents': 'error',
94+
},
95+
},
96+
prettierRecommended,
97+
]);

Diff for: package.json

+6-4
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
},
77
"scripts": {
88
"build": "nx run-many --target=build --exclude='@react-docgen-internal/*'",
9-
"lint": "eslint . --ext .js,.cjs,.mjs,.ts,.tsx --report-unused-disable-directives --max-warnings=0",
10-
"fix": "eslint . --ext .js,.cjs,.mjs,.ts,.tsx --fix --report-unused-disable-directives --max-warnings=0",
9+
"lint": "eslint . --flag unstable_config_lookup_from_file --report-unused-disable-directives --max-warnings=0",
10+
"fix": "eslint . --flag unstable_config_lookup_from_file --fix --report-unused-disable-directives --max-warnings=0",
1111
"test": "nx run-many --target=test --exclude='@react-docgen-internal/*' --output-style=stream",
1212
"copy:changelog:react-docgen": "cp ./packages/react-docgen/CHANGELOG.md ./packages/website/src/pages/docs/release-notes/react-docgen.mdx",
1313
"copy:changelog:cli": "cp ./packages/react-docgen-cli/CHANGELOG.md ./packages/website/src/pages/docs/release-notes/cli.mdx",
@@ -18,22 +18,24 @@
1818
"devDependencies": {
1919
"@changesets/changelog-github": "0.5.1",
2020
"@changesets/cli": "2.28.1",
21+
"@eslint/eslintrc": "^3.3.1",
22+
"@eslint/js": "^9.24.0",
2123
"@types/node": "20.17.30",
22-
"@typescript-eslint/eslint-plugin": "7.18.0",
23-
"@typescript-eslint/parser": "7.18.0",
2424
"@vitest/coverage-v8": "3.1.1",
2525
"cpy": "11.1.0",
2626
"eslint": "9.24.0",
2727
"eslint-config-next": "15.2.4",
2828
"eslint-config-prettier": "10.1.1",
2929
"eslint-plugin-prettier": "5.2.6",
3030
"execa": "7.2.0",
31+
"globals": "^16.0.0",
3132
"nx": "20.7.1",
3233
"prettier": "3.5.3",
3334
"prettier-plugin-tailwindcss": "0.6.11",
3435
"rimraf": "6.0.1",
3536
"tempy": "3.1.0",
3637
"typescript": "5.8.3",
38+
"typescript-eslint": "^8.29.0",
3739
"vitest": "3.1.1"
3840
},
3941
"packageManager": "[email protected]"

Diff for: packages/react-docgen/src/importer/makeFsImporter.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ export default function makeFsImporter(
238238
}
239239
}
240240

241-
state.resultPath ? path.stop() : path.skip();
241+
return state.resultPath ? path.stop() : path.skip();
242242
},
243243
},
244244
ExportDefaultDeclaration: {

Diff for: packages/react-docgen/src/utils/getMembers.ts

-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ export default function getMembers(
2727
let argumentPaths: NodePath[] = [];
2828
let resultPath: MemberDescriptor['path'] = path as NodePath<Expression>;
2929

30-
// eslint-disable-next-line no-constant-condition
3130
while (true) {
3231
if (resultPath.isMemberExpression()) {
3332
const property = resultPath.get('property');

Diff for: packages/website/.eslintrc.cjs

-11
This file was deleted.

Diff for: packages/website/eslint.config.mjs

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import path from 'node:path';
2+
import { globalIgnores } from 'eslint/config';
3+
import { fileURLToPath } from 'node:url';
4+
import { FlatCompat } from '@eslint/eslintrc';
5+
import tseslint from 'typescript-eslint';
6+
import baseConfig from '../../eslint.config.mjs';
7+
8+
const __filename = fileURLToPath(import.meta.url);
9+
const __dirname = path.dirname(__filename);
10+
const compat = new FlatCompat({
11+
baseDirectory: __dirname,
12+
});
13+
14+
export default tseslint.config([
15+
globalIgnores(['**/.next/']),
16+
...baseConfig,
17+
...compat.config({
18+
extends: ['next/core-web-vitals'],
19+
settings: {
20+
next: {
21+
rootDir: __dirname,
22+
},
23+
},
24+
rules: {
25+
'import/no-anonymous-default-export': 'off',
26+
},
27+
}),
28+
]);

Diff for: packages/website/next-env.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
/// <reference types="next/image-types/global" />
33

44
// NOTE: This file should not be edited
5-
// see https://nextjs.org/docs/pages/building-your-application/configuring/typescript for more information.
5+
// see https://nextjs.org/docs/pages/api-reference/config/typescript for more information.

Diff for: packages/website/src/components/ContentMissing.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Callout } from 'nextra/components';
33
export default function ContentMissing() {
44
return (
55
<Callout emoji="ℹ️" type="info">
6-
This content hasn't been created yet.
6+
This content hasn&apos;t been created yet.
77
</Callout>
88
);
99
}

Diff for: packages/website/src/components/playground/Panel.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ export default function Panel({
4444
let changeHandler;
4545

4646
if (onChange) {
47+
// eslint-disable-next-line react-hooks/rules-of-hooks
4748
changeHandler = useCallback(onChange, []);
4849
}
4950

Diff for: packages/website/src/components/users/User.tsx

+21-16
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,24 @@ interface Props {
88
};
99
}
1010

11-
export default ({ user }: Props) => (
12-
<div className="box-border w-full px-4 md:w-1/3">
13-
<a
14-
href={user.url}
15-
rel="noopener noreferrer"
16-
target="_blank"
17-
className="relative my-3.5 block h-32 rounded-md bg-white px-2.5 hover:scale-105 hover:shadow-md md:hover:scale-110 dark:bg-gray-50/10"
18-
>
19-
<Image
20-
src={require(`./logos/${user.logo}`)}
21-
alt={user.name}
22-
className="absolute left-1/2 top-1/2 max-h-[100px] w-[128px] max-w-[200px] -translate-x-1/2 -translate-y-1/2"
23-
/>
24-
</a>
25-
</div>
26-
);
11+
export default function User({ user }: Props) {
12+
// eslint-disable-next-line @typescript-eslint/no-require-imports
13+
const logo = require(`./logos/${user.logo}`);
14+
15+
return (
16+
<div className="box-border w-full px-4 md:w-1/3">
17+
<a
18+
href={user.url}
19+
rel="noopener noreferrer"
20+
target="_blank"
21+
className="relative my-3.5 block h-32 rounded-md bg-white px-2.5 hover:scale-105 hover:shadow-md md:hover:scale-110 dark:bg-gray-50/10"
22+
>
23+
<Image
24+
src={logo}
25+
alt={user.name}
26+
className="absolute left-1/2 top-1/2 max-h-[100px] w-[128px] max-w-[200px] -translate-x-1/2 -translate-y-1/2"
27+
/>
28+
</a>
29+
</div>
30+
);
31+
}

Diff for: packages/website/src/components/users/UserList.tsx

+11-9
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@ interface Props {
55
category: string;
66
}
77

8-
export default ({ category: filterCategory }: Props) => (
9-
<div className="flex flex-row flex-wrap items-center justify-center rounded-md bg-gray-300 px-7 py-5 dark:bg-gray-50/10">
10-
{users
11-
.filter(({ category }) => category === filterCategory)
12-
.map((user) => (
13-
<User user={user} key={user.name} />
14-
))}
15-
</div>
16-
);
8+
export default function UserList({ category: filterCategory }: Props) {
9+
return (
10+
<div className="flex flex-row flex-wrap items-center justify-center rounded-md bg-gray-300 px-7 py-5 dark:bg-gray-50/10">
11+
{users
12+
.filter(({ category }) => category === filterCategory)
13+
.map((user) => (
14+
<User user={user} key={user.name} />
15+
))}
16+
</div>
17+
);
18+
}

Diff for: packages/website/src/theme.config.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ const config: DocsThemeConfig = {
1414
content: '',
1515
},
1616
head() {
17+
// eslint-disable-next-line react-hooks/rules-of-hooks
1718
const { frontMatter, title } = useConfig();
19+
// eslint-disable-next-line react-hooks/rules-of-hooks
1820
const { route } = useRouter();
1921

2022
const description =

0 commit comments

Comments
 (0)