Skip to content

Commit a7a612c

Browse files
committed
upped eslint
1 parent a0a0e2a commit a7a612c

40 files changed

+1092
-553
lines changed

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ web/build
2727
web/src/_e2e-test/downloads
2828
web/src/_e2e-test/videos
2929
web/src/_e2e-test/screenshots
30+
# Project
31+
firebase/public
32+
firebase/data
3033

3134
# mobile
3235
mobile/.expo

api/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
"generate:sentry-release": "ts-node ../packages/tooling/sentry-release.ts api dist",
8080
"lint": "yarn build && yarn lint:alone",
8181
"lint:alone": "yarn lint:eslint . && yarn lint:prettier --check . && yarn lint:tsc && yarn lint:ts-prune",
82-
"lint:eslint": "eslint --config ../packages/tooling/.eslintrc.json --ignore-path ../packages/tooling/.eslintignore --report-unused-disable-directives",
82+
"lint:eslint": "eslint --config ../packages/tooling/eslint.config.mjs",
8383
"lint:fix": "yarn build && yarn lint:fix:alone",
8484
"lint:fix:alone": "yarn lint:eslint --fix . && yarn lint:prettier --write .",
8585
"lint:prettier": "prettier --config ../packages/tooling/.prettierrc --ignore-path ../packages/tooling/.prettierignore --log-level warn",

api/src/app/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import { RobotsMiddleware } from "./middlewares/robots";
2424
import { SecurityMiddleware } from "./middlewares/security";
2525

2626
// Use typedi container
27-
useContainer(Container);
27+
useContainer(Container); // eslint-disable-line react-hooks/rules-of-hooks
2828

2929
// Initialize Database
3030
Container.get(SQLiteService);

api/src/app/middlewares/robots.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { RequestHandler } from "express";
22
import { ExpressMiddlewareInterface, Middleware } from "routing-controllers";
33
import { Service } from "typedi";
4-
const robots = require("express-robots-txt"); // eslint-disable-line @typescript-eslint/no-var-requires
4+
const robots = require("express-robots-txt"); // eslint-disable-line @typescript-eslint/no-require-imports
55

66
@Service()
77
@Middleware({ type: "before", priority: 0 })

api/src/config/types.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@ import { Environment, environments } from "@dzcode.io/utils/dist/config/environm
22
import { IsOptional, IsString, Matches } from "class-validator";
33
import { readFileSync } from "fs-extra";
44

5-
// eslint-disable-next-line @typescript-eslint/no-var-requires
6-
let bundleInfo = { version: require("../../package.json").version };
5+
let bundleInfo = { version: require("../../package.json").version }; // eslint-disable-line @typescript-eslint/no-require-imports
76
try {
87
bundleInfo = JSON.parse(readFileSync(".bundle-info.json").toString());
98
} catch (error) {

api/src/github/service.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export class GithubService {
3939
{
4040
headers: this.githubToken ? { Authorization: `Token ${this.githubToken}` } : {},
4141
// @TODO-ZM: add pagination
42-
params: { sort: "updated", per_page: 100 }, // eslint-disable-line camelcase
42+
params: { sort: "updated", per_page: 100 },
4343
},
4444
);
4545

@@ -65,7 +65,7 @@ export class GithubService {
6565
`${this.apiURL}/repos/${owner}/${repository}/contributors`,
6666
{
6767
headers: this.githubToken ? { Authorization: `Token ${this.githubToken}` } : {},
68-
params: { state: "all", per_page: 100 }, // eslint-disable-line camelcase
68+
params: { state: "all", per_page: 100 },
6969
},
7070
);
7171

@@ -96,7 +96,7 @@ export class GithubService {
9696
`${this.apiURL}/repos/${owner}/${repository}/milestones`,
9797
{
9898
headers: this.githubToken ? { Authorization: `Token ${this.githubToken}` } : {},
99-
params: { state: "all", per_page: 100 }, // eslint-disable-line camelcase
99+
params: { state: "all", per_page: 100 },
100100
},
101101
);
102102
return milestones;

data/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
"clean:alone": "rimraf dist coverage",
4747
"lint": "yarn build && yarn lint:alone",
4848
"lint:alone": "yarn lint:eslint . && yarn lint:prettier --check . && yarn lint:tsc && yarn lint:ts-prune",
49-
"lint:eslint": "eslint --config ../packages/tooling/.eslintrc.json --ignore-path ../packages/tooling/.eslintignore --report-unused-disable-directives",
49+
"lint:eslint": "eslint --config ../packages/tooling/eslint.config.mjs",
5050
"lint:fix": "yarn build && yarn lint:fix:alone",
5151
"lint:fix:alone": "yarn lint:eslint --fix . && yarn lint:prettier --write .",
5252
"lint:prettier": "prettier --config ../packages/tooling/.prettierrc --ignore-path ../packages/tooling/.prettierignore --log-level warn",

package.json

+11-7
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,25 @@
22
"name": "@dzcode.io/root",
33
"dependencies": {},
44
"devDependencies": {
5+
"@eslint/compat": "^1.1.1",
6+
"@eslint/js": "^9.10.0",
57
"@prettier/plugin-pug": "^3.1.0",
68
"@sentry/cli": "^2.36.0",
79
"@types/jest": "^29.5.0",
810
"@types/node": "^20",
911
"@types/semver": "^7.3.9",
10-
"@typescript-eslint/eslint-plugin": "^5.48.1",
11-
"@typescript-eslint/parser": "^5.48.1",
1212
"cross-env": "^7.0.3",
13-
"eslint": "^8.3.0",
14-
"eslint-config-prettier": "^8.3.0",
15-
"eslint-plugin-react": "^7.27.1",
16-
"eslint-plugin-simple-import-sort": "^7.0.0",
17-
"eslint-plugin-unicorn": "^39.0.0",
13+
"eslint": "^9.10.0",
14+
"eslint-config-prettier": "^9.1.0",
15+
"eslint-plugin-react": "^7.35.2",
16+
"eslint-plugin-react-hooks": "^4.6.2",
17+
"eslint-plugin-simple-import-sort": "^12.1.1",
18+
"eslint-plugin-unicorn": "^55.0.0",
19+
"globals": "^15.9.0",
1820
"husky": "^7.0.4",
1921
"jest": "^29.5.0",
2022
"jest-mock-extended": "^2.0.7",
23+
"jiti": "^1.21.6",
2124
"lerna": "^4.0.0",
2225
"lint-staged": "^12.1.2",
2326
"nodemon": "^2.0.15",
@@ -33,6 +36,7 @@
3336
"ts-patch": "^3.2.1",
3437
"ts-prune": "^0.10.3",
3538
"typescript": "5.5.3",
39+
"typescript-eslint": "^8.5.0",
3640
"typescript-transform-paths": "^3.5.0"
3741
},
3842
"lint-staged": {

packages/models/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"clean:alone": "rimraf dist coverage",
3232
"lint": "yarn build && yarn lint:alone",
3333
"lint:alone": "yarn lint:eslint . && yarn lint:prettier --check .",
34-
"lint:eslint": "eslint --config ../tooling/.eslintrc.json --ignore-path ../tooling/.eslintignore --report-unused-disable-directives",
34+
"lint:eslint": "eslint --config ../tooling/eslint.config.mjs",
3535
"lint:fix": "yarn build && yarn lint:fix:alone",
3636
"lint:fix:alone": "yarn lint:eslint --fix . && yarn lint:prettier --write .",
3737
"lint:prettier": "prettier --config ../tooling/.prettierrc --ignore-path ../tooling/.prettierignore --log-level warn",

packages/tooling/.eslintignore

-19
This file was deleted.

packages/tooling/.eslintrc.json

-47
This file was deleted.

packages/tooling/eslint.config.mjs

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import globals from "globals";
2+
import pluginJs from "@eslint/js";
3+
import tseslint from "typescript-eslint";
4+
import pluginReact from "eslint-plugin-react";
5+
import { includeIgnoreFile, fixupPluginRules } from "@eslint/compat";
6+
import path from "node:path";
7+
import { fileURLToPath } from "node:url";
8+
import reactHooks from "eslint-plugin-react-hooks";
9+
10+
const __filename = fileURLToPath(import.meta.url);
11+
const __dirname = path.dirname(__filename);
12+
const gitignorePath = path.resolve(__dirname, "../../.gitignore");
13+
14+
export default [
15+
includeIgnoreFile(gitignorePath),
16+
{ linterOptions: { reportUnusedDisableDirectives: "error" } },
17+
{ languageOptions: { globals: { ...globals.browser, ...globals.node } } },
18+
pluginJs.configs.recommended,
19+
...tseslint.configs.recommended,
20+
pluginReact.configs.flat.recommended,
21+
{
22+
plugins: { "react-hooks": fixupPluginRules(reactHooks) },
23+
rules: { ...reactHooks.configs.recommended.rules },
24+
},
25+
{
26+
rules: {
27+
"react/prop-types": "off",
28+
},
29+
},
30+
];

packages/tooling/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"scripts": {
1919
"lint": "yarn lint:alone",
2020
"lint:alone": "yarn lint:eslint . && yarn lint:prettier --check .",
21-
"lint:eslint": "eslint --config .eslintrc.json --ignore-path .eslintignore --report-unused-disable-directives",
21+
"lint:eslint": "eslint --config eslint.config.mjs",
2222
"lint:fix": "yarn lint:fix:alone",
2323
"lint:fix:alone": "yarn lint:eslint --fix . && yarn lint:prettier --write .",
2424
"lint:prettier": "prettier --config .prettierrc --ignore-path .prettierignore --log-level warn"

packages/tooling/version-apply.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ const modifiedFilePaths: string[] = [];
2626
dependencies.forEach(({ location }) => {
2727
const packageJsonPath = join(location, "package.json");
2828
if (existsSync(packageJsonPath)) {
29-
const packageJsonContent = require(packageJsonPath); // eslint-disable-line @typescript-eslint/no-var-requires
29+
const packageJsonContent = require(packageJsonPath); // eslint-disable-line @typescript-eslint/no-require-imports
3030
packageJsonContent.version = cleanVersion;
3131
writeFileSync(packageJsonPath, JSON.stringify(packageJsonContent, null, 2));
3232
console.log(`Applied version ${version} to ${packageJsonPath}`);
@@ -35,7 +35,7 @@ dependencies.forEach(({ location }) => {
3535

3636
const appJsonPath = join(location, "app.json");
3737
if (existsSync(appJsonPath)) {
38-
const appJsonContent = require(appJsonPath); // eslint-disable-line @typescript-eslint/no-var-requires
38+
const appJsonContent = require(appJsonPath); // eslint-disable-line @typescript-eslint/no-require-imports
3939
appJsonContent.expo.version = cleanVersion;
4040
appJsonContent.expo.ios.buildNumber = cleanVersion;
4141
appJsonContent.expo.android.versionCode = Number(cleanVersion.replace(/\D/g, ""));

packages/utils/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
"clean:alone": "rimraf dist coverage",
2929
"lint": "yarn build && yarn lint:alone",
3030
"lint:alone": "yarn lint:eslint . && yarn lint:prettier --check .",
31-
"lint:eslint": "eslint --config ../tooling/.eslintrc.json --ignore-path ../tooling/.eslintignore --report-unused-disable-directives",
31+
"lint:eslint": "eslint --config ../tooling/eslint.config.mjs",
3232
"lint:fix": "yarn build && yarn lint:fix:alone",
3333
"lint:fix:alone": "yarn lint:eslint --fix . && yarn lint:prettier --write .",
3434
"lint:prettier": "prettier --config ../tooling/.prettierrc --ignore-path ../tooling/.prettierignore --log-level warn",

web/eslint.config.mjs

-31
This file was deleted.

web/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@
7070
"generate:sitemap": "cross-env TS_NODE_SKIP_PROJECT=true ts-node --compilerOptions \"{\\\"baseUrl\\\": \\\".\\\"}\" src/_build/sitemap.ts",
7171
"lint": "yarn build && yarn lint:alone",
7272
"lint:alone": "yarn lint:eslint . && yarn lint:prettier --check . && yarn lint:tsc && yarn lint:ts-prune",
73-
"lint:eslint": "eslint --config ../packages/tooling/.eslintrc.json --ignore-path ../packages/tooling/.eslintignore --report-unused-disable-directives",
73+
"lint:eslint": "eslint --config ../packages/tooling/eslint.config.mjs",
7474
"lint:fix": "yarn build && yarn lint:fix:alone",
7575
"lint:fix:alone": "yarn lint:eslint --fix . && yarn lint:prettier --write .",
7676
"lint:prettier": "prettier --config ../packages/tooling/.prettierrc --ignore-path ../packages/tooling/.prettierignore --log-level warn",

web/rsbuild.config.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ if (!environments.includes(stage)) {
1111
}
1212

1313
let bundleInfo: { version: string } = {
14-
version: `v${require("./package.json").version as string}`, // eslint-disable-line @typescript-eslint/no-var-requires
14+
version: `v${require("./package.json").version as string}`, // eslint-disable-line @typescript-eslint/no-require-imports
1515
};
1616
try {
1717
bundleInfo = JSON.parse(readFileSync(".bundle-info.json").toString()) as typeof bundleInfo;

web/src/_build/sitemap.ts

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { getCollection } from "@dzcode.io/data/dist/collection";
21
import { allLanguages } from "@dzcode.io/models/dist/language";
32
import { createWriteStream } from "fs";
43
import { join } from "path";

web/src/_entry/app.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { Languages } from "src/components/locale/languages";
88
import { TopBar, TopBarProps } from "src/components/top-bar";
99
import { StoreProvider } from "src/redux/store";
1010
import { getInitialLanguageCode } from "src/utils/website-language";
11+
import React from "react";
1112

1213
let routes: Array<
1314
RouteProps & {

web/src/components/footer.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import logoSquare from "src/assets/svg/logo-square.svg";
22
import { Image } from "src/components/image";
33
import { Link } from "src/components/link";
4+
import React from "react";
45

56
import { Locale } from "./locale";
67
import { DictionaryKeys } from "./locale/dictionary";

web/src/components/image.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import React from "react";
12
import type { ImgHTMLAttributes } from "react";
23

34
type ImageProps = ImgHTMLAttributes<HTMLImageElement>;

web/src/components/link.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import React from "react";
12
import type { PropsWithChildren } from "react";
23
import type { LinkProps as RRLinkProps } from "react-router-dom";
34
import { Link as RRLink } from "react-router-dom";

web/src/components/loadable.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import React from "react";
12
import loadableFactory from "@loadable/component";
23
import { Loading } from "src/components/loading";
34

web/src/components/loading.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import React from "react";
12
import logoSquare from "src/assets/svg/logo-square.svg";
23

34
import { Image } from "./image";

web/src/components/locale/factory.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import React from "react";
12
import { PartialWithOneRequiredKey } from "@dzcode.io/utils/dist/ts";
23
import type { FC } from "react";
34
import { useSelector } from "react-redux";

web/src/components/markdown.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import React from "react";
12
import ReactMarkdown from "react-markdown";
23
import { Link } from "src/components/link";
34

web/src/components/top-bar.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import React from "react";
12
import { useMemo } from "react";
23
import { useLocation } from "react-router-dom";
34
import logoWide from "src/assets/svg/logo-wide.svg";

web/src/components/try-again.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import React from "react";
12
interface TryAgainProps {
23
error: string;
34
action: string;

web/src/index.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Sentry initialization should be imported first!
22
import "src/utils/setup-sentry";
33

4+
import React from "react";
45
import { StrictMode } from "react";
56
import { createRoot } from "react-dom/client";
67

web/src/pages/contribute/index.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { TryAgain } from "src/components/try-again";
88
import { fetchContributionsListAction } from "src/redux/actions/contributions";
99
import { useAppDispatch, useAppSelector } from "src/redux/store";
1010
import { getElapsedTime } from "src/utils/elapsed-time";
11+
import React from "react";
1112

1213
// ts-prune-ignore-next
1314
export default function Page(): JSX.Element {

web/src/pages/faq/index.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import React from "react";
12
import { Helmet } from "react-helmet-async";
23
import { Locale, useLocale } from "src/components/locale";
34
import { Markdown } from "src/components/markdown";

0 commit comments

Comments
 (0)