eslint-config-greenpie 16.3.0 → 16.5.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/.oxlintrc.jsonc CHANGED
@@ -40,6 +40,13 @@
40
40
  "import/no-relative-parent-imports": "off"
41
41
  }
42
42
  },
43
+ {
44
+ "files": ["tests/oxlint/**/*.ts"],
45
+
46
+ "rules": {
47
+ "unicorn/max-nested-calls": "off"
48
+ }
49
+ },
43
50
  {
44
51
  "files": ["tests/oxlint/helper.ts"],
45
52
 
@@ -191,6 +191,7 @@
191
191
  // Vue
192
192
 
193
193
  "vue/no-arrow-functions-in-watch": "error",
194
+ "vue/no-async-in-computed-properties": "error",
194
195
  "vue/no-computed-properties-in-data": "error",
195
196
  "vue/no-deprecated-data-object-declaration": "error",
196
197
  "vue/no-deprecated-delete-set": "error",
@@ -199,6 +200,7 @@
199
200
  "vue/no-deprecated-model-definition": "error",
200
201
  "vue/no-deprecated-props-default-this": "error",
201
202
  "vue/no-deprecated-vue-config-keycodes": "error",
203
+ "vue/no-dupe-keys": "error",
202
204
  "vue/no-expose-after-await": "error",
203
205
  "vue/no-export-in-script-setup": "error",
204
206
  "vue/no-lifecycle-after-await": "error",
@@ -206,6 +208,7 @@
206
208
  "vue/no-reserved-keys": "error",
207
209
  "vue/no-reserved-props": "error",
208
210
  "vue/no-shared-component-data": "error",
211
+ "vue/no-side-effects-in-computed-properties": "error",
209
212
  "vue/no-this-in-before-route-enter": "error",
210
213
  "vue/no-watch-after-await": "error",
211
214
  "vue/prefer-import-from-vue": "error",
@@ -428,6 +431,7 @@
428
431
 
429
432
  "unicorn/consistent-function-scoping": "error",
430
433
  "unicorn/no-accessor-recursion": "error",
434
+ "unicorn/no-array-fill-with-reference-type": "error",
431
435
  "unicorn/no-array-reverse": "error",
432
436
  "unicorn/no-array-sort": "error",
433
437
  "unicorn/no-instanceof-builtins": "error",
@@ -577,9 +581,11 @@
577
581
  "unicorn/prefer-math-min-max": "error",
578
582
  "unicorn/prefer-math-trunc": "error",
579
583
  "unicorn/prefer-native-coercion-functions": "error",
584
+ "unicorn/prefer-number-coercion": "error",
580
585
  "unicorn/prefer-prototype-methods": "error",
581
586
  "unicorn/prefer-query-selector": "error",
582
587
  "unicorn/prefer-regexp-test": "error",
588
+ "unicorn/prefer-single-call": "error",
583
589
  "unicorn/prefer-string-replace-all": "error",
584
590
  "unicorn/prefer-string-slice": "error",
585
591
  "unicorn/prefer-top-level-await": "error",
@@ -744,6 +750,10 @@
744
750
  "unicorn/empty-brace-spaces": "error",
745
751
  "unicorn/error-message": "error",
746
752
  "unicorn/filename-case": "error",
753
+ "unicorn/max-nested-calls": ["error", {
754
+ "max": 1
755
+ }],
756
+
747
757
  "unicorn/no-array-method-this-argument": "error",
748
758
  "unicorn/no-await-expression-member": "error",
749
759
  "unicorn/no-console-spaces": "error",
@@ -760,6 +770,7 @@
760
770
  "unicorn/prefer-classlist-toggle": "error",
761
771
  "unicorn/prefer-default-parameters": "error",
762
772
  "unicorn/prefer-dom-node-text-content": "error",
773
+ "unicorn/prefer-export-from": "error",
763
774
  "unicorn/prefer-global-this": "error",
764
775
  "unicorn/import-style": "off", // Needs a project-specific import style policy first
765
776
  "unicorn/prefer-includes": "error",
@@ -791,6 +802,12 @@
791
802
  "vue/define-props-destructuring": "off", // It requires destructuring, even when not needed
792
803
  "vue/next-tick-style": "error",
793
804
  "vue/prop-name-casing": "error",
805
+
806
+ // Still reports props typed as `T | undefined` without defaults:
807
+ // https://github.com/vuejs/eslint-plugin-vue/issues/2475
808
+ // Adding `= undefined` to satisfy it conflicts with unicorn/no-useless-undefined.
809
+ "vue/require-default-prop": "off",
810
+
794
811
  "vue/require-direct-export": "error",
795
812
  "vue/require-prop-types": "error",
796
813
  "vue/require-typed-ref": "error",
@@ -91,6 +91,7 @@ export default defineConfig({
91
91
  '@typescript-eslint/no-unnecessary-template-expression': 'off',
92
92
  '@typescript-eslint/no-unnecessary-type-arguments': 'off',
93
93
  '@typescript-eslint/no-unnecessary-type-assertion': 'off',
94
+ '@typescript-eslint/no-unnecessary-type-constraint': 'off',
94
95
  '@typescript-eslint/no-unnecessary-type-conversion': 'off',
95
96
  '@typescript-eslint/no-unnecessary-type-parameters': 'off',
96
97
  '@typescript-eslint/no-unsafe-argument': 'off',
@@ -199,7 +200,6 @@ export default defineConfig({
199
200
 
200
201
  '@typescript-eslint/no-confusing-non-null-assertion': 'error',
201
202
  '@typescript-eslint/no-extraneous-class': 'error',
202
- '@typescript-eslint/no-unnecessary-type-constraint': 'error',
203
203
  '@typescript-eslint/typedef': 'error',
204
204
 
205
205
  /*
package/configs/vue.js CHANGED
@@ -28,6 +28,7 @@ export default defineConfig(
28
28
  'vue/max-props': 'off',
29
29
  'vue/next-tick-style': 'off',
30
30
  'vue/no-arrow-functions-in-watch': 'off',
31
+ 'vue/no-async-in-computed-properties': 'off',
31
32
  'vue/no-computed-properties-in-data': 'off',
32
33
  'vue/no-deprecated-data-object-declaration': 'off',
33
34
  'vue/no-deprecated-delete-set': 'off',
@@ -36,6 +37,7 @@ export default defineConfig(
36
37
  'vue/no-deprecated-model-definition': 'off',
37
38
  'vue/no-deprecated-props-default-this': 'off',
38
39
  'vue/no-deprecated-vue-config-keycodes': 'off',
40
+ 'vue/no-dupe-keys': 'off',
39
41
  'vue/no-expose-after-await': 'off',
40
42
  'vue/no-export-in-script-setup': 'off',
41
43
  'vue/no-import-compiler-macros': 'off',
@@ -46,11 +48,22 @@ export default defineConfig(
46
48
  'vue/no-reserved-props': 'off',
47
49
  'vue/no-required-prop-with-default': 'off',
48
50
  'vue/no-shared-component-data': 'off',
51
+ 'vue/no-side-effects-in-computed-properties': 'off',
49
52
  'vue/no-this-in-before-route-enter': 'off',
50
53
  'vue/no-watch-after-await': 'off',
51
54
  'vue/prefer-import-from-vue': 'off',
52
55
  'vue/prop-name-casing': 'off',
53
56
  'vue/require-default-export': 'off',
57
+
58
+ /*
59
+ * Kept disabled in oxlint because it still reports props typed
60
+ * as `T | undefined` without defaults:
61
+ * https://github.com/vuejs/eslint-plugin-vue/issues/2475
62
+ *
63
+ * Adding `= undefined` to satisfy it conflicts with unicorn/no-useless-undefined.
64
+ */
65
+ 'vue/require-default-prop': 'off',
66
+
54
67
  'vue/require-direct-export': 'off',
55
68
  'vue/require-prop-type-constructor': 'off',
56
69
  'vue/require-prop-types': 'off',
@@ -78,15 +91,12 @@ export default defineConfig(
78
91
  */
79
92
 
80
93
  'vue/multi-word-component-names': 'error',
81
- 'vue/no-async-in-computed-properties': 'error',
82
94
  'vue/no-child-content': 'error',
83
- 'vue/no-dupe-keys': 'error',
84
95
  'vue/no-dupe-v-else-if': 'error',
85
96
  'vue/no-duplicate-attributes': 'error',
86
97
  'vue/no-mutating-props': 'error',
87
98
  'vue/no-parsing-error': 'error',
88
99
  'vue/no-ref-as-operand': 'error',
89
- 'vue/no-side-effects-in-computed-properties': 'error',
90
100
  'vue/no-template-key': 'error',
91
101
  'vue/no-textarea-mustache': 'error',
92
102
  'vue/no-unused-components': 'error',
@@ -163,15 +173,6 @@ export default defineConfig(
163
173
  'vue/no-template-shadow': 'error',
164
174
  'vue/one-component-per-file': 'error',
165
175
 
166
- /**
167
- * Conflicts with
168
- * - `unicorn/no-useless-undefined`
169
- * - `@typescript-eslint/no-useless-default-assignment`
170
- *
171
- * {@link https://github.com/vuejs/eslint-plugin-vue/issues/2475}
172
- */
173
- 'vue/require-default-prop': 'off',
174
-
175
176
  'vue/singleline-html-element-content-newline': 'error',
176
177
 
177
178
  'vue/v-bind-style': ['error', 'shorthand', {
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "eslint-config-greenpie",
3
- "version": "16.3.0",
3
+ "version": "16.5.0",
4
4
  "description": "GreenPie's ESLint and oxlint configs",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
7
7
  "author": "Roman Nuritdinov (Ky6uk)",
8
8
  "license": "MIT",
9
9
  "type": "module",
10
- "packageManager": "npm@11.16.0",
10
+ "packageManager": "npm@11.17.0",
11
11
  "homepage": "https://github.com/GreenPie/eslint-config-greenpie",
12
12
  "repository": {
13
13
  "type": "git",
@@ -37,21 +37,21 @@
37
37
  "oxlint"
38
38
  ],
39
39
  "devDependencies": {
40
- "@types/node": "^25.9.2",
40
+ "@types/node": "^25.9.4",
41
41
  "execa": "^9.6.1",
42
42
  "husky": "^9.1.7",
43
- "oxlint": "^1.69.0",
43
+ "oxlint": "^1.71.0",
44
44
  "taze": "^19.14.1",
45
45
  "valibot": "1.4.1",
46
- "vitest": "^4.1.8",
47
- "vue": "^3.5.35"
46
+ "vitest": "^4.1.9",
47
+ "vue": "^3.5.39"
48
48
  },
49
49
  "peerDependencies": {
50
50
  "@stylistic/eslint-plugin": "^5.10.0",
51
- "eslint": "^10.4.1",
51
+ "eslint": "^10.5.0",
52
52
  "eslint-plugin-vue": "^10.9.2",
53
- "oxlint": "^1.69.0",
53
+ "oxlint": "^1.71.0",
54
54
  "oxlint-tsgolint": "^0.23.0",
55
- "typescript-eslint": "^8.61.0"
55
+ "typescript-eslint": "^8.62.0"
56
56
  }
57
57
  }