Skip to content

Commit 575a8a3

Browse files
Upgrade to EsLint 9.x
1 parent 1feeb14 commit 575a8a3

File tree

8 files changed

+395
-260
lines changed

8 files changed

+395
-260
lines changed

.eslintrc.js

Lines changed: 0 additions & 98 deletions
This file was deleted.

docs-site/src/examples/.eslintrc

Lines changed: 0 additions & 36 deletions
This file was deleted.

eslint.config.js

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
//@ts-check
2+
/**
3+
* ESlint Configuration
4+
* @type {import('eslint').Linter.Config}
5+
*/
6+
const eslint = require("@eslint/js");
7+
const tseslint = require("typescript-eslint");
8+
const react = require("eslint-plugin-react");
9+
const reactHooks = require("eslint-plugin-react-hooks");
10+
const jestPlugin = require("eslint-plugin-jest");
11+
12+
module.exports = [
13+
eslint.configs.recommended,
14+
...tseslint.configs.recommended,
15+
{
16+
files: ["src/**/*.{js,jsx,ts,tsx}"],
17+
ignores: ["src/examples/**"],
18+
plugins: {
19+
"@typescript-eslint": tseslint.plugin,
20+
react,
21+
"react-hooks": reactHooks,
22+
},
23+
languageOptions: {
24+
parser: tseslint.parser,
25+
parserOptions: {
26+
ecmaFeatures: {
27+
jsx: true,
28+
},
29+
project: ["./tsconfig.json"],
30+
},
31+
},
32+
settings: {
33+
react: {
34+
version: "detect",
35+
},
36+
},
37+
rules: {
38+
...react.configs.recommended.rules,
39+
...reactHooks.configs.recommended.rules,
40+
"@typescript-eslint/no-empty-object-type": "off",
41+
"@typescript-eslint/no-unused-expressions": "off",
42+
"@typescript-eslint/no-unused-vars": "off",
43+
},
44+
},
45+
{
46+
files: ["src/examples/**/*.{js,jsx,ts,tsx}"],
47+
plugins: {
48+
react,
49+
},
50+
rules: {
51+
"no-unused-expressions": "off",
52+
"react/react-in-jsx-scope": "off",
53+
"react/jsx-no-undef": [
54+
"error",
55+
{
56+
allowGlobals: true,
57+
},
58+
],
59+
"@typescript-eslint/no-empty-object-type": "off",
60+
},
61+
languageOptions: {
62+
globals: {
63+
useState: "readonly",
64+
render: "readonly",
65+
DatePicker: "readonly",
66+
getHours: "readonly",
67+
setHours: "readonly",
68+
setSeconds: "readonly",
69+
setMinutes: "readonly",
70+
getDate: "readonly",
71+
addDays: "readonly",
72+
subDays: "readonly",
73+
addMonths: "readonly",
74+
fi: "readonly",
75+
getDay: "readonly",
76+
isValid: "readonly",
77+
format: "readonly",
78+
range: "readonly",
79+
getYear: "readonly",
80+
getMonth: "readonly",
81+
PropTypes: "readonly",
82+
CalendarContainer: "readonly",
83+
subMonths: "readonly",
84+
forwardRef: "readonly",
85+
},
86+
},
87+
},
88+
// New configuration for test files
89+
{
90+
files: ["src/**/*.test.{js,jsx,ts,tsx}", "src/**/*.spec.{js,jsx,ts,tsx}"],
91+
plugins: {
92+
jest: jestPlugin,
93+
},
94+
rules: {
95+
...jestPlugin.configs.recommended.rules,
96+
"jest/expect-expect": "off",
97+
},
98+
},
99+
];

package.json

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"@babel/preset-env": "^7.25.4",
3131
"@babel/preset-react": "^7.24.7",
3232
"@babel/preset-typescript": "^7.24.7",
33+
"@eslint/js": "^9.12.0",
3334
"@react-docgen/cli": "^2.0.3",
3435
"@rollup/plugin-babel": "^6.0.4",
3536
"@rollup/plugin-commonjs": "^28.0.0",
@@ -38,7 +39,7 @@
3839
"@rollup/plugin-typescript": "^11.1.6",
3940
"@testing-library/dom": "^10.4.0",
4041
"@testing-library/react": "^16.0.0",
41-
"@types/eslint": "^8.56.10",
42+
"@types/eslint": "^9.6.1",
4243
"@types/jest": "^29.5.12",
4344
"@types/node": "22",
4445
"@types/react": "^18.3.4",
@@ -49,12 +50,12 @@
4950
"babel-jest": "^29.7.0",
5051
"babel-plugin-transform-react-remove-prop-types": "^0.4.24",
5152
"core-js": "^3.38.1",
52-
"eslint": "^8.57.0",
53+
"eslint": "^9.12.0",
5354
"eslint-config-prettier": "^9.1.0",
5455
"eslint-plugin-import": "^2.29.1",
5556
"eslint-plugin-jest": "^28.8.0",
56-
"eslint-plugin-react": "^7.35.0",
57-
"eslint-plugin-react-hooks": "^4.6.2",
57+
"eslint-plugin-react": "^7.37.1",
58+
"eslint-plugin-react-hooks": "^5.0.0",
5859
"eslint-plugin-unused-imports": "^4.1.3",
5960
"husky": "9",
6061
"jest": "^29.7.0",
@@ -75,7 +76,8 @@
7576
"stylelint-scss": "^6.5.1",
7677
"ts-jest": "^29.2.5",
7778
"tslib": "^2.7.0",
78-
"typescript": "^5.5.4"
79+
"typescript": "^5.5.4",
80+
"typescript-eslint": "^8.9.0"
7981
},
8082
"peerDependencies": {
8183
"react": "^16.9.0 || ^17 || ^18",
@@ -88,7 +90,7 @@
8890
"prop-types": "^15.8.1"
8991
},
9092
"scripts": {
91-
"eslint": "eslint --ext .js,.jsx,.ts,.tsx ./src",
93+
"eslint": "eslint ./src",
9294
"precommit": "lint-staged --allow-empty",
9395
"sass-lint": "stylelint 'src/stylesheets/*.scss'",
9496
"lint": "yarn run eslint && yarn run sass-lint",

src/month.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -449,7 +449,6 @@ export default class Month extends Component<MonthProps> {
449449
? isPreSelected(this.props.preSelection)
450450
: undefined;
451451

452-
// eslint-disable-next-line no-constant-condition
453452
while (true) {
454453
weeks.push(
455454
<Week

src/test/calendar_test.test.tsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1504,14 +1504,12 @@ describe("Calendar", () => {
15041504
expect(firstHeader?.textContent).toBe(firstWeekDayMin);
15051505
}
15061506

1507-
// eslint-disable-next-line jest/expect-expect
15081507
it("should use the 'en' locale by default", () => {
15091508
const selected = newDate();
15101509
const { calendar } = getCalendar({ selected });
15111510
testLocale(calendar, selected);
15121511
});
15131512

1514-
// eslint-disable-next-line jest/expect-expect
15151513
it("should use the default locale when set", () => {
15161514
const selected = newDate();
15171515
setDefaultLocale("fi");
@@ -1521,7 +1519,6 @@ describe("Calendar", () => {
15211519
setDefaultLocale("");
15221520
});
15231521

1524-
// eslint-disable-next-line jest/expect-expect
15251522
it("should use the locale specified as a prop", () => {
15261523
registerLocale("fi", fi);
15271524
const locale = "fi";
@@ -1530,7 +1527,6 @@ describe("Calendar", () => {
15301527
testLocale(calendar, selected, locale);
15311528
});
15321529

1533-
// eslint-disable-next-line jest/expect-expect
15341530
it("should override the default locale with the locale prop", () => {
15351531
const locale = "en";
15361532
const selected = newDate();

src/test/datepicker_test.test.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -931,7 +931,6 @@ describe("DatePicker", () => {
931931
expect(getSeconds(date!)).toBe(12);
932932
});
933933

934-
// eslint-disable-next-line jest/expect-expect
935934
it("should mount and unmount properly", () => {
936935
type State = {
937936
mounted: boolean;

0 commit comments

Comments
 (0)