@lqbach/eslint-config 0.7.0 → 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/dist/index.js CHANGED
@@ -1,387 +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.17.0/node_modules/@eslint/js/package.json
28
- var require_package = __commonJS({
29
- "../../node_modules/.pnpm/@eslint+js@9.17.0/node_modules/@eslint/js/package.json"(exports, module) {
30
- module.exports = {
31
- name: "@eslint/js",
32
- version: "9.17.0",
33
- description: "ESLint JavaScript language implementation",
34
- main: "./src/index.js",
35
- types: "./types/index.d.ts",
36
- scripts: {
37
- "test:types": "tsc -p tests/types/tsconfig.json"
38
- },
39
- files: [
40
- "LICENSE",
41
- "README.md",
42
- "src",
43
- "types"
44
- ],
45
- publishConfig: {
46
- access: "public"
47
- },
48
- repository: {
49
- type: "git",
50
- url: "https://github.com/eslint/eslint.git",
51
- directory: "packages/js"
52
- },
53
- homepage: "https://eslint.org",
54
- bugs: "https://github.com/eslint/eslint/issues/",
55
- keywords: [
56
- "javascript",
57
- "eslint-plugin",
58
- "eslint"
59
- ],
60
- license: "MIT",
61
- engines: {
62
- node: "^18.18.0 || ^20.9.0 || >=21.1.0"
63
- }
64
- };
65
- }
66
- });
67
-
68
- // ../../node_modules/.pnpm/@eslint+js@9.17.0/node_modules/@eslint/js/src/configs/eslint-all.js
69
- var require_eslint_all = __commonJS({
70
- "../../node_modules/.pnpm/@eslint+js@9.17.0/node_modules/@eslint/js/src/configs/eslint-all.js"(exports, module) {
71
- "use strict";
72
- module.exports = Object.freeze({
73
- "rules": {
74
- "accessor-pairs": "error",
75
- "array-callback-return": "error",
76
- "arrow-body-style": "error",
77
- "block-scoped-var": "error",
78
- "camelcase": "error",
79
- "capitalized-comments": "error",
80
- "class-methods-use-this": "error",
81
- "complexity": "error",
82
- "consistent-return": "error",
83
- "consistent-this": "error",
84
- "constructor-super": "error",
85
- "curly": "error",
86
- "default-case": "error",
87
- "default-case-last": "error",
88
- "default-param-last": "error",
89
- "dot-notation": "error",
90
- "eqeqeq": "error",
91
- "for-direction": "error",
92
- "func-name-matching": "error",
93
- "func-names": "error",
94
- "func-style": "error",
95
- "getter-return": "error",
96
- "grouped-accessor-pairs": "error",
97
- "guard-for-in": "error",
98
- "id-denylist": "error",
99
- "id-length": "error",
100
- "id-match": "error",
101
- "init-declarations": "error",
102
- "logical-assignment-operators": "error",
103
- "max-classes-per-file": "error",
104
- "max-depth": "error",
105
- "max-lines": "error",
106
- "max-lines-per-function": "error",
107
- "max-nested-callbacks": "error",
108
- "max-params": "error",
109
- "max-statements": "error",
110
- "new-cap": "error",
111
- "no-alert": "error",
112
- "no-array-constructor": "error",
113
- "no-async-promise-executor": "error",
114
- "no-await-in-loop": "error",
115
- "no-bitwise": "error",
116
- "no-caller": "error",
117
- "no-case-declarations": "error",
118
- "no-class-assign": "error",
119
- "no-compare-neg-zero": "error",
120
- "no-cond-assign": "error",
121
- "no-console": "error",
122
- "no-const-assign": "error",
123
- "no-constant-binary-expression": "error",
124
- "no-constant-condition": "error",
125
- "no-constructor-return": "error",
126
- "no-continue": "error",
127
- "no-control-regex": "error",
128
- "no-debugger": "error",
129
- "no-delete-var": "error",
130
- "no-div-regex": "error",
131
- "no-dupe-args": "error",
132
- "no-dupe-class-members": "error",
133
- "no-dupe-else-if": "error",
134
- "no-dupe-keys": "error",
135
- "no-duplicate-case": "error",
136
- "no-duplicate-imports": "error",
137
- "no-else-return": "error",
138
- "no-empty": "error",
139
- "no-empty-character-class": "error",
140
- "no-empty-function": "error",
141
- "no-empty-pattern": "error",
142
- "no-empty-static-block": "error",
143
- "no-eq-null": "error",
144
- "no-eval": "error",
145
- "no-ex-assign": "error",
146
- "no-extend-native": "error",
147
- "no-extra-bind": "error",
148
- "no-extra-boolean-cast": "error",
149
- "no-extra-label": "error",
150
- "no-fallthrough": "error",
151
- "no-func-assign": "error",
152
- "no-global-assign": "error",
153
- "no-implicit-coercion": "error",
154
- "no-implicit-globals": "error",
155
- "no-implied-eval": "error",
156
- "no-import-assign": "error",
157
- "no-inline-comments": "error",
158
- "no-inner-declarations": "error",
159
- "no-invalid-regexp": "error",
160
- "no-invalid-this": "error",
161
- "no-irregular-whitespace": "error",
162
- "no-iterator": "error",
163
- "no-label-var": "error",
164
- "no-labels": "error",
165
- "no-lone-blocks": "error",
166
- "no-lonely-if": "error",
167
- "no-loop-func": "error",
168
- "no-loss-of-precision": "error",
169
- "no-magic-numbers": "error",
170
- "no-misleading-character-class": "error",
171
- "no-multi-assign": "error",
172
- "no-multi-str": "error",
173
- "no-negated-condition": "error",
174
- "no-nested-ternary": "error",
175
- "no-new": "error",
176
- "no-new-func": "error",
177
- "no-new-native-nonconstructor": "error",
178
- "no-new-wrappers": "error",
179
- "no-nonoctal-decimal-escape": "error",
180
- "no-obj-calls": "error",
181
- "no-object-constructor": "error",
182
- "no-octal": "error",
183
- "no-octal-escape": "error",
184
- "no-param-reassign": "error",
185
- "no-plusplus": "error",
186
- "no-promise-executor-return": "error",
187
- "no-proto": "error",
188
- "no-prototype-builtins": "error",
189
- "no-redeclare": "error",
190
- "no-regex-spaces": "error",
191
- "no-restricted-exports": "error",
192
- "no-restricted-globals": "error",
193
- "no-restricted-imports": "error",
194
- "no-restricted-properties": "error",
195
- "no-restricted-syntax": "error",
196
- "no-return-assign": "error",
197
- "no-script-url": "error",
198
- "no-self-assign": "error",
199
- "no-self-compare": "error",
200
- "no-sequences": "error",
201
- "no-setter-return": "error",
202
- "no-shadow": "error",
203
- "no-shadow-restricted-names": "error",
204
- "no-sparse-arrays": "error",
205
- "no-template-curly-in-string": "error",
206
- "no-ternary": "error",
207
- "no-this-before-super": "error",
208
- "no-throw-literal": "error",
209
- "no-undef": "error",
210
- "no-undef-init": "error",
211
- "no-undefined": "error",
212
- "no-underscore-dangle": "error",
213
- "no-unexpected-multiline": "error",
214
- "no-unmodified-loop-condition": "error",
215
- "no-unneeded-ternary": "error",
216
- "no-unreachable": "error",
217
- "no-unreachable-loop": "error",
218
- "no-unsafe-finally": "error",
219
- "no-unsafe-negation": "error",
220
- "no-unsafe-optional-chaining": "error",
221
- "no-unused-expressions": "error",
222
- "no-unused-labels": "error",
223
- "no-unused-private-class-members": "error",
224
- "no-unused-vars": "error",
225
- "no-use-before-define": "error",
226
- "no-useless-assignment": "error",
227
- "no-useless-backreference": "error",
228
- "no-useless-call": "error",
229
- "no-useless-catch": "error",
230
- "no-useless-computed-key": "error",
231
- "no-useless-concat": "error",
232
- "no-useless-constructor": "error",
233
- "no-useless-escape": "error",
234
- "no-useless-rename": "error",
235
- "no-useless-return": "error",
236
- "no-var": "error",
237
- "no-void": "error",
238
- "no-warning-comments": "error",
239
- "no-with": "error",
240
- "object-shorthand": "error",
241
- "one-var": "error",
242
- "operator-assignment": "error",
243
- "prefer-arrow-callback": "error",
244
- "prefer-const": "error",
245
- "prefer-destructuring": "error",
246
- "prefer-exponentiation-operator": "error",
247
- "prefer-named-capture-group": "error",
248
- "prefer-numeric-literals": "error",
249
- "prefer-object-has-own": "error",
250
- "prefer-object-spread": "error",
251
- "prefer-promise-reject-errors": "error",
252
- "prefer-regex-literals": "error",
253
- "prefer-rest-params": "error",
254
- "prefer-spread": "error",
255
- "prefer-template": "error",
256
- "radix": "error",
257
- "require-atomic-updates": "error",
258
- "require-await": "error",
259
- "require-unicode-regexp": "error",
260
- "require-yield": "error",
261
- "sort-imports": "error",
262
- "sort-keys": "error",
263
- "sort-vars": "error",
264
- "strict": "error",
265
- "symbol-description": "error",
266
- "unicode-bom": "error",
267
- "use-isnan": "error",
268
- "valid-typeof": "error",
269
- "vars-on-top": "error",
270
- "yoda": "error"
271
- }
272
- });
273
- }
274
- });
275
-
276
- // ../../node_modules/.pnpm/@eslint+js@9.17.0/node_modules/@eslint/js/src/configs/eslint-recommended.js
277
- var require_eslint_recommended = __commonJS({
278
- "../../node_modules/.pnpm/@eslint+js@9.17.0/node_modules/@eslint/js/src/configs/eslint-recommended.js"(exports, module) {
279
- "use strict";
280
- module.exports = Object.freeze({
281
- rules: Object.freeze({
282
- "constructor-super": "error",
283
- "for-direction": "error",
284
- "getter-return": "error",
285
- "no-async-promise-executor": "error",
286
- "no-case-declarations": "error",
287
- "no-class-assign": "error",
288
- "no-compare-neg-zero": "error",
289
- "no-cond-assign": "error",
290
- "no-const-assign": "error",
291
- "no-constant-binary-expression": "error",
292
- "no-constant-condition": "error",
293
- "no-control-regex": "error",
294
- "no-debugger": "error",
295
- "no-delete-var": "error",
296
- "no-dupe-args": "error",
297
- "no-dupe-class-members": "error",
298
- "no-dupe-else-if": "error",
299
- "no-dupe-keys": "error",
300
- "no-duplicate-case": "error",
301
- "no-empty": "error",
302
- "no-empty-character-class": "error",
303
- "no-empty-pattern": "error",
304
- "no-empty-static-block": "error",
305
- "no-ex-assign": "error",
306
- "no-extra-boolean-cast": "error",
307
- "no-fallthrough": "error",
308
- "no-func-assign": "error",
309
- "no-global-assign": "error",
310
- "no-import-assign": "error",
311
- "no-invalid-regexp": "error",
312
- "no-irregular-whitespace": "error",
313
- "no-loss-of-precision": "error",
314
- "no-misleading-character-class": "error",
315
- "no-new-native-nonconstructor": "error",
316
- "no-nonoctal-decimal-escape": "error",
317
- "no-obj-calls": "error",
318
- "no-octal": "error",
319
- "no-prototype-builtins": "error",
320
- "no-redeclare": "error",
321
- "no-regex-spaces": "error",
322
- "no-self-assign": "error",
323
- "no-setter-return": "error",
324
- "no-shadow-restricted-names": "error",
325
- "no-sparse-arrays": "error",
326
- "no-this-before-super": "error",
327
- "no-undef": "error",
328
- "no-unexpected-multiline": "error",
329
- "no-unreachable": "error",
330
- "no-unsafe-finally": "error",
331
- "no-unsafe-negation": "error",
332
- "no-unsafe-optional-chaining": "error",
333
- "no-unused-labels": "error",
334
- "no-unused-private-class-members": "error",
335
- "no-unused-vars": "error",
336
- "no-useless-backreference": "error",
337
- "no-useless-catch": "error",
338
- "no-useless-escape": "error",
339
- "no-with": "error",
340
- "require-yield": "error",
341
- "use-isnan": "error",
342
- "valid-typeof": "error"
343
- })
344
- });
345
- }
346
- });
347
-
348
- // ../../node_modules/.pnpm/@eslint+js@9.17.0/node_modules/@eslint/js/src/index.js
349
- var require_src = __commonJS({
350
- "../../node_modules/.pnpm/@eslint+js@9.17.0/node_modules/@eslint/js/src/index.js"(exports, module) {
351
- "use strict";
352
- var { version } = require_package();
353
- module.exports = {
354
- meta: {
355
- name: "@eslint/js",
356
- version
357
- },
358
- configs: {
359
- all: require_eslint_all(),
360
- recommended: require_eslint_recommended()
361
- }
362
- };
363
- }
364
- });
365
-
366
1
  // src/index.ts
367
2
  import globals from "globals";
368
3
 
369
4
  // src/libs.ts
370
- var import_js = __toESM(require_src(), 1);
5
+ import { default as default2 } from "@eslint/js";
371
6
  import { default as default3 } from "@next/eslint-plugin-next";
372
7
  import { default as default4 } from "@typescript-eslint/eslint-plugin";
373
8
  import { default as default5 } from "@typescript-eslint/parser";
374
9
  import { default as default6 } from "eslint-config-prettier";
375
- import { default as default7 } from "eslint-plugin-jsonc";
376
- import { default as default8 } from "eslint-plugin-perfectionist";
377
- import { default as default9 } from "eslint-plugin-react";
378
- import { default as default10 } from "eslint-plugin-react-hooks";
379
- import { default as default11 } from "eslint-plugin-unused-imports";
380
- import { default as default12 } from "eslint-plugin-vue";
381
- import { default as default13 } from "eslint-plugin-yml";
382
- import { default as default14 } from "jsonc-eslint-parser";
383
- import { default as default15 } from "vue-eslint-parser";
384
- import { default as default16 } from "yaml-eslint-parser";
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";
385
21
 
386
22
  // src/index.ts
387
23
  function config(params = {}) {
@@ -415,7 +51,7 @@ function config(params = {}) {
415
51
  };
416
52
  const javascriptConfig = [
417
53
  // Default
418
- import_js.default.configs.recommended,
54
+ default2.configs.recommended,
419
55
  {
420
56
  files: ["**/*.js", "**/*.mjs"],
421
57
  languageOptions: {
@@ -431,7 +67,7 @@ function config(params = {}) {
431
67
  },
432
68
  name: "lqbach/javascript",
433
69
  plugins: {
434
- "unused-imports": default11
70
+ "unused-imports": default12
435
71
  },
436
72
  rules: {
437
73
  "unused-imports/no-unused-imports": "error",
@@ -478,10 +114,10 @@ function config(params = {}) {
478
114
  },
479
115
  name: "lqbach/react",
480
116
  plugins: {
481
- react: default9
117
+ react: default10
482
118
  },
483
119
  rules: {
484
- ...default9.configs.flat?.recommended.rules,
120
+ ...default10.configs.flat?.recommended.rules,
485
121
  // ignore `css` for emotion usage
486
122
  "react/no-unknown-property": ["error", { ignore: ["css"] }]
487
123
  }
@@ -490,16 +126,17 @@ function config(params = {}) {
490
126
  files: ["**/*.{js,jsx,mjs,cjs,ts,tsx}"],
491
127
  name: "lqbach/react-hooks",
492
128
  plugins: {
493
- "react-hooks": default10
129
+ "react-hooks": default11
494
130
  },
495
131
  rules: {
496
- ...default10.configs.recommended.rules
132
+ "react-hooks/exhaustive-deps": "warn",
133
+ "react-hooks/rules-of-hooks": "error"
497
134
  }
498
135
  } : {};
499
136
  const vueConfig = params.vue ?? false ? {
500
137
  files: ["**/*.vue"],
501
138
  languageOptions: {
502
- parser: default15,
139
+ parser: default16,
503
140
  parserOptions: {
504
141
  parser: params.typescript ? default5 : null,
505
142
  sourceType: "module"
@@ -507,13 +144,13 @@ function config(params = {}) {
507
144
  },
508
145
  name: "lqbach/vue",
509
146
  plugins: {
510
- vue: default12
147
+ vue: default13
511
148
  },
512
- processor: default12.processors[".vue"],
149
+ processor: default13.processors[".vue"],
513
150
  rules: {
514
- ...default12.configs["base"].rules,
515
- ...default12.configs["vue3-essential"].rules,
516
- ...default12.configs["vue3-strongly-recommended"].rules
151
+ ...default13.configs["base"].rules,
152
+ ...default13.configs["essential"].rules,
153
+ ...default13.configs["strongly-recommended"].rules
517
154
  }
518
155
  } : {};
519
156
  const nextConfig = params.next ?? false ? {
@@ -537,35 +174,35 @@ function config(params = {}) {
537
174
  const yamlConfig = params.yaml ?? true ? {
538
175
  files: ["**/*.{yaml, yml}"],
539
176
  languageOptions: {
540
- parser: default16
177
+ parser: default17
541
178
  },
542
179
  name: "lqbach/yaml",
543
180
  plugins: {
544
- yml: default13
181
+ yml: default14
545
182
  },
546
183
  rules: {
547
- ...default13.configs["standard"].rules,
548
- ...default13.configs["prettier"].rules
184
+ ...default14.configs["standard"].rules,
185
+ ...default14.configs["prettier"].rules
549
186
  }
550
187
  } : {};
551
188
  const jsoncConfig = params.json ?? true ? [
552
189
  {
553
190
  name: "lqbach/jsonc-plugin",
554
191
  plugins: {
555
- jsonc: default7
192
+ jsonc: default8
556
193
  }
557
194
  },
558
195
  {
559
196
  files: ["**/*.{json, json5, jsonc}"],
560
197
  languageOptions: {
561
- parser: default14
198
+ parser: default15
562
199
  },
563
200
  name: "lqbach/json",
564
201
  rules: {
565
- ...default7.configs["recommended-with-json"].rules,
566
- ...default7.configs["recommended-with-jsonc"].rules,
567
- ...default7.configs["recommended-with-json5"].rules,
568
- ...default7.configs["prettier"].rules,
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,
569
206
  "jsonc/no-comments": "off"
570
207
  }
571
208
  }
@@ -573,10 +210,34 @@ function config(params = {}) {
573
210
  const perfectionistConfig = params.perfectionist ?? true ? {
574
211
  name: "lqbach/perfectionist",
575
212
  plugins: {
576
- perfectionist: default8
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",
229
+ plugins: {
230
+ astro: default7
577
231
  },
578
232
  rules: {
579
- ...default8.configs["recommended-natural"].rules
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"
580
241
  }
581
242
  } : {};
582
243
  const prettierConfig = default6;
@@ -588,6 +249,7 @@ function config(params = {}) {
588
249
  config2.push(reactHooksConfig);
589
250
  config2.push(vueConfig);
590
251
  config2.push(nextConfig);
252
+ config2.push(astroConfig);
591
253
  config2.push(yamlConfig);
592
254
  config2.push(...jsoncConfig);
593
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.7.0",
4
+ "version": "0.8.0",
5
5
  "description": "lqbach's Personal Eslint Config",
6
6
  "private": false,
7
7
  "license": "MIT",
@@ -18,20 +18,22 @@
18
18
  "main": "./dist/index.js",
19
19
  "types": "./dist/index.d.ts",
20
20
  "dependencies": {
21
+ "@eslint/js": "^9.11.0",
21
22
  "@next/eslint-plugin-next": "^15.1.2",
22
23
  "@typescript-eslint/eslint-plugin": "^8.18.0",
23
24
  "@typescript-eslint/parser": "^8.18.0",
24
- "eslint-config-prettier": "^9.1.0",
25
+ "eslint-config-prettier": "^10.1.8",
26
+ "eslint-plugin-astro": "^1.3.1",
25
27
  "eslint-plugin-jsonc": "^2.16.0",
26
- "eslint-plugin-perfectionist": "^3.8.0",
28
+ "eslint-plugin-perfectionist": "^4.15.0",
27
29
  "eslint-plugin-react": "^7.37.1",
28
- "eslint-plugin-react-hooks": "^5.1.0",
30
+ "eslint-plugin-react-hooks": "^6.1.1",
29
31
  "eslint-plugin-unused-imports": "^4.1.4",
30
- "eslint-plugin-vue": "^9.28.0",
32
+ "eslint-plugin-vue": "^10.5.0",
31
33
  "eslint-plugin-yml": "^1.14.0",
32
- "globals": "^15.0.0",
34
+ "globals": "^16.0.0",
33
35
  "jsonc-eslint-parser": "^2.4.0",
34
- "vue-eslint-parser": "^9.3.2",
36
+ "vue-eslint-parser": "^10.2.0",
35
37
  "yaml-eslint-parser": "^1.2.2"
36
38
  },
37
39
  "peerDependencies": {
package/src/index.ts CHANGED
@@ -7,6 +7,7 @@ import {
7
7
  parserTypeScript,
8
8
  parserVue,
9
9
  parserYaml,
10
+ pluginAstro,
10
11
  pluginJsonc,
11
12
  pluginNext,
12
13
  pluginPerfectionist,
@@ -150,7 +151,8 @@ export default function config(params: ConfigParams = {}): Array<ConfigObject> {
150
151
  "react-hooks": pluginReactHooks,
151
152
  },
152
153
  rules: {
153
- ...pluginReactHooks.configs.recommended.rules,
154
+ "react-hooks/exhaustive-deps": "warn",
155
+ "react-hooks/rules-of-hooks": "error",
154
156
  },
155
157
  }
156
158
  : {}
@@ -174,8 +176,8 @@ export default function config(params: ConfigParams = {}): Array<ConfigObject> {
174
176
  processor: pluginVue.processors[".vue"],
175
177
  rules: {
176
178
  ...pluginVue.configs["base"].rules,
177
- ...pluginVue.configs["vue3-essential"].rules,
178
- ...pluginVue.configs["vue3-strongly-recommended"].rules,
179
+ ...pluginVue.configs["essential"].rules,
180
+ ...pluginVue.configs["strongly-recommended"].rules,
179
181
  },
180
182
  }
181
183
  : {}
@@ -264,6 +266,37 @@ export default function config(params: ConfigParams = {}): Array<ConfigObject> {
264
266
  }
265
267
  : {}
266
268
 
269
+ // Astro Config
270
+ const astroConfig: ConfigObject =
271
+ (params.astro ?? false)
272
+ ? {
273
+ files: ["**/*.astro"],
274
+ languageOptions: {
275
+ parserOptions: params.typescript
276
+ ? {
277
+ extraFileExtensions: [".astro"],
278
+ parser: parserTypeScript,
279
+ sourceType: "module",
280
+ }
281
+ : {},
282
+ },
283
+ name: "lqbach/astro",
284
+ plugins: {
285
+ astro: pluginAstro,
286
+ },
287
+ rules: {
288
+ "astro/missing-client-only-directive-value": "error",
289
+ "astro/no-conflict-set-directives": "error",
290
+ "astro/no-deprecated-astro-canonicalurl": "error",
291
+ "astro/no-deprecated-astro-fetchcontent": "error",
292
+ "astro/no-deprecated-astro-resolve": "error",
293
+ "astro/no-deprecated-getentrybyslug": "error",
294
+ "astro/no-unused-define-vars-in-style": "error",
295
+ "astro/valid-compile": "error",
296
+ },
297
+ }
298
+ : {}
299
+
267
300
  const prettierConfig: ConfigObject = configPrettier
268
301
 
269
302
  let config: Array<ConfigObject> = []
@@ -274,6 +307,7 @@ export default function config(params: ConfigParams = {}): Array<ConfigObject> {
274
307
  config.push(reactHooksConfig)
275
308
  config.push(vueConfig)
276
309
  config.push(nextConfig)
310
+ config.push(astroConfig)
277
311
  config.push(yamlConfig)
278
312
  config.push(...jsoncConfig)
279
313
  config.push(perfectionistConfig)