@willbooster/eslint-config-next 1.0.3 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +103 -0
- package/package.json +3 -3
- package/.eslintrc.js +0 -34
package/.eslintrc.json
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": ["next/core-web-vitals", "@willbooster/eslint-config-ts"],
|
|
3
|
+
"rules": {
|
|
4
|
+
"import/no-default-export": "error",
|
|
5
|
+
"react/jsx-sort-props": [
|
|
6
|
+
"error",
|
|
7
|
+
{
|
|
8
|
+
"callbacksLast": true,
|
|
9
|
+
"shorthandFirst": true,
|
|
10
|
+
"reservedFirst": true
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"react/no-unknown-property": [
|
|
14
|
+
"error",
|
|
15
|
+
{
|
|
16
|
+
"ignore": ["global", "jsx"]
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"react/prop-types": "off"
|
|
20
|
+
},
|
|
21
|
+
"overrides": [
|
|
22
|
+
{
|
|
23
|
+
// A default export is required in app and page files.
|
|
24
|
+
"files": ["src/app/**/{layout,page}.tsx", "src/pages/**/*.tsx", "src/pages/api/**/*.ts"],
|
|
25
|
+
"rules": {
|
|
26
|
+
"import/no-default-export": "off"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
// You can use brackets for dynamic routes.
|
|
31
|
+
// cf. https://nextjs.org/docs/getting-started/project-structure
|
|
32
|
+
"files": ["src/pages/**/*.tsx", "src/pages/api/**/*.ts"],
|
|
33
|
+
"rules": {
|
|
34
|
+
"unicorn/filename-case": [
|
|
35
|
+
"error",
|
|
36
|
+
{
|
|
37
|
+
"case": "kebabCase",
|
|
38
|
+
"ignore": ["^\\[.+\\]\\.tsx?$"]
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
// Request handlers must have the same name as the HTTP methods name (uppercase, e.g. `GET`).
|
|
45
|
+
// https://nextjs.org/docs/app/api-reference/file-conventions/route
|
|
46
|
+
"files": ["src/app/api/**/route.ts"],
|
|
47
|
+
"rules": {
|
|
48
|
+
"@typescript-eslint/naming-convention": [
|
|
49
|
+
"error",
|
|
50
|
+
{
|
|
51
|
+
"selector": "default",
|
|
52
|
+
"format": ["camelCase"],
|
|
53
|
+
"leadingUnderscore": "allow",
|
|
54
|
+
"trailingUnderscore": "allow"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"selector": "parameter",
|
|
58
|
+
"format": ["camelCase"],
|
|
59
|
+
"leadingUnderscore": "allow"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"selector": "variable",
|
|
63
|
+
"format": ["camelCase", "PascalCase", "UPPER_CASE"],
|
|
64
|
+
// to use 'const ReactElem = () => { ... };'
|
|
65
|
+
"leadingUnderscore": "allow",
|
|
66
|
+
"trailingUnderscore": "allow"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"selector": "typeLike",
|
|
70
|
+
"format": ["PascalCase"]
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"selector": "enumMember",
|
|
74
|
+
"format": ["PascalCase"]
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
// allow any name when referring to import and property
|
|
78
|
+
"selector": ["import", "property"],
|
|
79
|
+
"format": null
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
// allow any name in object destructuring of variable
|
|
83
|
+
"selector": "variable",
|
|
84
|
+
"modifiers": ["destructured"],
|
|
85
|
+
"format": null
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
// allow any name in object destructuring of parameter
|
|
89
|
+
"selector": "parameter",
|
|
90
|
+
"modifiers": ["destructured"],
|
|
91
|
+
"format": null
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"filter": "^(?:DELETE|GET|HEAD|OPTIONS|PATCH|POST|PUT)$",
|
|
95
|
+
"selector": "function",
|
|
96
|
+
"modifiers": ["exported"],
|
|
97
|
+
"format": null
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
]
|
|
103
|
+
}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@willbooster/eslint-config-next",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "A ESLint config for Next.js",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "WillBooster Inc.",
|
|
7
|
-
"main": ".eslintrc.
|
|
7
|
+
"main": ".eslintrc.json",
|
|
8
8
|
"files": [
|
|
9
|
-
".eslintrc.
|
|
9
|
+
".eslintrc.json"
|
|
10
10
|
],
|
|
11
11
|
"scripts": {
|
|
12
12
|
"cleanup": "yarn format && yarn lint-fix",
|
package/.eslintrc.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
extends: ['next/core-web-vitals', '@willbooster/eslint-config-ts'],
|
|
3
|
-
rules: {
|
|
4
|
-
'import/no-default-export': 'error',
|
|
5
|
-
'react/jsx-sort-props': [
|
|
6
|
-
'error',
|
|
7
|
-
{
|
|
8
|
-
callbacksLast: true,
|
|
9
|
-
shorthandFirst: true,
|
|
10
|
-
reservedFirst: true,
|
|
11
|
-
},
|
|
12
|
-
],
|
|
13
|
-
'react/no-unknown-property': [
|
|
14
|
-
'error',
|
|
15
|
-
{
|
|
16
|
-
ignore: ['global', 'jsx'],
|
|
17
|
-
},
|
|
18
|
-
],
|
|
19
|
-
'react/prop-types': 'off',
|
|
20
|
-
},
|
|
21
|
-
overrides: [
|
|
22
|
-
{
|
|
23
|
-
// A default export is required in app and page files.
|
|
24
|
-
files: ['src/app/**/{layout,page}.tsx', 'src/pages/**/*.tsx', 'src/pages/api/**/*.ts'],
|
|
25
|
-
rules: { 'import/no-default-export': 'off' },
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
// You can use brackets for dynamic routes.
|
|
29
|
-
// cf. https://nextjs.org/docs/getting-started/project-structure
|
|
30
|
-
files: ['src/pages/**/*.tsx', 'src/pages/api/**/*.ts'],
|
|
31
|
-
rules: { 'unicorn/filename-case': ['error', { case: 'kebabCase', ignore: ['^\\[.+\\]\\.tsx?$'] }] },
|
|
32
|
-
},
|
|
33
|
-
],
|
|
34
|
-
};
|