@lqbach/eslint-config 0.6.1 → 0.8.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/CHANGELOG.md +33 -0
- package/README.md +19 -0
- package/dist/index.cjs +78 -305
- package/dist/index.d.cts +26 -11
- package/dist/index.d.ts +26 -11
- package/dist/index.js +111 -361
- package/package.json +12 -9
- package/src/index.ts +98 -9
- package/src/libs.ts +3 -3
- package/src/types.ts +30 -11
- package/test/astro.spec.ts +120 -0
- package/test/ignore.spec.ts +39 -0
- package/test/next.spec.ts +56 -0
- package/test/utils.ts +16 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,15 +1,31 @@
|
|
|
1
|
+
interface AstroConfigParams {
|
|
2
|
+
typescript?: boolean;
|
|
3
|
+
}
|
|
4
|
+
interface ConfigObject {
|
|
5
|
+
files?: Array<string>;
|
|
6
|
+
ignores?: Array<string>;
|
|
7
|
+
languageOptions?: LanguageOptions;
|
|
8
|
+
linterOptions?: LinterOptions;
|
|
9
|
+
name?: string;
|
|
10
|
+
plugins?: object;
|
|
11
|
+
processor?: object;
|
|
12
|
+
rules?: object;
|
|
13
|
+
settings?: any;
|
|
14
|
+
}
|
|
1
15
|
interface ConfigParams {
|
|
16
|
+
astro?: AstroConfigParams | boolean;
|
|
2
17
|
ignores?: Array<string>;
|
|
3
18
|
json?: boolean;
|
|
4
19
|
markdown?: boolean;
|
|
20
|
+
next?: boolean | NextJSConfigParams;
|
|
5
21
|
perfectionist?: boolean;
|
|
6
|
-
react?: boolean;
|
|
22
|
+
react?: boolean | ReactJSConfigParams;
|
|
7
23
|
typescript?: boolean;
|
|
8
24
|
vue?: boolean;
|
|
9
25
|
yaml?: boolean;
|
|
10
26
|
}
|
|
11
27
|
interface LanguageOptions {
|
|
12
|
-
ecmaVersion?: string;
|
|
28
|
+
ecmaVersion?: number | string;
|
|
13
29
|
globals?: object;
|
|
14
30
|
parser?: object;
|
|
15
31
|
parserOptions?: object;
|
|
@@ -19,15 +35,14 @@ interface LinterOptions {
|
|
|
19
35
|
noInlineConfig?: boolean;
|
|
20
36
|
reportUnusedDisableDirectives?: boolean;
|
|
21
37
|
}
|
|
22
|
-
interface
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
settings?: object;
|
|
38
|
+
interface NextJSConfigParams {
|
|
39
|
+
rootDir?: string;
|
|
40
|
+
}
|
|
41
|
+
interface ReactJSConfigParams {
|
|
42
|
+
/**
|
|
43
|
+
* use react hooks
|
|
44
|
+
*/
|
|
45
|
+
hooks?: boolean;
|
|
31
46
|
}
|
|
32
47
|
|
|
33
48
|
declare function config(params?: ConfigParams): Array<ConfigObject>;
|
package/dist/index.js
CHANGED
|
@@ -1,339 +1,23 @@
|
|
|
1
|
-
var __create = Object.create;
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __commonJS = (cb, mod) => function __require() {
|
|
8
|
-
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
19
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
20
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
21
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
22
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
23
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
24
|
-
mod
|
|
25
|
-
));
|
|
26
|
-
|
|
27
|
-
// ../../node_modules/.pnpm/@eslint+js@9.11.1/node_modules/@eslint/js/src/configs/eslint-all.js
|
|
28
|
-
var require_eslint_all = __commonJS({
|
|
29
|
-
"../../node_modules/.pnpm/@eslint+js@9.11.1/node_modules/@eslint/js/src/configs/eslint-all.js"(exports, module) {
|
|
30
|
-
"use strict";
|
|
31
|
-
module.exports = Object.freeze({
|
|
32
|
-
"rules": {
|
|
33
|
-
"accessor-pairs": "error",
|
|
34
|
-
"array-callback-return": "error",
|
|
35
|
-
"arrow-body-style": "error",
|
|
36
|
-
"block-scoped-var": "error",
|
|
37
|
-
"camelcase": "error",
|
|
38
|
-
"capitalized-comments": "error",
|
|
39
|
-
"class-methods-use-this": "error",
|
|
40
|
-
"complexity": "error",
|
|
41
|
-
"consistent-return": "error",
|
|
42
|
-
"consistent-this": "error",
|
|
43
|
-
"constructor-super": "error",
|
|
44
|
-
"curly": "error",
|
|
45
|
-
"default-case": "error",
|
|
46
|
-
"default-case-last": "error",
|
|
47
|
-
"default-param-last": "error",
|
|
48
|
-
"dot-notation": "error",
|
|
49
|
-
"eqeqeq": "error",
|
|
50
|
-
"for-direction": "error",
|
|
51
|
-
"func-name-matching": "error",
|
|
52
|
-
"func-names": "error",
|
|
53
|
-
"func-style": "error",
|
|
54
|
-
"getter-return": "error",
|
|
55
|
-
"grouped-accessor-pairs": "error",
|
|
56
|
-
"guard-for-in": "error",
|
|
57
|
-
"id-denylist": "error",
|
|
58
|
-
"id-length": "error",
|
|
59
|
-
"id-match": "error",
|
|
60
|
-
"init-declarations": "error",
|
|
61
|
-
"logical-assignment-operators": "error",
|
|
62
|
-
"max-classes-per-file": "error",
|
|
63
|
-
"max-depth": "error",
|
|
64
|
-
"max-lines": "error",
|
|
65
|
-
"max-lines-per-function": "error",
|
|
66
|
-
"max-nested-callbacks": "error",
|
|
67
|
-
"max-params": "error",
|
|
68
|
-
"max-statements": "error",
|
|
69
|
-
"new-cap": "error",
|
|
70
|
-
"no-alert": "error",
|
|
71
|
-
"no-array-constructor": "error",
|
|
72
|
-
"no-async-promise-executor": "error",
|
|
73
|
-
"no-await-in-loop": "error",
|
|
74
|
-
"no-bitwise": "error",
|
|
75
|
-
"no-caller": "error",
|
|
76
|
-
"no-case-declarations": "error",
|
|
77
|
-
"no-class-assign": "error",
|
|
78
|
-
"no-compare-neg-zero": "error",
|
|
79
|
-
"no-cond-assign": "error",
|
|
80
|
-
"no-console": "error",
|
|
81
|
-
"no-const-assign": "error",
|
|
82
|
-
"no-constant-binary-expression": "error",
|
|
83
|
-
"no-constant-condition": "error",
|
|
84
|
-
"no-constructor-return": "error",
|
|
85
|
-
"no-continue": "error",
|
|
86
|
-
"no-control-regex": "error",
|
|
87
|
-
"no-debugger": "error",
|
|
88
|
-
"no-delete-var": "error",
|
|
89
|
-
"no-div-regex": "error",
|
|
90
|
-
"no-dupe-args": "error",
|
|
91
|
-
"no-dupe-class-members": "error",
|
|
92
|
-
"no-dupe-else-if": "error",
|
|
93
|
-
"no-dupe-keys": "error",
|
|
94
|
-
"no-duplicate-case": "error",
|
|
95
|
-
"no-duplicate-imports": "error",
|
|
96
|
-
"no-else-return": "error",
|
|
97
|
-
"no-empty": "error",
|
|
98
|
-
"no-empty-character-class": "error",
|
|
99
|
-
"no-empty-function": "error",
|
|
100
|
-
"no-empty-pattern": "error",
|
|
101
|
-
"no-empty-static-block": "error",
|
|
102
|
-
"no-eq-null": "error",
|
|
103
|
-
"no-eval": "error",
|
|
104
|
-
"no-ex-assign": "error",
|
|
105
|
-
"no-extend-native": "error",
|
|
106
|
-
"no-extra-bind": "error",
|
|
107
|
-
"no-extra-boolean-cast": "error",
|
|
108
|
-
"no-extra-label": "error",
|
|
109
|
-
"no-fallthrough": "error",
|
|
110
|
-
"no-func-assign": "error",
|
|
111
|
-
"no-global-assign": "error",
|
|
112
|
-
"no-implicit-coercion": "error",
|
|
113
|
-
"no-implicit-globals": "error",
|
|
114
|
-
"no-implied-eval": "error",
|
|
115
|
-
"no-import-assign": "error",
|
|
116
|
-
"no-inline-comments": "error",
|
|
117
|
-
"no-inner-declarations": "error",
|
|
118
|
-
"no-invalid-regexp": "error",
|
|
119
|
-
"no-invalid-this": "error",
|
|
120
|
-
"no-irregular-whitespace": "error",
|
|
121
|
-
"no-iterator": "error",
|
|
122
|
-
"no-label-var": "error",
|
|
123
|
-
"no-labels": "error",
|
|
124
|
-
"no-lone-blocks": "error",
|
|
125
|
-
"no-lonely-if": "error",
|
|
126
|
-
"no-loop-func": "error",
|
|
127
|
-
"no-loss-of-precision": "error",
|
|
128
|
-
"no-magic-numbers": "error",
|
|
129
|
-
"no-misleading-character-class": "error",
|
|
130
|
-
"no-multi-assign": "error",
|
|
131
|
-
"no-multi-str": "error",
|
|
132
|
-
"no-negated-condition": "error",
|
|
133
|
-
"no-nested-ternary": "error",
|
|
134
|
-
"no-new": "error",
|
|
135
|
-
"no-new-func": "error",
|
|
136
|
-
"no-new-native-nonconstructor": "error",
|
|
137
|
-
"no-new-wrappers": "error",
|
|
138
|
-
"no-nonoctal-decimal-escape": "error",
|
|
139
|
-
"no-obj-calls": "error",
|
|
140
|
-
"no-object-constructor": "error",
|
|
141
|
-
"no-octal": "error",
|
|
142
|
-
"no-octal-escape": "error",
|
|
143
|
-
"no-param-reassign": "error",
|
|
144
|
-
"no-plusplus": "error",
|
|
145
|
-
"no-promise-executor-return": "error",
|
|
146
|
-
"no-proto": "error",
|
|
147
|
-
"no-prototype-builtins": "error",
|
|
148
|
-
"no-redeclare": "error",
|
|
149
|
-
"no-regex-spaces": "error",
|
|
150
|
-
"no-restricted-exports": "error",
|
|
151
|
-
"no-restricted-globals": "error",
|
|
152
|
-
"no-restricted-imports": "error",
|
|
153
|
-
"no-restricted-properties": "error",
|
|
154
|
-
"no-restricted-syntax": "error",
|
|
155
|
-
"no-return-assign": "error",
|
|
156
|
-
"no-script-url": "error",
|
|
157
|
-
"no-self-assign": "error",
|
|
158
|
-
"no-self-compare": "error",
|
|
159
|
-
"no-sequences": "error",
|
|
160
|
-
"no-setter-return": "error",
|
|
161
|
-
"no-shadow": "error",
|
|
162
|
-
"no-shadow-restricted-names": "error",
|
|
163
|
-
"no-sparse-arrays": "error",
|
|
164
|
-
"no-template-curly-in-string": "error",
|
|
165
|
-
"no-ternary": "error",
|
|
166
|
-
"no-this-before-super": "error",
|
|
167
|
-
"no-throw-literal": "error",
|
|
168
|
-
"no-undef": "error",
|
|
169
|
-
"no-undef-init": "error",
|
|
170
|
-
"no-undefined": "error",
|
|
171
|
-
"no-underscore-dangle": "error",
|
|
172
|
-
"no-unexpected-multiline": "error",
|
|
173
|
-
"no-unmodified-loop-condition": "error",
|
|
174
|
-
"no-unneeded-ternary": "error",
|
|
175
|
-
"no-unreachable": "error",
|
|
176
|
-
"no-unreachable-loop": "error",
|
|
177
|
-
"no-unsafe-finally": "error",
|
|
178
|
-
"no-unsafe-negation": "error",
|
|
179
|
-
"no-unsafe-optional-chaining": "error",
|
|
180
|
-
"no-unused-expressions": "error",
|
|
181
|
-
"no-unused-labels": "error",
|
|
182
|
-
"no-unused-private-class-members": "error",
|
|
183
|
-
"no-unused-vars": "error",
|
|
184
|
-
"no-use-before-define": "error",
|
|
185
|
-
"no-useless-assignment": "error",
|
|
186
|
-
"no-useless-backreference": "error",
|
|
187
|
-
"no-useless-call": "error",
|
|
188
|
-
"no-useless-catch": "error",
|
|
189
|
-
"no-useless-computed-key": "error",
|
|
190
|
-
"no-useless-concat": "error",
|
|
191
|
-
"no-useless-constructor": "error",
|
|
192
|
-
"no-useless-escape": "error",
|
|
193
|
-
"no-useless-rename": "error",
|
|
194
|
-
"no-useless-return": "error",
|
|
195
|
-
"no-var": "error",
|
|
196
|
-
"no-void": "error",
|
|
197
|
-
"no-warning-comments": "error",
|
|
198
|
-
"no-with": "error",
|
|
199
|
-
"object-shorthand": "error",
|
|
200
|
-
"one-var": "error",
|
|
201
|
-
"operator-assignment": "error",
|
|
202
|
-
"prefer-arrow-callback": "error",
|
|
203
|
-
"prefer-const": "error",
|
|
204
|
-
"prefer-destructuring": "error",
|
|
205
|
-
"prefer-exponentiation-operator": "error",
|
|
206
|
-
"prefer-named-capture-group": "error",
|
|
207
|
-
"prefer-numeric-literals": "error",
|
|
208
|
-
"prefer-object-has-own": "error",
|
|
209
|
-
"prefer-object-spread": "error",
|
|
210
|
-
"prefer-promise-reject-errors": "error",
|
|
211
|
-
"prefer-regex-literals": "error",
|
|
212
|
-
"prefer-rest-params": "error",
|
|
213
|
-
"prefer-spread": "error",
|
|
214
|
-
"prefer-template": "error",
|
|
215
|
-
"radix": "error",
|
|
216
|
-
"require-atomic-updates": "error",
|
|
217
|
-
"require-await": "error",
|
|
218
|
-
"require-unicode-regexp": "error",
|
|
219
|
-
"require-yield": "error",
|
|
220
|
-
"sort-imports": "error",
|
|
221
|
-
"sort-keys": "error",
|
|
222
|
-
"sort-vars": "error",
|
|
223
|
-
"strict": "error",
|
|
224
|
-
"symbol-description": "error",
|
|
225
|
-
"unicode-bom": "error",
|
|
226
|
-
"use-isnan": "error",
|
|
227
|
-
"valid-typeof": "error",
|
|
228
|
-
"vars-on-top": "error",
|
|
229
|
-
"yoda": "error"
|
|
230
|
-
}
|
|
231
|
-
});
|
|
232
|
-
}
|
|
233
|
-
});
|
|
234
|
-
|
|
235
|
-
// ../../node_modules/.pnpm/@eslint+js@9.11.1/node_modules/@eslint/js/src/configs/eslint-recommended.js
|
|
236
|
-
var require_eslint_recommended = __commonJS({
|
|
237
|
-
"../../node_modules/.pnpm/@eslint+js@9.11.1/node_modules/@eslint/js/src/configs/eslint-recommended.js"(exports, module) {
|
|
238
|
-
"use strict";
|
|
239
|
-
module.exports = Object.freeze({
|
|
240
|
-
rules: Object.freeze({
|
|
241
|
-
"constructor-super": "error",
|
|
242
|
-
"for-direction": "error",
|
|
243
|
-
"getter-return": "error",
|
|
244
|
-
"no-async-promise-executor": "error",
|
|
245
|
-
"no-case-declarations": "error",
|
|
246
|
-
"no-class-assign": "error",
|
|
247
|
-
"no-compare-neg-zero": "error",
|
|
248
|
-
"no-cond-assign": "error",
|
|
249
|
-
"no-const-assign": "error",
|
|
250
|
-
"no-constant-binary-expression": "error",
|
|
251
|
-
"no-constant-condition": "error",
|
|
252
|
-
"no-control-regex": "error",
|
|
253
|
-
"no-debugger": "error",
|
|
254
|
-
"no-delete-var": "error",
|
|
255
|
-
"no-dupe-args": "error",
|
|
256
|
-
"no-dupe-class-members": "error",
|
|
257
|
-
"no-dupe-else-if": "error",
|
|
258
|
-
"no-dupe-keys": "error",
|
|
259
|
-
"no-duplicate-case": "error",
|
|
260
|
-
"no-empty": "error",
|
|
261
|
-
"no-empty-character-class": "error",
|
|
262
|
-
"no-empty-pattern": "error",
|
|
263
|
-
"no-empty-static-block": "error",
|
|
264
|
-
"no-ex-assign": "error",
|
|
265
|
-
"no-extra-boolean-cast": "error",
|
|
266
|
-
"no-fallthrough": "error",
|
|
267
|
-
"no-func-assign": "error",
|
|
268
|
-
"no-global-assign": "error",
|
|
269
|
-
"no-import-assign": "error",
|
|
270
|
-
"no-invalid-regexp": "error",
|
|
271
|
-
"no-irregular-whitespace": "error",
|
|
272
|
-
"no-loss-of-precision": "error",
|
|
273
|
-
"no-misleading-character-class": "error",
|
|
274
|
-
"no-new-native-nonconstructor": "error",
|
|
275
|
-
"no-nonoctal-decimal-escape": "error",
|
|
276
|
-
"no-obj-calls": "error",
|
|
277
|
-
"no-octal": "error",
|
|
278
|
-
"no-prototype-builtins": "error",
|
|
279
|
-
"no-redeclare": "error",
|
|
280
|
-
"no-regex-spaces": "error",
|
|
281
|
-
"no-self-assign": "error",
|
|
282
|
-
"no-setter-return": "error",
|
|
283
|
-
"no-shadow-restricted-names": "error",
|
|
284
|
-
"no-sparse-arrays": "error",
|
|
285
|
-
"no-this-before-super": "error",
|
|
286
|
-
"no-undef": "error",
|
|
287
|
-
"no-unexpected-multiline": "error",
|
|
288
|
-
"no-unreachable": "error",
|
|
289
|
-
"no-unsafe-finally": "error",
|
|
290
|
-
"no-unsafe-negation": "error",
|
|
291
|
-
"no-unsafe-optional-chaining": "error",
|
|
292
|
-
"no-unused-labels": "error",
|
|
293
|
-
"no-unused-private-class-members": "error",
|
|
294
|
-
"no-unused-vars": "error",
|
|
295
|
-
"no-useless-backreference": "error",
|
|
296
|
-
"no-useless-catch": "error",
|
|
297
|
-
"no-useless-escape": "error",
|
|
298
|
-
"no-with": "error",
|
|
299
|
-
"require-yield": "error",
|
|
300
|
-
"use-isnan": "error",
|
|
301
|
-
"valid-typeof": "error"
|
|
302
|
-
})
|
|
303
|
-
});
|
|
304
|
-
}
|
|
305
|
-
});
|
|
306
|
-
|
|
307
|
-
// ../../node_modules/.pnpm/@eslint+js@9.11.1/node_modules/@eslint/js/src/index.js
|
|
308
|
-
var require_src = __commonJS({
|
|
309
|
-
"../../node_modules/.pnpm/@eslint+js@9.11.1/node_modules/@eslint/js/src/index.js"(exports, module) {
|
|
310
|
-
"use strict";
|
|
311
|
-
module.exports = {
|
|
312
|
-
configs: {
|
|
313
|
-
all: require_eslint_all(),
|
|
314
|
-
recommended: require_eslint_recommended()
|
|
315
|
-
}
|
|
316
|
-
};
|
|
317
|
-
}
|
|
318
|
-
});
|
|
319
|
-
|
|
320
1
|
// src/index.ts
|
|
321
2
|
import globals from "globals";
|
|
322
3
|
|
|
323
4
|
// src/libs.ts
|
|
324
|
-
|
|
325
|
-
import { default as default3 } from "@
|
|
326
|
-
import { default as default4 } from "@typescript-eslint/
|
|
327
|
-
import { default as default5 } from "eslint
|
|
328
|
-
import { default as default6 } from "eslint-
|
|
329
|
-
import { default as default7 } from "eslint-plugin-
|
|
330
|
-
import { default as default8 } from "eslint-plugin-
|
|
331
|
-
import { default as default9 } from "eslint-plugin-
|
|
332
|
-
import { default as default10 } from "eslint-plugin-
|
|
333
|
-
import { default as default11 } from "eslint-plugin-
|
|
334
|
-
import { default as default12 } from "
|
|
335
|
-
import { default as default13 } from "
|
|
336
|
-
import { default as default14 } from "
|
|
5
|
+
import { default as default2 } from "@eslint/js";
|
|
6
|
+
import { default as default3 } from "@next/eslint-plugin-next";
|
|
7
|
+
import { default as default4 } from "@typescript-eslint/eslint-plugin";
|
|
8
|
+
import { default as default5 } from "@typescript-eslint/parser";
|
|
9
|
+
import { default as default6 } from "eslint-config-prettier";
|
|
10
|
+
import { default as default7 } from "eslint-plugin-astro";
|
|
11
|
+
import { default as default8 } from "eslint-plugin-jsonc";
|
|
12
|
+
import { default as default9 } from "eslint-plugin-perfectionist";
|
|
13
|
+
import { default as default10 } from "eslint-plugin-react";
|
|
14
|
+
import { default as default11 } from "eslint-plugin-react-hooks";
|
|
15
|
+
import { default as default12 } from "eslint-plugin-unused-imports";
|
|
16
|
+
import { default as default13 } from "eslint-plugin-vue";
|
|
17
|
+
import { default as default14 } from "eslint-plugin-yml";
|
|
18
|
+
import { default as default15 } from "jsonc-eslint-parser";
|
|
19
|
+
import { default as default16 } from "vue-eslint-parser";
|
|
20
|
+
import { default as default17 } from "yaml-eslint-parser";
|
|
337
21
|
|
|
338
22
|
// src/index.ts
|
|
339
23
|
function config(params = {}) {
|
|
@@ -360,12 +44,14 @@ function config(params = {}) {
|
|
|
360
44
|
"**/web/public",
|
|
361
45
|
"**/studio/build",
|
|
362
46
|
"**/studio/.sanity",
|
|
47
|
+
...params.next ? ["**/.next"] : [],
|
|
363
48
|
...params.ignores ? params.ignores : []
|
|
364
|
-
]
|
|
49
|
+
],
|
|
50
|
+
name: "lqbach/ignores"
|
|
365
51
|
};
|
|
366
52
|
const javascriptConfig = [
|
|
367
53
|
// Default
|
|
368
|
-
|
|
54
|
+
default2.configs.recommended,
|
|
369
55
|
{
|
|
370
56
|
files: ["**/*.js", "**/*.mjs"],
|
|
371
57
|
languageOptions: {
|
|
@@ -379,8 +65,9 @@ function config(params = {}) {
|
|
|
379
65
|
sourceType: "module"
|
|
380
66
|
}
|
|
381
67
|
},
|
|
68
|
+
name: "lqbach/javascript",
|
|
382
69
|
plugins: {
|
|
383
|
-
"unused-imports":
|
|
70
|
+
"unused-imports": default12
|
|
384
71
|
},
|
|
385
72
|
rules: {
|
|
386
73
|
"unused-imports/no-unused-imports": "error",
|
|
@@ -399,19 +86,20 @@ function config(params = {}) {
|
|
|
399
86
|
const typescriptConfig = params.typescript ?? true ? {
|
|
400
87
|
files: ["**/*.{ts,tsx}"],
|
|
401
88
|
languageOptions: {
|
|
402
|
-
parser:
|
|
89
|
+
parser: default5,
|
|
403
90
|
parserOptions: {
|
|
404
91
|
sourceType: "module"
|
|
405
92
|
}
|
|
406
93
|
},
|
|
94
|
+
name: "lqbach/typescript",
|
|
407
95
|
plugins: {
|
|
408
|
-
"@typescript-eslint":
|
|
96
|
+
"@typescript-eslint": default4
|
|
409
97
|
},
|
|
410
98
|
rules: {
|
|
411
|
-
...
|
|
99
|
+
...default4.configs.recommended.rules
|
|
412
100
|
}
|
|
413
101
|
} : {};
|
|
414
|
-
const reactConfig = params.react ?? false ? {
|
|
102
|
+
const reactConfig = (params.next || params.react) ?? false ? {
|
|
415
103
|
files: ["**/*.{js,jsx,mjs,cjs,ts,tsx}"],
|
|
416
104
|
languageOptions: {
|
|
417
105
|
globals: {
|
|
@@ -424,82 +112,144 @@ function config(params = {}) {
|
|
|
424
112
|
}
|
|
425
113
|
}
|
|
426
114
|
},
|
|
115
|
+
name: "lqbach/react",
|
|
427
116
|
plugins: {
|
|
428
|
-
react:
|
|
117
|
+
react: default10
|
|
429
118
|
},
|
|
430
119
|
rules: {
|
|
431
|
-
...
|
|
120
|
+
...default10.configs.flat?.recommended.rules,
|
|
432
121
|
// ignore `css` for emotion usage
|
|
433
122
|
"react/no-unknown-property": ["error", { ignore: ["css"] }]
|
|
434
123
|
}
|
|
435
124
|
} : {};
|
|
125
|
+
const reactHooksConfig = (params.next || typeof params.react !== "boolean" && params.react?.hooks === true) ?? false ? {
|
|
126
|
+
files: ["**/*.{js,jsx,mjs,cjs,ts,tsx}"],
|
|
127
|
+
name: "lqbach/react-hooks",
|
|
128
|
+
plugins: {
|
|
129
|
+
"react-hooks": default11
|
|
130
|
+
},
|
|
131
|
+
rules: {
|
|
132
|
+
"react-hooks/exhaustive-deps": "warn",
|
|
133
|
+
"react-hooks/rules-of-hooks": "error"
|
|
134
|
+
}
|
|
135
|
+
} : {};
|
|
436
136
|
const vueConfig = params.vue ?? false ? {
|
|
437
137
|
files: ["**/*.vue"],
|
|
438
138
|
languageOptions: {
|
|
439
|
-
parser:
|
|
139
|
+
parser: default16,
|
|
440
140
|
parserOptions: {
|
|
441
|
-
parser: params.typescript ?
|
|
141
|
+
parser: params.typescript ? default5 : null,
|
|
442
142
|
sourceType: "module"
|
|
443
143
|
}
|
|
444
144
|
},
|
|
145
|
+
name: "lqbach/vue",
|
|
146
|
+
plugins: {
|
|
147
|
+
vue: default13
|
|
148
|
+
},
|
|
149
|
+
processor: default13.processors[".vue"],
|
|
150
|
+
rules: {
|
|
151
|
+
...default13.configs["base"].rules,
|
|
152
|
+
...default13.configs["essential"].rules,
|
|
153
|
+
...default13.configs["strongly-recommended"].rules
|
|
154
|
+
}
|
|
155
|
+
} : {};
|
|
156
|
+
const nextConfig = params.next ?? false ? {
|
|
157
|
+
files: ["**/*.{js,jsx,ts,tsx}"],
|
|
158
|
+
name: "lqbach/next",
|
|
445
159
|
plugins: {
|
|
446
|
-
|
|
160
|
+
"@next/next": default3
|
|
447
161
|
},
|
|
448
|
-
processor: default10.processors[".vue"],
|
|
449
162
|
rules: {
|
|
450
|
-
...
|
|
451
|
-
...
|
|
452
|
-
|
|
163
|
+
...default3.configs.recommended.rules,
|
|
164
|
+
...default3.configs["core-web-vitals"].rules
|
|
165
|
+
},
|
|
166
|
+
...typeof params.next !== "boolean" && params.next?.rootDir && {
|
|
167
|
+
settings: {
|
|
168
|
+
nextjs: {
|
|
169
|
+
rootDir: params.next.rootDir
|
|
170
|
+
}
|
|
171
|
+
}
|
|
453
172
|
}
|
|
454
173
|
} : {};
|
|
455
174
|
const yamlConfig = params.yaml ?? true ? {
|
|
456
175
|
files: ["**/*.{yaml, yml}"],
|
|
457
176
|
languageOptions: {
|
|
458
|
-
parser:
|
|
177
|
+
parser: default17
|
|
459
178
|
},
|
|
179
|
+
name: "lqbach/yaml",
|
|
460
180
|
plugins: {
|
|
461
|
-
yml:
|
|
181
|
+
yml: default14
|
|
462
182
|
},
|
|
463
183
|
rules: {
|
|
464
|
-
...
|
|
465
|
-
...
|
|
184
|
+
...default14.configs["standard"].rules,
|
|
185
|
+
...default14.configs["prettier"].rules
|
|
466
186
|
}
|
|
467
187
|
} : {};
|
|
468
188
|
const jsoncConfig = params.json ?? true ? [
|
|
469
189
|
{
|
|
190
|
+
name: "lqbach/jsonc-plugin",
|
|
470
191
|
plugins: {
|
|
471
|
-
jsonc:
|
|
192
|
+
jsonc: default8
|
|
472
193
|
}
|
|
473
194
|
},
|
|
474
195
|
{
|
|
475
196
|
files: ["**/*.{json, json5, jsonc}"],
|
|
476
197
|
languageOptions: {
|
|
477
|
-
parser:
|
|
198
|
+
parser: default15
|
|
478
199
|
},
|
|
200
|
+
name: "lqbach/json",
|
|
479
201
|
rules: {
|
|
480
|
-
...
|
|
481
|
-
...
|
|
482
|
-
...
|
|
483
|
-
...
|
|
202
|
+
...default8.configs["recommended-with-json"].rules,
|
|
203
|
+
...default8.configs["recommended-with-jsonc"].rules,
|
|
204
|
+
...default8.configs["recommended-with-json5"].rules,
|
|
205
|
+
...default8.configs["prettier"].rules,
|
|
484
206
|
"jsonc/no-comments": "off"
|
|
485
207
|
}
|
|
486
208
|
}
|
|
487
209
|
] : [];
|
|
488
210
|
const perfectionistConfig = params.perfectionist ?? true ? {
|
|
211
|
+
name: "lqbach/perfectionist",
|
|
212
|
+
plugins: {
|
|
213
|
+
perfectionist: default9
|
|
214
|
+
},
|
|
215
|
+
rules: {
|
|
216
|
+
...default9.configs["recommended-natural"].rules
|
|
217
|
+
}
|
|
218
|
+
} : {};
|
|
219
|
+
const astroConfig = params.astro ?? false ? {
|
|
220
|
+
files: ["**/*.astro"],
|
|
221
|
+
languageOptions: {
|
|
222
|
+
parserOptions: params.typescript ? {
|
|
223
|
+
extraFileExtensions: [".astro"],
|
|
224
|
+
parser: default5,
|
|
225
|
+
sourceType: "module"
|
|
226
|
+
} : {}
|
|
227
|
+
},
|
|
228
|
+
name: "lqbach/astro",
|
|
489
229
|
plugins: {
|
|
490
|
-
|
|
230
|
+
astro: default7
|
|
491
231
|
},
|
|
492
232
|
rules: {
|
|
493
|
-
|
|
233
|
+
"astro/missing-client-only-directive-value": "error",
|
|
234
|
+
"astro/no-conflict-set-directives": "error",
|
|
235
|
+
"astro/no-deprecated-astro-canonicalurl": "error",
|
|
236
|
+
"astro/no-deprecated-astro-fetchcontent": "error",
|
|
237
|
+
"astro/no-deprecated-astro-resolve": "error",
|
|
238
|
+
"astro/no-deprecated-getentrybyslug": "error",
|
|
239
|
+
"astro/no-unused-define-vars-in-style": "error",
|
|
240
|
+
"astro/valid-compile": "error"
|
|
494
241
|
}
|
|
495
242
|
} : {};
|
|
496
|
-
const prettierConfig =
|
|
243
|
+
const prettierConfig = default6;
|
|
497
244
|
let config2 = [];
|
|
498
245
|
config2.push(ignoresConfig);
|
|
499
246
|
config2.push(...javascriptConfig);
|
|
500
247
|
config2.push(typescriptConfig);
|
|
501
248
|
config2.push(reactConfig);
|
|
249
|
+
config2.push(reactHooksConfig);
|
|
502
250
|
config2.push(vueConfig);
|
|
251
|
+
config2.push(nextConfig);
|
|
252
|
+
config2.push(astroConfig);
|
|
503
253
|
config2.push(yamlConfig);
|
|
504
254
|
config2.push(...jsoncConfig);
|
|
505
255
|
config2.push(perfectionistConfig);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lqbach/eslint-config",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.8.0",
|
|
5
5
|
"description": "lqbach's Personal Eslint Config",
|
|
6
6
|
"private": false,
|
|
7
7
|
"license": "MIT",
|
|
@@ -18,19 +18,22 @@
|
|
|
18
18
|
"main": "./dist/index.js",
|
|
19
19
|
"types": "./dist/index.d.ts",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@
|
|
22
|
-
"@
|
|
23
|
-
"eslint-
|
|
21
|
+
"@eslint/js": "^9.11.0",
|
|
22
|
+
"@next/eslint-plugin-next": "^15.1.2",
|
|
23
|
+
"@typescript-eslint/eslint-plugin": "^8.18.0",
|
|
24
|
+
"@typescript-eslint/parser": "^8.18.0",
|
|
25
|
+
"eslint-config-prettier": "^10.1.8",
|
|
26
|
+
"eslint-plugin-astro": "^1.3.1",
|
|
24
27
|
"eslint-plugin-jsonc": "^2.16.0",
|
|
25
|
-
"eslint-plugin-perfectionist": "^
|
|
28
|
+
"eslint-plugin-perfectionist": "^4.15.0",
|
|
26
29
|
"eslint-plugin-react": "^7.37.1",
|
|
30
|
+
"eslint-plugin-react-hooks": "^6.1.1",
|
|
27
31
|
"eslint-plugin-unused-imports": "^4.1.4",
|
|
28
|
-
"eslint-plugin-vue": "^
|
|
32
|
+
"eslint-plugin-vue": "^10.5.0",
|
|
29
33
|
"eslint-plugin-yml": "^1.14.0",
|
|
30
|
-
"globals": "^
|
|
34
|
+
"globals": "^16.0.0",
|
|
31
35
|
"jsonc-eslint-parser": "^2.4.0",
|
|
32
|
-
"
|
|
33
|
-
"vue-eslint-parser": "^9.3.2",
|
|
36
|
+
"vue-eslint-parser": "^10.2.0",
|
|
34
37
|
"yaml-eslint-parser": "^1.2.2"
|
|
35
38
|
},
|
|
36
39
|
"peerDependencies": {
|