@wondermarin/eslint-config 1.0.3 → 2.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/package.json CHANGED
@@ -1,35 +1,65 @@
1
1
  {
2
2
  "name": "@wondermarin/eslint-config",
3
- "version": "1.0.3",
3
+ "version": "2.1.0",
4
4
  "description": "Personal ESLint config.",
5
- "author": "Wondermarin",
5
+ "homepage": "https://github.com/Wondermarin/eslint-config#readme",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/Wondermarin/eslint-config.git"
9
+ },
6
10
  "license": "MIT",
7
- "private": false,
8
- "homepage": "https://github.com/wondermarin/eslint-config",
9
- "repository": "github:wondermarin/eslint-config",
10
- "main": "configs/base.json",
11
+ "sideEffects": false,
12
+ "type": "module",
11
13
  "exports": {
12
14
  "./package.json": "./package.json",
13
- ".": "./configs/base.json",
14
- "./typescript": "./configs/typescript.json",
15
- "./react": "./configs/react.json"
15
+ ".": {
16
+ "import": {
17
+ "types": "./dist/main.d.ts",
18
+ "default": "./dist/main.js"
19
+ }
20
+ }
16
21
  },
17
- "sideEffects": false,
22
+ "main": "./dist/main.js",
23
+ "types": "./dist/main.d.ts",
18
24
  "files": [
19
- "configs"
25
+ "dist"
20
26
  ],
21
- "engines": {
22
- "node": ">=18"
27
+ "scripts": {
28
+ "build": "tsup"
29
+ },
30
+ "dependencies": {
31
+ "@stylistic/eslint-plugin": "^2.9.0",
32
+ "eslint-config-prettier": "^9.1.0",
33
+ "eslint-plugin-package-json": "^0.15.3",
34
+ "eslint-plugin-perfectionist": "^3.8.0",
35
+ "eslint-plugin-prettier": "^5.2.1",
36
+ "globals": "^15.11.0",
37
+ "jsonc-eslint-parser": "^2.4.0"
38
+ },
39
+ "devDependencies": {
40
+ "@eslint/compat": "^1.2.0",
41
+ "@types/eslint": "^9.6.1",
42
+ "@types/eslint-config-prettier": "^6.11.3",
43
+ "@types/node": "^22.7.5",
44
+ "@typescript-eslint/eslint-plugin": "^8.8.1",
45
+ "@typescript-eslint/parser": "^8.8.1",
46
+ "@wondermarin/prettier-config": "^1.0.0",
47
+ "defu": "^6.1.4",
48
+ "eslint": "^9.12.0",
49
+ "eslint-plugin-react": "^7.37.1",
50
+ "eslint-plugin-react-hooks": "^4.6.2",
51
+ "jiti": "^2.3.3",
52
+ "prettier": "^3.3.3",
53
+ "tsup": "^8.3.0",
54
+ "tsx": "^4.16.5",
55
+ "typescript": "^5.6.3"
23
56
  },
24
57
  "peerDependencies": {
25
- "@typescript-eslint/eslint-plugin": ">=6",
26
- "@typescript-eslint/parser": ">=6",
27
- "eslint": ">=8",
28
- "eslint-plugin-perfectionist": ">=2",
29
- "eslint-plugin-prettier": ">=5",
30
- "eslint-plugin-react": ">=7",
31
- "eslint-plugin-react-hooks": ">=4",
32
- "prettier": ">=3"
58
+ "@typescript-eslint/eslint-plugin": "^8.8",
59
+ "@typescript-eslint/parser": "^8.8",
60
+ "eslint": "^9.12",
61
+ "eslint-plugin-react": "^7.37",
62
+ "eslint-plugin-react-hooks": "^4.6"
33
63
  },
34
64
  "peerDependenciesMeta": {
35
65
  "@typescript-eslint/eslint-plugin": {
@@ -44,5 +74,8 @@
44
74
  "eslint-plugin-react-hooks": {
45
75
  "optional": true
46
76
  }
77
+ },
78
+ "engines": {
79
+ "node": ">=20"
47
80
  }
48
81
  }
package/configs/base.json DELETED
@@ -1,343 +0,0 @@
1
- {
2
- "parserOptions": {
3
- "ecmaVersion": 2023,
4
- "sourceType": "module"
5
- },
6
- "env": {
7
- "es2023": true
8
- },
9
- "plugins": [
10
- "prettier",
11
- "perfectionist"
12
- ],
13
- "rules": {
14
- "array-callback-return": "error",
15
- "constructor-super": "off",
16
- "for-direction": "error",
17
- "getter-return": "off",
18
- "no-async-promise-executor": "error",
19
- "no-await-in-loop": "off",
20
- "no-class-assign": "error",
21
- "no-compare-neg-zero": "error",
22
- "no-cond-assign": ["error", "always"],
23
- "no-const-assign": "off",
24
- "no-constant-binary-expression": "error",
25
- "no-constant-condition": "error",
26
- "no-constructor-return": "error",
27
- "no-control-regex": "error",
28
- "no-debugger": "error",
29
- "no-dupe-args": "off",
30
- "no-dupe-class-members": "off",
31
- "no-dupe-else-if": "error",
32
- "no-dupe-keys": "off",
33
- "no-duplicate-case": "error",
34
- "no-duplicate-imports": "error",
35
- "no-empty-character-class": "error",
36
- "no-empty-pattern": "error",
37
- "no-ex-assign": "error",
38
- "no-fallthrough": "error",
39
- "no-func-assign": "off",
40
- "no-import-assign": "off",
41
- "no-inner-declarations": "error",
42
- "no-invalid-regexp": "error",
43
- "no-irregular-whitespace": "error",
44
- "no-loss-of-precision": "off",
45
- "no-misleading-character-class": "error",
46
- "no-new-native-nonconstructor": "error",
47
- "no-new-symbol": "off",
48
- "no-obj-calls": "off",
49
- "no-promise-executor-return": "error",
50
- "no-prototype-builtins": "error",
51
- "no-self-assign": "error",
52
- "no-self-compare": "error",
53
- "no-setter-return": "off",
54
- "no-sparse-arrays": "error",
55
- "no-template-curly-in-string": "error",
56
- "no-this-before-super": "off",
57
- "no-undef": "off",
58
- "no-unexpected-multiline": "off",
59
- "no-unmodified-loop-condition": "error",
60
- "no-unreachable": "off",
61
- "no-unreachable-loop": "error",
62
- "no-unsafe-finally": "error",
63
- "no-unsafe-negation": "off",
64
- "no-unsafe-optional-chaining": "error",
65
- "no-unused-private-class-members": "error",
66
- "no-unused-vars": "off",
67
- "no-use-before-define": "off",
68
- "no-useless-backreference": "error",
69
- "require-atomic-updates": "error",
70
- "use-isnan": "error",
71
- "valid-typeof": "off",
72
- "accessor-pairs": "off",
73
- "arrow-body-style": "off",
74
- "block-scoped-var": "error",
75
- "camelcase": "off",
76
- "capitalized-comments": "error",
77
- "class-methods-use-this": "off",
78
- "complexity": "off",
79
- "consistent-return": "off",
80
- "consistent-this": "off",
81
- "curly": "off",
82
- "default-case": "off",
83
- "default-case-last": "error",
84
- "default-param-last": "off",
85
- "dot-notation": "off",
86
- "eqeqeq": ["error", "smart"],
87
- "func-name-matching": "off",
88
- "func-names": ["error", "as-needed"],
89
- "grouped-accessor-pairs": ["error", "getBeforeSet"],
90
- "guard-for-in": "off",
91
- "id-denylist": "off",
92
- "id-length": "off",
93
- "id-match": "off",
94
- "init-declarations": "off",
95
- "logical-assignment-operators": ["error", "always"],
96
- "max-classes-per-file": "off",
97
- "max-depth": "off",
98
- "max-lines": "off",
99
- "max-lines-per-function": "off",
100
- "max-nested-callbacks": "off",
101
- "max-params": "off",
102
- "max-statements": "off",
103
- "multiline-comment-style": "error",
104
- "new-cap": ["error", { "capIsNew": false }],
105
- "no-alert": "error",
106
- "no-array-constructor": "off",
107
- "no-bitwise": "off",
108
- "no-caller": "error",
109
- "no-case-declarations": "error",
110
- "no-confusing-arrow": "off",
111
- "no-console": "off",
112
- "no-continue": "off",
113
- "no-delete-var": "error",
114
- "no-div-regex": "error",
115
- "no-else-return": "error",
116
- "no-empty": ["error", { "allowEmptyCatch": true }],
117
- "no-empty-function": "off",
118
- "no-empty-static-block": "error",
119
- "no-eq-null": "off",
120
- "no-eval": "error",
121
- "no-extend-native": "error",
122
- "no-extra-bind": "error",
123
- "no-extra-boolean-cast": "error",
124
- "no-extra-label": "error",
125
- "no-extra-semi": "off",
126
- "no-floating-decimal": "off",
127
- "no-global-assign": "error",
128
- "no-implicit-coercion": "off",
129
- "no-implicit-globals": "off",
130
- "no-implied-eval": "off",
131
- "no-inline-comments": "error",
132
- "no-invalid-this": "off",
133
- "no-iterator": "error",
134
- "no-label-var": "error",
135
- "no-labels": ["error", { "allowLoop": true }],
136
- "no-lone-blocks": "error",
137
- "no-lonely-if": "off",
138
- "no-loop-func": "off",
139
- "no-magic-numbers": "off",
140
- "no-mixed-operators": "off",
141
- "no-multi-assign": "error",
142
- "no-multi-str": "error",
143
- "no-negated-condition": "error",
144
- "no-nested-ternary": "error",
145
- "no-new": "error",
146
- "no-new-func": "error",
147
- "no-new-object": "error",
148
- "no-new-wrappers": "error",
149
- "no-nonoctal-decimal-escape": "error",
150
- "no-octal": "error",
151
- "no-octal-escape": "error",
152
- "no-param-reassign": "off",
153
- "no-plusplus": "off",
154
- "no-proto": "error",
155
- "no-redeclare": "off",
156
- "no-regex-spaces": "error",
157
- "no-restricted-exports": "off",
158
- "no-restricted-globals": "off",
159
- "no-restricted-imports": "off",
160
- "no-restricted-properties": "off",
161
- "no-restricted-syntax": "off",
162
- "no-return-assign": "error",
163
- "no-return-await": "off",
164
- "no-script-url": "error",
165
- "no-sequences": "error",
166
- "no-shadow": "off",
167
- "no-shadow-restricted-names": "error",
168
- "no-ternary": "off",
169
- "no-throw-literal": "off",
170
- "no-undef-init": "off",
171
- "no-undefined": "off",
172
- "no-underscore-dangle": "off",
173
- "no-unneeded-ternary": "error",
174
- "no-unused-expressions": "off",
175
- "no-unused-labels": "error",
176
- "no-useless-call": "error",
177
- "no-useless-catch": "off",
178
- "no-useless-computed-key": "error",
179
- "no-useless-concat": "error",
180
- "no-useless-constructor": "off",
181
- "no-useless-escape": "error",
182
- "no-useless-rename": "error",
183
- "no-useless-return": "off",
184
- "no-var": "off",
185
- "no-void": "error",
186
- "no-warning-comments": "off",
187
- "no-with": "error",
188
- "object-shorthand": "off",
189
- "one-var": "off",
190
- "one-var-declaration-per-line": "off",
191
- "operator-assignment": "error",
192
- "prefer-arrow-callback": "off",
193
- "prefer-const": "off",
194
- "prefer-destructuring": "error",
195
- "prefer-exponentiation-operator": "error",
196
- "prefer-named-capture-group": "error",
197
- "prefer-numeric-literals": "error",
198
- "prefer-object-has-own": "error",
199
- "prefer-object-spread": "error",
200
- "prefer-promise-reject-errors": "off",
201
- "prefer-regex-literals": "error",
202
- "prefer-rest-params": "off",
203
- "prefer-spread": "off",
204
- "prefer-template": "error",
205
- "quote-props": "off",
206
- "radix": "error",
207
- "require-await": "off",
208
- "require-unicode-regexp": "error",
209
- "require-yield": "error",
210
- "sort-imports": "off",
211
- "sort-keys": "off",
212
- "sort-vars": "off",
213
- "spaced-comment": "off",
214
- "strict": "off",
215
- "symbol-description": "error",
216
- "vars-on-top": "off",
217
- "yoda": "error",
218
- "array-bracket-newline": "off",
219
- "array-bracket-spacing": "off",
220
- "array-element-newline": "off",
221
- "arrow-parens": "off",
222
- "arrow-spacing": "off",
223
- "block-spacing": "off",
224
- "brace-style": "off",
225
- "comma-dangle": "off",
226
- "comma-spacing": "off",
227
- "comma-style": "off",
228
- "computed-property-spacing": "off",
229
- "dot-location": "off",
230
- "eol-last": "off",
231
- "func-call-spacing": "off",
232
- "function-call-argument-newline": "off",
233
- "function-paren-newline": "off",
234
- "generator-star-spacing": "off",
235
- "implicit-arrow-linebreak": "off",
236
- "indent": "off",
237
- "jsx-quotes": "off",
238
- "key-spacing": "off",
239
- "keyword-spacing": "off",
240
- "line-comment-position": "error",
241
- "linebreak-style": "off",
242
- "lines-around-comment": "off",
243
- "lines-between-class-members": ["error", "always", { "exceptAfterSingleLine": true }],
244
- "max-len": "off",
245
- "max-statements-per-line": "off",
246
- "multiline-ternary": "off",
247
- "new-parens": "off",
248
- "newline-per-chained-call": "off",
249
- "no-extra-parens": "off",
250
- "no-mixed-spaces-and-tabs": "off",
251
- "no-multi-spaces": "off",
252
- "no-multiple-empty-lines": "off",
253
- "no-tabs": "off",
254
- "no-trailing-spaces": "off",
255
- "no-whitespace-before-property": "off",
256
- "nonblock-statement-body-position": "off",
257
- "object-curly-newline": "off",
258
- "object-curly-spacing": "off",
259
- "object-property-newline": "off",
260
- "operator-linebreak": "off",
261
- "padded-blocks": "off",
262
- "padding-line-between-statements": [
263
- "error",
264
- { "blankLine": "always", "prev": "*", "next": "return" },
265
- { "blankLine": "always", "prev": "*", "next": ["const", "let"] },
266
- { "blankLine": "always", "prev": ["const", "let"], "next": "*" },
267
- { "blankLine": "any", "prev": ["const", "let"], "next" : ["const", "let"] },
268
- { "blankLine": "always", "prev": "*", "next": "break" },
269
- { "blankLine": "always", "prev": "*", "next": "for" },
270
- { "blankLine": "always", "prev": "for", "next": "*" },
271
- { "blankLine": "always", "prev": "*", "next": "while" },
272
- { "blankLine": "always", "prev": "while", "next": "*" }
273
- ],
274
- "quotes": "off",
275
- "rest-spread-spacing": "off",
276
- "semi": "off",
277
- "semi-spacing": "off",
278
- "semi-style": "off",
279
- "space-before-blocks": "off",
280
- "space-before-function-paren": "off",
281
- "space-in-parens": "off",
282
- "space-infix-ops": "off",
283
- "space-unary-ops": "off",
284
- "switch-colon-spacing": "off",
285
- "template-curly-spacing": "off",
286
- "template-tag-spacing": "off",
287
- "unicode-bom": "off",
288
- "wrap-iife": "off",
289
- "wrap-regex": "off",
290
- "yield-star-spacing": "off",
291
- "prettier/prettier": "error",
292
- "perfectionist/sort-array-includes": "off",
293
- "perfectionist/sort-astro-attributes": "off",
294
- "perfectionist/sort-classes": "off",
295
- "perfectionist/sort-enums": "off",
296
- "perfectionist/sort-exports": [
297
- "error",
298
- {
299
- "type": "line-length",
300
- "order": "desc"
301
- }
302
- ],
303
- "perfectionist/sort-imports": [
304
- "error",
305
- {
306
- "type": "line-length",
307
- "order": "desc",
308
- "internal-pattern": ["@/**"],
309
- "groups": [
310
- "builtin",
311
- "external",
312
- "internal",
313
- "parent",
314
- "sibling",
315
- "index",
316
- "side-effect"
317
- ]
318
- }
319
- ],
320
- "perfectionist/sort-interfaces": "off",
321
- "perfectionist/sort-jsx-props": "off",
322
- "perfectionist/sort-maps": "off",
323
- "perfectionist/sort-named-exports": [
324
- "error",
325
- {
326
- "type": "line-length",
327
- "order": "desc"
328
- }
329
- ],
330
- "perfectionist/sort-named-imports": [
331
- "error",
332
- {
333
- "type": "line-length",
334
- "order": "desc"
335
- }
336
- ],
337
- "perfectionist/sort-object-types": "off",
338
- "perfectionist/sort-objects": "off",
339
- "perfectionist/sort-svelte-attributes": "off",
340
- "perfectionist/sort-union-types": "off",
341
- "perfectionist/sort-vue-attributes": "off"
342
- }
343
- }
@@ -1,118 +0,0 @@
1
- {
2
- "parserOptions": {
3
- "ecmaFeatures": {
4
- "jsx": true
5
- }
6
- },
7
- "settings": {
8
- "react": {
9
- "version": "detect"
10
- }
11
- },
12
- "plugins": [
13
- "react",
14
- "react-hooks"
15
- ],
16
- "rules": {
17
- "react/boolean-prop-naming": "off",
18
- "react/button-has-type": "error",
19
- "react/default-props-match-prop-types": "off",
20
- "react/destructuring-assignment": ["error", "always"],
21
- "react/display-name": "off",
22
- "react/forbid-component-props": "off",
23
- "react/forbid-dom-props": "off",
24
- "react/forbid-elements": "off",
25
- "react/forbid-foreign-prop-types": "off",
26
- "react/forbid-prop-types": "off",
27
- "react/function-component-definition": ["error", { "namedComponents": "function-declaration", "unnamedComponents": "arrow-function" }],
28
- "react/hook-use-state": "error",
29
- "react/iframe-missing-sandbox": "off",
30
- "react/jsx-boolean-value": ["error", "never"],
31
- "react/jsx-child-element-spacing": "off",
32
- "react/jsx-closing-bracket-location": "off",
33
- "react/jsx-closing-tag-location": "off",
34
- "react/jsx-curly-brace-presence": "off",
35
- "react/jsx-curly-newline": "off",
36
- "react/jsx-curly-spacing": "off",
37
- "react/jsx-equals-spacing": "off",
38
- "react/jsx-filename-extension": "off",
39
- "react/jsx-first-prop-new-line": "off",
40
- "react/jsx-fragments": ["error", "element"],
41
- "react/jsx-handler-names": "error",
42
- "react/jsx-indent": "off",
43
- "react/jsx-indent-props": "off",
44
- "react/jsx-key": "error",
45
- "react/jsx-max-depth": "off",
46
- "react/jsx-max-props-per-line": "off",
47
- "react/jsx-newline": "off",
48
- "react/jsx-no-bind": "error",
49
- "react/jsx-no-comment-textnodes": "error",
50
- "react/jsx-no-constructed-context-values": "error",
51
- "react/jsx-no-duplicate-props": "error",
52
- "react/jsx-no-leaked-render": "error",
53
- "react/jsx-no-literals": "off",
54
- "react/jsx-no-script-url": "error",
55
- "react/jsx-no-target-blank": ["error", { "allowReferrer": true, "enforceDynamicLinks": "always", "links": false }],
56
- "react/jsx-no-undef": "error",
57
- "react/jsx-no-useless-fragment": "off",
58
- "react/jsx-one-expression-per-line": "off",
59
- "react/jsx-pascal-case": "error",
60
- "react/jsx-props-no-multi-spaces": "off",
61
- "react/jsx-props-no-spreading": "off",
62
- "react/jsx-sort-props": "off",
63
- "react/jsx-tag-spacing": "off",
64
- "react/jsx-uses-react": "off",
65
- "react/jsx-uses-vars": "error",
66
- "react/jsx-wrap-multilines": "off",
67
- "react/no-access-state-in-setstate": "error",
68
- "react/no-adjacent-inline-elements": "off",
69
- "react/no-array-index-key": "off",
70
- "react/no-arrow-function-lifecycle": "error",
71
- "react/no-children-prop": "error",
72
- "react/no-danger": "off",
73
- "react/no-danger-with-children": "error",
74
- "react/no-deprecated": "error",
75
- "react/no-did-mount-set-state": "error",
76
- "react/no-did-update-set-state": "error",
77
- "react/no-direct-mutation-state": "error",
78
- "react/no-find-dom-node": "error",
79
- "react/no-invalid-html-attribute": "error",
80
- "react/no-is-mounted": "error",
81
- "react/no-multi-comp": "error",
82
- "react/no-namespace": "error",
83
- "react/no-object-type-as-default-prop": "off",
84
- "react/no-redundant-should-component-update": "error",
85
- "react/no-render-return-value": "error",
86
- "react/no-set-state": "off",
87
- "react/no-string-refs": "error",
88
- "react/no-this-in-sfc": "error",
89
- "react/no-typos": "error",
90
- "react/no-unescaped-entities": "error",
91
- "react/no-unknown-property": "error",
92
- "react/no-unsafe": "off",
93
- "react/no-unstable-nested-components": "error",
94
- "react/no-unused-class-component-methods": "off",
95
- "react/no-unused-prop-types": "off",
96
- "react/no-unused-state": "off",
97
- "react/no-will-update-set-state": "error",
98
- "react/prefer-es6-class": "error",
99
- "react/prefer-exact-props": "off",
100
- "react/prefer-read-only-props": "off",
101
- "react/prefer-stateless-function": "off",
102
- "react/prop-types": "off",
103
- "react/react-in-jsx-scope": "off",
104
- "react/require-default-props": "off",
105
- "react/require-optimization": "off",
106
- "react/require-render-return": "error",
107
- "react/self-closing-comp": "error",
108
- "react/sort-comp": "off",
109
- "react/sort-default-props": "off",
110
- "react/sort-prop-types": "off",
111
- "react/state-in-constructor": "error",
112
- "react/static-property-placement": "off",
113
- "react/style-prop-object": "error",
114
- "react/void-dom-elements-no-children": "error",
115
- "react-hooks/rules-of-hooks": "error",
116
- "react-hooks/exhaustive-deps": "warn"
117
- }
118
- }