@component-hook/eslint-plugin 1.0.1 → 1.0.2
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/README.md +27 -22
- package/dist/index.d.ts +50 -13
- package/dist/index.js +35 -28
- package/package.json +12 -12
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @component-hook/eslint-plugin
|
|
2
2
|
|
|
3
|
-
A opinionated ESLint config preset for JavaScript
|
|
3
|
+
A opinionated ESLint config preset for `JavaScript`, `TypeScript`, `Vue3`, `React` and `Prettier`.
|
|
4
4
|
|
|
5
5
|
<p>
|
|
6
6
|
<a href="https://npm-stat.com/charts.html?package=@component-hook/eslint-plugin">
|
|
@@ -13,21 +13,26 @@ A opinionated ESLint config preset for JavaScript, TypeScript, Vue, and Prettier
|
|
|
13
13
|
|
|
14
14
|
## Features
|
|
15
15
|
|
|
16
|
-
- Support `TypeScript`, `
|
|
17
|
-
-
|
|
18
|
-
- Format with Prettier.
|
|
16
|
+
- Support `TypeScript`, `Vue3` and `React` out-of-box.
|
|
17
|
+
- Format with `Prettier`.
|
|
19
18
|
- Ignores common files like `dist`, `node_modules`, `coverage`, and files in `.gitignore`.
|
|
19
|
+
- Various built-in configurations can be referenced according to respective needs.
|
|
20
20
|
- Reasonable defaults, best practices, and just a few lines of configuration.
|
|
21
21
|
|
|
22
|
+
## Documentation
|
|
23
|
+
|
|
24
|
+
For detailed documentation and usage examples, please visit: [Official Docs](https://tzuyi0817.github.io/component-hook/#/eslint/plugin).
|
|
25
|
+
|
|
22
26
|
## Installation
|
|
23
27
|
|
|
24
28
|
```bash
|
|
29
|
+
# Using npm
|
|
25
30
|
$ npm install @component-hook/eslint-plugin --save-dev
|
|
26
31
|
|
|
27
|
-
#
|
|
32
|
+
# Using yarn
|
|
28
33
|
$ yarn add @component-hook/eslint-plugin --dev
|
|
29
34
|
|
|
30
|
-
#
|
|
35
|
+
# Using pnpm
|
|
31
36
|
$ pnpm install @component-hook/eslint-plugin --save-dev
|
|
32
37
|
```
|
|
33
38
|
|
|
@@ -81,21 +86,21 @@ export default vuePreset;
|
|
|
81
86
|
|
|
82
87
|
## Configs
|
|
83
88
|
|
|
84
|
-
| Name | Type | Reference
|
|
85
|
-
| ----------------------- | ----------------- |
|
|
86
|
-
| basic | `Linter.Config[]` | `eslint-recommended`, `typescript-eslint`, `eslint-plugin-eslint-comments`, `eslint-plugin-import`, `eslint-plugin-unicorn`, `eslint-plugin-regexp` |
|
|
87
|
-
| vue | `Linter.Config[]` | `eslint-plugin-vue`, `typescript-eslint`
|
|
88
|
-
| react | `Linter.Config[]` | `eslint-plugin-react/recommended`, `eslint-plugin-react-hooks/recommended`, `eslint-plugin-jsx-a11y/recommended`
|
|
89
|
-
| markdown | `Linter.Config[]` | `eslint-plugin-markdown/recommended`
|
|
90
|
-
| prettier | `Linter.Config` | `eslint-plugin-prettier/recommended
|
|
91
|
-
| sonarjs | `Linter.Config[]` | `eslint-plugin-sonarjs/recommended`
|
|
92
|
-
| security | `Linter.Config` | `eslint-plugin-security/recommended`
|
|
93
|
-
| playwright | `Linter.Config` | `eslint-plugin-playwright/flat/recommended`
|
|
94
|
-
| testing-library/dom | `Linter.Config` | `eslint-plugin-testing-library/dom`
|
|
95
|
-
| testing-library/vue | `Linter.Config` | `eslint-plugin-testing-library/vue`
|
|
96
|
-
| testing-library/react | `Linter.Config` | `eslint-plugin-testing-library/react`
|
|
97
|
-
| testing-library/angular | `Linter.Config` | `eslint-plugin-testing-library/angular`
|
|
98
|
-
| testing-library/marko | `Linter.Config` | `eslint-plugin-testing-library/marko`
|
|
89
|
+
| Name | Type | Reference |
|
|
90
|
+
| ----------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
91
|
+
| basic | `Linter.Config[]` | `eslint-recommended`, `typescript-eslint`, `eslint-plugin-eslint-comments`, `eslint-plugin-import`, `eslint-plugin-unicorn`, `eslint-plugin-regexp`, `eslint-plugin-de-morgan` |
|
|
92
|
+
| vue | `Linter.Config[]` | `eslint-plugin-vue`, `typescript-eslint` |
|
|
93
|
+
| react | `Linter.Config[]` | `eslint-plugin-react/recommended`, `eslint-plugin-react-hooks/recommended`, `eslint-plugin-jsx-a11y/recommended` |
|
|
94
|
+
| markdown | `Linter.Config[]` | `eslint-plugin-markdown/recommended` |
|
|
95
|
+
| prettier | `Linter.Config` | `eslint-plugin-prettier/recommended` |
|
|
96
|
+
| sonarjs | `Linter.Config[]` | `eslint-plugin-sonarjs/recommended` |
|
|
97
|
+
| security | `Linter.Config` | `eslint-plugin-security/recommended` |
|
|
98
|
+
| playwright | `Linter.Config` | `eslint-plugin-playwright/flat/recommended` |
|
|
99
|
+
| testing-library/dom | `Linter.Config` | `eslint-plugin-testing-library/dom` |
|
|
100
|
+
| testing-library/vue | `Linter.Config` | `eslint-plugin-testing-library/vue` |
|
|
101
|
+
| testing-library/react | `Linter.Config` | `eslint-plugin-testing-library/react` |
|
|
102
|
+
| testing-library/angular | `Linter.Config` | `eslint-plugin-testing-library/angular` |
|
|
103
|
+
| testing-library/marko | `Linter.Config` | `eslint-plugin-testing-library/marko` |
|
|
99
104
|
|
|
100
105
|
## Reference eslint plugin
|
|
101
106
|
|
|
@@ -105,8 +110,8 @@ export default vuePreset;
|
|
|
105
110
|
- [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import)
|
|
106
111
|
- [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn)
|
|
107
112
|
- [eslint-plugin-regexp/flat/recommended](https://github.com/ota-meshi/eslint-plugin-regexp/blob/master/lib/configs/flat/recommended.ts)
|
|
113
|
+
- [eslint-plugin-de-morgan](https://github.com/azat-io/eslint-plugin-de-morgan/blob/main/index.ts)
|
|
108
114
|
- [eslint-plugin-prettier/recommended](https://github.com/prettier/eslint-plugin-prettier/blob/master/recommended.js)
|
|
109
|
-
- [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier/blob/main/index.js)
|
|
110
115
|
- [eslint-plugin-react/recommended](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/configs/recommended.js)
|
|
111
116
|
- [eslint-plugin-react-hooks/recommended](https://github.com/facebook/react/blob/main/packages/eslint-plugin-react-hooks/src/index.js)
|
|
112
117
|
- [eslint-plugin-jsx-a11y/recommended](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/src/index.js)
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as eslint_plugin_security from 'eslint-plugin-security';
|
|
1
2
|
import * as eslint from 'eslint';
|
|
2
3
|
|
|
3
4
|
declare const _default: {
|
|
@@ -22,8 +23,8 @@ declare const _default: {
|
|
|
22
23
|
plugins: {
|
|
23
24
|
unicorn: eslint.ESLint.Plugin & {
|
|
24
25
|
configs: {
|
|
25
|
-
recommended: eslint.Linter.
|
|
26
|
-
all: eslint.Linter.
|
|
26
|
+
recommended: eslint.Linter.FlatConfig;
|
|
27
|
+
all: eslint.Linter.FlatConfig;
|
|
27
28
|
"flat/all": eslint.Linter.FlatConfig;
|
|
28
29
|
"flat/recommended": eslint.Linter.FlatConfig;
|
|
29
30
|
};
|
|
@@ -36,6 +37,7 @@ declare const _default: {
|
|
|
36
37
|
'unicorn/consistent-function-scoping': (string | {
|
|
37
38
|
checkArrowFunctions: boolean;
|
|
38
39
|
})[];
|
|
40
|
+
'unicorn/consistent-date-clone': string;
|
|
39
41
|
'unicorn/custom-error-definition': string;
|
|
40
42
|
'unicorn/error-message': string;
|
|
41
43
|
'unicorn/escape-case': string;
|
|
@@ -53,7 +55,7 @@ declare const _default: {
|
|
|
53
55
|
'unicorn/no-console-spaces': string;
|
|
54
56
|
'unicorn/no-for-loop': string;
|
|
55
57
|
'unicorn/no-hex-escape': string;
|
|
56
|
-
'unicorn/no-instanceof-
|
|
58
|
+
'unicorn/no-instanceof-builtins': string;
|
|
57
59
|
'unicorn/no-invalid-remove-event-listener': string;
|
|
58
60
|
'unicorn/no-lonely-if': string;
|
|
59
61
|
'unicorn/no-negation-in-equality-check': string;
|
|
@@ -1251,7 +1253,15 @@ declare const _default: {
|
|
|
1251
1253
|
markdown: eslint.Linter.Config<eslint.Linter.RulesRecord>[];
|
|
1252
1254
|
prettier: eslint.Linter.Config<eslint.Linter.RulesRecord>;
|
|
1253
1255
|
sonarjs: eslint.Linter.Config<eslint.Linter.RulesRecord>[];
|
|
1254
|
-
security:
|
|
1256
|
+
security: {
|
|
1257
|
+
name: string;
|
|
1258
|
+
plugins: {
|
|
1259
|
+
security: typeof eslint_plugin_security;
|
|
1260
|
+
};
|
|
1261
|
+
rules: {
|
|
1262
|
+
'security/detect-object-injection': string;
|
|
1263
|
+
};
|
|
1264
|
+
};
|
|
1255
1265
|
playwright: {
|
|
1256
1266
|
name: string;
|
|
1257
1267
|
files?: Array<string | string[]>;
|
|
@@ -1292,8 +1302,8 @@ declare const reactPreset: ({
|
|
|
1292
1302
|
plugins: {
|
|
1293
1303
|
unicorn: eslint.ESLint.Plugin & {
|
|
1294
1304
|
configs: {
|
|
1295
|
-
recommended: eslint.Linter.
|
|
1296
|
-
all: eslint.Linter.
|
|
1305
|
+
recommended: eslint.Linter.FlatConfig;
|
|
1306
|
+
all: eslint.Linter.FlatConfig;
|
|
1297
1307
|
"flat/all": eslint.Linter.FlatConfig;
|
|
1298
1308
|
"flat/recommended": eslint.Linter.FlatConfig;
|
|
1299
1309
|
};
|
|
@@ -1306,6 +1316,7 @@ declare const reactPreset: ({
|
|
|
1306
1316
|
'unicorn/consistent-function-scoping': (string | {
|
|
1307
1317
|
checkArrowFunctions: boolean;
|
|
1308
1318
|
})[];
|
|
1319
|
+
'unicorn/consistent-date-clone': string;
|
|
1309
1320
|
'unicorn/custom-error-definition': string;
|
|
1310
1321
|
'unicorn/error-message': string;
|
|
1311
1322
|
'unicorn/escape-case': string;
|
|
@@ -1323,7 +1334,7 @@ declare const reactPreset: ({
|
|
|
1323
1334
|
'unicorn/no-console-spaces': string;
|
|
1324
1335
|
'unicorn/no-for-loop': string;
|
|
1325
1336
|
'unicorn/no-hex-escape': string;
|
|
1326
|
-
'unicorn/no-instanceof-
|
|
1337
|
+
'unicorn/no-instanceof-builtins': string;
|
|
1327
1338
|
'unicorn/no-invalid-remove-event-listener': string;
|
|
1328
1339
|
'unicorn/no-lonely-if': string;
|
|
1329
1340
|
'unicorn/no-negation-in-equality-check': string;
|
|
@@ -2515,6 +2526,14 @@ declare const reactPreset: ({
|
|
|
2515
2526
|
setImmediate: false;
|
|
2516
2527
|
};
|
|
2517
2528
|
};
|
|
2529
|
+
} | {
|
|
2530
|
+
name: string;
|
|
2531
|
+
plugins: {
|
|
2532
|
+
security: typeof eslint_plugin_security;
|
|
2533
|
+
};
|
|
2534
|
+
rules: {
|
|
2535
|
+
'security/detect-object-injection': string;
|
|
2536
|
+
};
|
|
2518
2537
|
})[];
|
|
2519
2538
|
declare const vuePreset: ({
|
|
2520
2539
|
name: string;
|
|
@@ -2536,8 +2555,8 @@ declare const vuePreset: ({
|
|
|
2536
2555
|
plugins: {
|
|
2537
2556
|
unicorn: eslint.ESLint.Plugin & {
|
|
2538
2557
|
configs: {
|
|
2539
|
-
recommended: eslint.Linter.
|
|
2540
|
-
all: eslint.Linter.
|
|
2558
|
+
recommended: eslint.Linter.FlatConfig;
|
|
2559
|
+
all: eslint.Linter.FlatConfig;
|
|
2541
2560
|
"flat/all": eslint.Linter.FlatConfig;
|
|
2542
2561
|
"flat/recommended": eslint.Linter.FlatConfig;
|
|
2543
2562
|
};
|
|
@@ -2550,6 +2569,7 @@ declare const vuePreset: ({
|
|
|
2550
2569
|
'unicorn/consistent-function-scoping': (string | {
|
|
2551
2570
|
checkArrowFunctions: boolean;
|
|
2552
2571
|
})[];
|
|
2572
|
+
'unicorn/consistent-date-clone': string;
|
|
2553
2573
|
'unicorn/custom-error-definition': string;
|
|
2554
2574
|
'unicorn/error-message': string;
|
|
2555
2575
|
'unicorn/escape-case': string;
|
|
@@ -2567,7 +2587,7 @@ declare const vuePreset: ({
|
|
|
2567
2587
|
'unicorn/no-console-spaces': string;
|
|
2568
2588
|
'unicorn/no-for-loop': string;
|
|
2569
2589
|
'unicorn/no-hex-escape': string;
|
|
2570
|
-
'unicorn/no-instanceof-
|
|
2590
|
+
'unicorn/no-instanceof-builtins': string;
|
|
2571
2591
|
'unicorn/no-invalid-remove-event-listener': string;
|
|
2572
2592
|
'unicorn/no-lonely-if': string;
|
|
2573
2593
|
'unicorn/no-negation-in-equality-check': string;
|
|
@@ -3759,6 +3779,14 @@ declare const vuePreset: ({
|
|
|
3759
3779
|
setImmediate: false;
|
|
3760
3780
|
};
|
|
3761
3781
|
};
|
|
3782
|
+
} | {
|
|
3783
|
+
name: string;
|
|
3784
|
+
plugins: {
|
|
3785
|
+
security: typeof eslint_plugin_security;
|
|
3786
|
+
};
|
|
3787
|
+
rules: {
|
|
3788
|
+
'security/detect-object-injection': string;
|
|
3789
|
+
};
|
|
3762
3790
|
})[];
|
|
3763
3791
|
declare const vueSkyline: ({
|
|
3764
3792
|
name: string;
|
|
@@ -3780,8 +3808,8 @@ declare const vueSkyline: ({
|
|
|
3780
3808
|
plugins: {
|
|
3781
3809
|
unicorn: eslint.ESLint.Plugin & {
|
|
3782
3810
|
configs: {
|
|
3783
|
-
recommended: eslint.Linter.
|
|
3784
|
-
all: eslint.Linter.
|
|
3811
|
+
recommended: eslint.Linter.FlatConfig;
|
|
3812
|
+
all: eslint.Linter.FlatConfig;
|
|
3785
3813
|
"flat/all": eslint.Linter.FlatConfig;
|
|
3786
3814
|
"flat/recommended": eslint.Linter.FlatConfig;
|
|
3787
3815
|
};
|
|
@@ -3794,6 +3822,7 @@ declare const vueSkyline: ({
|
|
|
3794
3822
|
'unicorn/consistent-function-scoping': (string | {
|
|
3795
3823
|
checkArrowFunctions: boolean;
|
|
3796
3824
|
})[];
|
|
3825
|
+
'unicorn/consistent-date-clone': string;
|
|
3797
3826
|
'unicorn/custom-error-definition': string;
|
|
3798
3827
|
'unicorn/error-message': string;
|
|
3799
3828
|
'unicorn/escape-case': string;
|
|
@@ -3811,7 +3840,7 @@ declare const vueSkyline: ({
|
|
|
3811
3840
|
'unicorn/no-console-spaces': string;
|
|
3812
3841
|
'unicorn/no-for-loop': string;
|
|
3813
3842
|
'unicorn/no-hex-escape': string;
|
|
3814
|
-
'unicorn/no-instanceof-
|
|
3843
|
+
'unicorn/no-instanceof-builtins': string;
|
|
3815
3844
|
'unicorn/no-invalid-remove-event-listener': string;
|
|
3816
3845
|
'unicorn/no-lonely-if': string;
|
|
3817
3846
|
'unicorn/no-negation-in-equality-check': string;
|
|
@@ -5003,6 +5032,14 @@ declare const vueSkyline: ({
|
|
|
5003
5032
|
setImmediate: false;
|
|
5004
5033
|
};
|
|
5005
5034
|
};
|
|
5035
|
+
} | {
|
|
5036
|
+
name: string;
|
|
5037
|
+
plugins: {
|
|
5038
|
+
security: typeof eslint_plugin_security;
|
|
5039
|
+
};
|
|
5040
|
+
rules: {
|
|
5041
|
+
'security/detect-object-injection': string;
|
|
5042
|
+
};
|
|
5006
5043
|
} | {
|
|
5007
5044
|
files: string[];
|
|
5008
5045
|
rules: {
|
package/dist/index.js
CHANGED
|
@@ -24,12 +24,12 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
24
24
|
mod
|
|
25
25
|
));
|
|
26
26
|
|
|
27
|
-
// ../../node_modules/.pnpm/@eslint+js@9.
|
|
27
|
+
// ../../node_modules/.pnpm/@eslint+js@9.21.0/node_modules/@eslint/js/package.json
|
|
28
28
|
var require_package = __commonJS({
|
|
29
|
-
"../../node_modules/.pnpm/@eslint+js@9.
|
|
29
|
+
"../../node_modules/.pnpm/@eslint+js@9.21.0/node_modules/@eslint/js/package.json"(exports, module) {
|
|
30
30
|
module.exports = {
|
|
31
31
|
name: "@eslint/js",
|
|
32
|
-
version: "9.
|
|
32
|
+
version: "9.21.0",
|
|
33
33
|
description: "ESLint JavaScript language implementation",
|
|
34
34
|
main: "./src/index.js",
|
|
35
35
|
types: "./types/index.d.ts",
|
|
@@ -65,9 +65,9 @@ var require_package = __commonJS({
|
|
|
65
65
|
}
|
|
66
66
|
});
|
|
67
67
|
|
|
68
|
-
// ../../node_modules/.pnpm/@eslint+js@9.
|
|
68
|
+
// ../../node_modules/.pnpm/@eslint+js@9.21.0/node_modules/@eslint/js/src/configs/eslint-all.js
|
|
69
69
|
var require_eslint_all = __commonJS({
|
|
70
|
-
"../../node_modules/.pnpm/@eslint+js@9.
|
|
70
|
+
"../../node_modules/.pnpm/@eslint+js@9.21.0/node_modules/@eslint/js/src/configs/eslint-all.js"(exports, module) {
|
|
71
71
|
"use strict";
|
|
72
72
|
module.exports = Object.freeze({
|
|
73
73
|
"rules": {
|
|
@@ -273,9 +273,9 @@ var require_eslint_all = __commonJS({
|
|
|
273
273
|
}
|
|
274
274
|
});
|
|
275
275
|
|
|
276
|
-
// ../../node_modules/.pnpm/@eslint+js@9.
|
|
276
|
+
// ../../node_modules/.pnpm/@eslint+js@9.21.0/node_modules/@eslint/js/src/configs/eslint-recommended.js
|
|
277
277
|
var require_eslint_recommended = __commonJS({
|
|
278
|
-
"../../node_modules/.pnpm/@eslint+js@9.
|
|
278
|
+
"../../node_modules/.pnpm/@eslint+js@9.21.0/node_modules/@eslint/js/src/configs/eslint-recommended.js"(exports, module) {
|
|
279
279
|
"use strict";
|
|
280
280
|
module.exports = Object.freeze({
|
|
281
281
|
rules: Object.freeze({
|
|
@@ -345,9 +345,9 @@ var require_eslint_recommended = __commonJS({
|
|
|
345
345
|
}
|
|
346
346
|
});
|
|
347
347
|
|
|
348
|
-
// ../../node_modules/.pnpm/@eslint+js@9.
|
|
348
|
+
// ../../node_modules/.pnpm/@eslint+js@9.21.0/node_modules/@eslint/js/src/index.js
|
|
349
349
|
var require_src = __commonJS({
|
|
350
|
-
"../../node_modules/.pnpm/@eslint+js@9.
|
|
350
|
+
"../../node_modules/.pnpm/@eslint+js@9.21.0/node_modules/@eslint/js/src/index.js"(exports, module) {
|
|
351
351
|
"use strict";
|
|
352
352
|
var { name, version } = require_package();
|
|
353
353
|
module.exports = {
|
|
@@ -374,7 +374,7 @@ import { default as default7 } from "eslint-plugin-jsx-a11y";
|
|
|
374
374
|
import { default as default8 } from "eslint-plugin-vue";
|
|
375
375
|
import { default as default9 } from "vue-eslint-parser";
|
|
376
376
|
import { default as default10 } from "eslint-plugin-prettier";
|
|
377
|
-
import { default as default11 } from "eslint-
|
|
377
|
+
import { default as default11 } from "eslint-plugin-prettier/recommended";
|
|
378
378
|
import { default as default12 } from "eslint-plugin-sonarjs";
|
|
379
379
|
import { default as default13 } from "eslint-plugin-security";
|
|
380
380
|
import { default as default14 } from "eslint-plugin-playwright";
|
|
@@ -384,6 +384,7 @@ import { default as default17 } from "eslint-plugin-import";
|
|
|
384
384
|
import { default as default18 } from "eslint-plugin-markdown";
|
|
385
385
|
import { default as default19 } from "@eslint-community/eslint-plugin-eslint-comments/configs";
|
|
386
386
|
import { default as default20 } from "eslint-plugin-unicorn";
|
|
387
|
+
import { default as default21 } from "eslint-plugin-de-morgan";
|
|
387
388
|
|
|
388
389
|
// configs/javascript.ts
|
|
389
390
|
var isProduction = process.env.NODE_ENV === "production";
|
|
@@ -495,6 +496,7 @@ var unicornConfig = {
|
|
|
495
496
|
"unicorn/consistent-empty-array-spread": "error",
|
|
496
497
|
"unicorn/consistent-existence-index-check": "error",
|
|
497
498
|
"unicorn/consistent-function-scoping": ["error", { checkArrowFunctions: false }],
|
|
499
|
+
"unicorn/consistent-date-clone": "error",
|
|
498
500
|
"unicorn/custom-error-definition": "error",
|
|
499
501
|
"unicorn/error-message": "error",
|
|
500
502
|
"unicorn/escape-case": "error",
|
|
@@ -512,7 +514,7 @@ var unicornConfig = {
|
|
|
512
514
|
"unicorn/no-console-spaces": "error",
|
|
513
515
|
"unicorn/no-for-loop": "error",
|
|
514
516
|
"unicorn/no-hex-escape": "error",
|
|
515
|
-
"unicorn/no-instanceof-
|
|
517
|
+
"unicorn/no-instanceof-builtins": "error",
|
|
516
518
|
"unicorn/no-invalid-remove-event-listener": "error",
|
|
517
519
|
"unicorn/no-lonely-if": "error",
|
|
518
520
|
"unicorn/no-negation-in-equality-check": "error",
|
|
@@ -560,21 +562,20 @@ var unicornConfig = {
|
|
|
560
562
|
|
|
561
563
|
// configs/markdown.ts
|
|
562
564
|
var markdownConfigs = default18.configs.recommended.map((config) => {
|
|
563
|
-
const { name, rules:
|
|
565
|
+
const { name, rules: rules5 } = config;
|
|
564
566
|
const baseConfig = {
|
|
565
567
|
...config,
|
|
566
568
|
name: `component-hook/${name}`
|
|
567
569
|
};
|
|
568
|
-
if (
|
|
570
|
+
if (rules5) {
|
|
569
571
|
baseConfig.rules = {
|
|
570
|
-
...
|
|
572
|
+
...rules5,
|
|
571
573
|
"no-alert": "off",
|
|
572
574
|
"no-console": "off",
|
|
573
575
|
"no-restricted-imports": "off",
|
|
574
576
|
"no-undef": "off",
|
|
575
577
|
"no-unused-expressions": "off",
|
|
576
578
|
"no-unused-vars": "off",
|
|
577
|
-
"@typescript-eslint/comma-dangle": "off",
|
|
578
579
|
"@typescript-eslint/consistent-type-imports": "off",
|
|
579
580
|
"@typescript-eslint/no-extraneous-class": "off",
|
|
580
581
|
"@typescript-eslint/no-namespace": "off",
|
|
@@ -585,7 +586,8 @@ var markdownConfigs = default18.configs.recommended.map((config) => {
|
|
|
585
586
|
"@typescript-eslint/no-use-before-define": "off",
|
|
586
587
|
"import/no-default-export": "off",
|
|
587
588
|
"sonarjs/no-dead-store": "off",
|
|
588
|
-
"sonarjs/
|
|
589
|
+
"sonarjs/unused-import": "off",
|
|
590
|
+
"sonarjs/no-unused-vars": "off"
|
|
589
591
|
};
|
|
590
592
|
}
|
|
591
593
|
return baseConfig;
|
|
@@ -597,16 +599,22 @@ var regexpConfig = {
|
|
|
597
599
|
name: "component-hook/regexp"
|
|
598
600
|
};
|
|
599
601
|
|
|
602
|
+
// configs/de-morgan.ts
|
|
603
|
+
var deMorganConfig = {
|
|
604
|
+
...default21.configs.recommended,
|
|
605
|
+
name: "component-hook/de-morgan"
|
|
606
|
+
};
|
|
607
|
+
|
|
600
608
|
// configs/prettier.ts
|
|
601
|
-
var
|
|
609
|
+
var rules3 = { ...default11.rules };
|
|
610
|
+
delete rules3["vue/html-self-closing"];
|
|
602
611
|
var prettierConfig = {
|
|
603
612
|
name: "component-hook/prettier",
|
|
604
613
|
plugins: {
|
|
605
614
|
prettier: default10
|
|
606
615
|
},
|
|
607
616
|
rules: {
|
|
608
|
-
...
|
|
609
|
-
...recommended.rules,
|
|
617
|
+
...rules3,
|
|
610
618
|
"prettier/prettier": "warn"
|
|
611
619
|
}
|
|
612
620
|
};
|
|
@@ -636,8 +644,7 @@ var sonarjsConfigs = [
|
|
|
636
644
|
plugins: plugins2,
|
|
637
645
|
rules: {
|
|
638
646
|
...default12.configs.recommended.rules,
|
|
639
|
-
"sonarjs/no-commented-code": "warn"
|
|
640
|
-
"sonarjs/no-vue-bypass-sanitization": "warn"
|
|
647
|
+
"sonarjs/no-commented-code": "warn"
|
|
641
648
|
},
|
|
642
649
|
settings
|
|
643
650
|
},
|
|
@@ -697,7 +704,8 @@ var reactConfigs = [
|
|
|
697
704
|
];
|
|
698
705
|
|
|
699
706
|
// configs/vue.ts
|
|
700
|
-
var
|
|
707
|
+
var recommendedRules = default8.configs["flat/recommended"].map((config) => config.rules).reduce((acc, rules5) => ({ ...acc, ...rules5 }), {});
|
|
708
|
+
var rules4 = {
|
|
701
709
|
"vue/block-order": ["error", { order: ["script", "template", "style"] }],
|
|
702
710
|
"vue/custom-event-name-casing": ["error", "camelCase"],
|
|
703
711
|
"vue/eqeqeq": ["error", "smart"],
|
|
@@ -747,6 +755,7 @@ var vueConfigs = [
|
|
|
747
755
|
...eslintConfigTypescript,
|
|
748
756
|
{
|
|
749
757
|
name: "component-hook/vue/globals",
|
|
758
|
+
files: ["**/*.vue"],
|
|
750
759
|
languageOptions: {
|
|
751
760
|
globals: {
|
|
752
761
|
defineProps: "readonly",
|
|
@@ -784,11 +793,8 @@ var vueConfigs = [
|
|
|
784
793
|
},
|
|
785
794
|
processor: default8.processors[".vue"],
|
|
786
795
|
rules: {
|
|
787
|
-
...
|
|
788
|
-
...
|
|
789
|
-
...default8.configs["vue3-strongly-recommended"].rules,
|
|
790
|
-
...default8.configs["vue3-recommended"].rules,
|
|
791
|
-
...rules3
|
|
796
|
+
...recommendedRules,
|
|
797
|
+
...rules4
|
|
792
798
|
}
|
|
793
799
|
}
|
|
794
800
|
];
|
|
@@ -850,7 +856,7 @@ var ignores = {
|
|
|
850
856
|
"**/yarn.lock",
|
|
851
857
|
"**/package-lock.json",
|
|
852
858
|
"**/bun.lockb",
|
|
853
|
-
"
|
|
859
|
+
"output",
|
|
854
860
|
"**/coverage",
|
|
855
861
|
"**/playwright-report",
|
|
856
862
|
"**/temp",
|
|
@@ -884,6 +890,7 @@ var basicConfigs = [
|
|
|
884
890
|
...importConfigs,
|
|
885
891
|
unicornConfig,
|
|
886
892
|
regexpConfig,
|
|
893
|
+
deMorganConfig,
|
|
887
894
|
{
|
|
888
895
|
name: "component-hook/globals",
|
|
889
896
|
languageOptions: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@component-hook/eslint-plugin",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "ESLint config for component hook",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -34,30 +34,30 @@
|
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@eslint-community/eslint-plugin-eslint-comments": "^4.4.1",
|
|
37
|
-
"@eslint/compat": "^1.2.
|
|
38
|
-
"eslint-
|
|
37
|
+
"@eslint/compat": "^1.2.7",
|
|
38
|
+
"eslint-plugin-de-morgan": "^1.2.1",
|
|
39
39
|
"eslint-plugin-import": "^2.31.0",
|
|
40
40
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
41
41
|
"eslint-plugin-markdown": "^5.1.0",
|
|
42
|
-
"eslint-plugin-playwright": "^2.
|
|
42
|
+
"eslint-plugin-playwright": "^2.2.0",
|
|
43
43
|
"eslint-plugin-prettier": "^5.2.3",
|
|
44
44
|
"eslint-plugin-react": "^7.37.4",
|
|
45
|
-
"eslint-plugin-react-hooks": "^5.
|
|
45
|
+
"eslint-plugin-react-hooks": "^5.2.0",
|
|
46
46
|
"eslint-plugin-regexp": "^2.7.0",
|
|
47
47
|
"eslint-plugin-security": "^3.0.1",
|
|
48
|
-
"eslint-plugin-sonarjs": "^3.0.
|
|
48
|
+
"eslint-plugin-sonarjs": "^3.0.2",
|
|
49
49
|
"eslint-plugin-testing-library": "^7.1.1",
|
|
50
|
-
"eslint-plugin-unicorn": "^
|
|
51
|
-
"eslint-plugin-vue": "^
|
|
52
|
-
"globals": "^
|
|
53
|
-
"typescript-eslint": "^8.
|
|
50
|
+
"eslint-plugin-unicorn": "^57.0.0",
|
|
51
|
+
"eslint-plugin-vue": "^10.0.0",
|
|
52
|
+
"globals": "^16.0.0",
|
|
53
|
+
"typescript-eslint": "^8.26.1",
|
|
54
54
|
"vue-eslint-parser": "^9.4.3"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@eslint/config-inspector": "^1.0.
|
|
57
|
+
"@eslint/config-inspector": "^1.0.2",
|
|
58
58
|
"@types/eslint": "^9.6.1",
|
|
59
59
|
"@types/eslint-plugin-security": "^3.0.0",
|
|
60
|
-
"@types/eslint__js": "^
|
|
60
|
+
"@types/eslint__js": "^9.14.0"
|
|
61
61
|
},
|
|
62
62
|
"scripts": {
|
|
63
63
|
"dev": "eslint-config-inspector --config ../../eslint.config.js",
|