@willbooster/eslint-config-next 1.0.2 → 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 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.2",
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.js",
7
+ "main": ".eslintrc.json",
8
8
  "files": [
9
- ".eslintrc.js"
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
- };