Skip to content

Commit 7912146

Browse files
committed
Add eslint
1 parent 4bfca29 commit 7912146

File tree

5 files changed

+790
-17
lines changed

5 files changed

+790
-17
lines changed

.eslintignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
dist
2+
tmp

.eslintrc.js

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
module.exports = {
2+
env: {
3+
browser: true,
4+
es2020: true,
5+
node: true,
6+
},
7+
extends: [
8+
"eslint:recommended",
9+
"plugin:@typescript-eslint/recommended",
10+
"plugin:react/recommended",
11+
"plugin:react/jsx-runtime",
12+
"plugin:react-hooks/recommended",
13+
],
14+
parser: "@typescript-eslint/parser",
15+
plugins: ["@typescript-eslint", "react"],
16+
rules: {
17+
// See https://github.com/emotion-js/emotion/issues/2878
18+
"react/no-unknown-property": ["error", { ignore: ["css"] }],
19+
},
20+
settings: {
21+
react: {
22+
version: "detect",
23+
},
24+
},
25+
26+
// TODO
27+
overrides: [
28+
{
29+
rules: {
30+
"@typescript-eslint/no-unused-vars": "off",
31+
},
32+
files: [
33+
"src/client/components/Article.tsx",
34+
"src/client/components/SidebarContents.tsx",
35+
"src/client/templates/Sidebar.tsx",
36+
"src/commands/login.ts",
37+
"src/commands/preview.ts",
38+
"src/commands/publish.ts",
39+
"src/commands/pull.ts",
40+
"src/lib/file-system-repo.test.ts",
41+
"src/lib/file-system-repo.ts",
42+
"src/server/api/items.ts",
43+
"src/server/api/readme.ts",
44+
"src/server/app.ts",
45+
"src/server/lib/get-current-user.ts",
46+
],
47+
},
48+
{
49+
rules: {
50+
"react-hooks/exhaustive-deps": "off",
51+
},
52+
files: [
53+
"src/client/components/HotReloadRoot.tsx",
54+
"src/client/components/SidebarArticles.tsx",
55+
"src/client/components/Snackbar.tsx",
56+
"src/client/components/Tooltip.tsx",
57+
],
58+
},
59+
{
60+
rules: {
61+
"@typescript-eslint/no-explicit-any": "off",
62+
},
63+
files: [
64+
"src/client/lib/embed-init-scripts.ts",
65+
"src/lib/config.test.ts",
66+
"src/lib/config.ts",
67+
"src/lib/file-system-repo.test.ts",
68+
"src/lib/file-system-repo.ts",
69+
"src/server/api/readme.ts",
70+
],
71+
},
72+
{
73+
rules: {
74+
"@typescript-eslint/ban-types": "off",
75+
},
76+
files: ["src/client/lib/entries.ts"],
77+
},
78+
{
79+
rules: {
80+
"no-prototype-builtins": "off",
81+
},
82+
files: ["src/commands/index.ts"],
83+
},
84+
{
85+
rules: {
86+
"@typescript-eslint/no-var-requires": "off",
87+
},
88+
files: ["src/lib/package-settings.ts"],
89+
},
90+
],
91+
};

package.json

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,12 @@
3131
"@types/react-dom": "^18.0.11",
3232
"@types/webpack": "^5.28.0",
3333
"@types/ws": "^8.5.4",
34+
"@typescript-eslint/eslint-plugin": "^6.0.0",
35+
"@typescript-eslint/parser": "^6.0.0",
3436
"classnames": "^2.3.2",
37+
"eslint": "^8.44.0",
38+
"eslint-plugin-react": "^7.32.2",
39+
"eslint-plugin-react-hooks": "^4.6.0",
3540
"html-webpack-plugin": "^5.5.0",
3641
"husky": "^8.0.3",
3742
"jest": "^29.4.3",
@@ -54,9 +59,10 @@
5459
"dev:client": "webpack --watch",
5560
"dev:server": "tsc --build --watch",
5661
"dev": "run-p dev:*",
57-
"format": "prettier --write .",
62+
"format": "eslint --fix . && prettier --write .",
5863
"lint": "run-p lint:*",
59-
"lint:format": "prettier --check .",
64+
"lint:prettier": "prettier --check .",
65+
"lint:eslint": "eslint .",
6066
"lint:typecheck": "tsc --noEmit",
6167
"prepare": "husky install",
6268
"qiita": "node dist/main.js",

webpack.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/* eslint-disable @typescript-eslint/no-var-requires */
12
const path = require("path");
23
const HtmlWebpackPlugin = require("html-webpack-plugin");
34

0 commit comments

Comments
 (0)