@willbooster/eslint-config-next 1.0.3 → 1.1.1

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.
Files changed (3) hide show
  1. package/.eslintrc.json +109 -0
  2. package/package.json +17 -17
  3. package/.eslintrc.js +0 -34
package/.eslintrc.json ADDED
@@ -0,0 +1,109 @@
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
+ // See also https://nextjs.org/docs/app/building-your-application/routing#file-conventions
25
+ "files": [
26
+ "src/app/**/{layout,page,loading,not-found,error,template,default}.tsx",
27
+ "src/app/global-error.tsx",
28
+ "src/pages/**/*.tsx",
29
+ "src/pages/api/**/*.ts"
30
+ ],
31
+ "rules": {
32
+ "import/no-default-export": "off"
33
+ }
34
+ },
35
+ {
36
+ // You can use brackets for dynamic routes.
37
+ // cf. https://nextjs.org/docs/getting-started/project-structure
38
+ "files": ["src/pages/**/*.tsx", "src/pages/api/**/*.ts"],
39
+ "rules": {
40
+ "unicorn/filename-case": [
41
+ "error",
42
+ {
43
+ "case": "kebabCase",
44
+ "ignore": ["^\\[.+\\]\\.tsx?$"]
45
+ }
46
+ ]
47
+ }
48
+ },
49
+ {
50
+ // Request handlers must have the same name as the HTTP methods name (uppercase, e.g. `GET`).
51
+ // https://nextjs.org/docs/app/api-reference/file-conventions/route
52
+ "files": ["src/app/api/**/route.ts"],
53
+ "rules": {
54
+ "@typescript-eslint/naming-convention": [
55
+ "error",
56
+ {
57
+ "selector": "default",
58
+ "format": ["camelCase"],
59
+ "leadingUnderscore": "allow",
60
+ "trailingUnderscore": "allow"
61
+ },
62
+ {
63
+ "selector": "parameter",
64
+ "format": ["camelCase"],
65
+ "leadingUnderscore": "allow"
66
+ },
67
+ {
68
+ "selector": "variable",
69
+ "format": ["camelCase", "PascalCase", "UPPER_CASE"],
70
+ // to use 'const ReactElem = () => { ... };'
71
+ "leadingUnderscore": "allow",
72
+ "trailingUnderscore": "allow"
73
+ },
74
+ {
75
+ "selector": "typeLike",
76
+ "format": ["PascalCase"]
77
+ },
78
+ {
79
+ "selector": "enumMember",
80
+ "format": ["PascalCase"]
81
+ },
82
+ {
83
+ // allow any name when referring to import and property
84
+ "selector": ["import", "property"],
85
+ "format": null
86
+ },
87
+ {
88
+ // allow any name in object destructuring of variable
89
+ "selector": "variable",
90
+ "modifiers": ["destructured"],
91
+ "format": null
92
+ },
93
+ {
94
+ // allow any name in object destructuring of parameter
95
+ "selector": "parameter",
96
+ "modifiers": ["destructured"],
97
+ "format": null
98
+ },
99
+ {
100
+ "filter": "^(?:DELETE|GET|HEAD|OPTIONS|PATCH|POST|PUT)$",
101
+ "selector": "function",
102
+ "modifiers": ["exported"],
103
+ "format": null
104
+ }
105
+ ]
106
+ }
107
+ }
108
+ ]
109
+ }
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@willbooster/eslint-config-next",
3
- "version": "1.0.3",
3
+ "version": "1.1.1",
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",
@@ -22,29 +22,29 @@
22
22
  "@willbooster/eslint-config-ts": "10.5.1"
23
23
  },
24
24
  "devDependencies": {
25
- "@types/eslint": "8.44.6",
26
- "@types/micromatch": "4.0.4",
27
- "@types/node": "20.8.8",
28
- "@types/react": "18.2.31",
29
- "@typescript-eslint/eslint-plugin": "6.9.0",
30
- "@typescript-eslint/parser": "6.9.0",
25
+ "@types/eslint": "8.56.2",
26
+ "@types/micromatch": "4.0.6",
27
+ "@types/node": "20.11.0",
28
+ "@types/react": "18.2.47",
29
+ "@typescript-eslint/eslint-plugin": "6.18.1",
30
+ "@typescript-eslint/parser": "6.18.1",
31
31
  "@willbooster/prettier-config": "9.1.2",
32
- "eslint": "8.52.0",
33
- "eslint-config-next": "13.5.6",
34
- "eslint-config-prettier": "9.0.0",
32
+ "eslint": "8.56.0",
33
+ "eslint-config-next": "14.0.4",
34
+ "eslint-config-prettier": "9.1.0",
35
35
  "eslint-import-resolver-typescript": "3.6.1",
36
- "eslint-plugin-import": "2.29.0",
36
+ "eslint-plugin-import": "2.29.1",
37
37
  "eslint-plugin-react": "7.33.2",
38
38
  "eslint-plugin-react-hooks": "4.6.0",
39
39
  "eslint-plugin-sort-class-members": "1.19.0",
40
40
  "eslint-plugin-sort-destructure-keys": "1.5.0",
41
- "eslint-plugin-unicorn": "48.0.1",
42
- "lint-staged": "15.0.2",
41
+ "eslint-plugin-unicorn": "50.0.1",
42
+ "lint-staged": "15.2.0",
43
43
  "micromatch": "4.0.5",
44
- "prettier": "3.0.3",
44
+ "prettier": "3.2.0",
45
45
  "react": "18.2.0",
46
46
  "sort-package-json": "2.6.0",
47
- "typescript": "5.2.2",
47
+ "typescript": "5.3.3",
48
48
  "use-immer": "0.9.0"
49
49
  },
50
50
  "peerDependencies": {
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
- };