@ethang/eslint-config 19.15.2 → 19.15.3

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.
Files changed (51) hide show
  1. package/chunk-NR4FIKOF.js +8 -0
  2. package/chunk-NR4FIKOF.js.map +1 -0
  3. package/config.astro.js +10 -11
  4. package/config.astro.js.map +1 -0
  5. package/config.react.js +13 -18
  6. package/config.react.js.map +1 -0
  7. package/config.solid.js +9 -10
  8. package/config.solid.js.map +1 -0
  9. package/constants.js +3 -11
  10. package/constants.js.map +1 -0
  11. package/eslint.config.js +79 -70
  12. package/eslint.config.js.map +1 -0
  13. package/package.json +21 -54
  14. package/.gitattributes +0 -1
  15. package/.github/dependabot.yml +0 -13
  16. package/.idea/codeStyles/Project.xml +0 -57
  17. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  18. package/README.md +0 -98
  19. package/build/create-config-file.ts +0 -51
  20. package/build/create-config.ts +0 -63
  21. package/build/get-react-version.ts +0 -4
  22. package/build/list-utils.ts +0 -102
  23. package/build/rule-list.ts +0 -293
  24. package/build/update-readme.ts +0 -180
  25. package/build/update-rules.ts +0 -101
  26. package/build.mjs +0 -16
  27. package/setup/a11y.ts +0 -18
  28. package/setup/astro.ts +0 -13
  29. package/setup/barrel.ts +0 -13
  30. package/setup/compat.ts +0 -12
  31. package/setup/cspell.ts +0 -55
  32. package/setup/depend.ts +0 -13
  33. package/setup/deprecated.ts +0 -18
  34. package/setup/eslint.ts +0 -237
  35. package/setup/gen-rules.ts +0 -60
  36. package/setup/json.ts +0 -15
  37. package/setup/lodash.ts +0 -50
  38. package/setup/markdown.ts +0 -12
  39. package/setup/n.ts +0 -85
  40. package/setup/perfectionist.ts +0 -62
  41. package/setup/react.ts +0 -77
  42. package/setup/solid.ts +0 -15
  43. package/setup/sonar.ts +0 -43
  44. package/setup/stylistic-ts.ts +0 -51
  45. package/setup/stylistic.ts +0 -68
  46. package/setup/tailwind.ts +0 -8
  47. package/setup/tanstack-query.ts +0 -8
  48. package/setup/tanstack-router.ts +0 -7
  49. package/setup/typescript-eslint.ts +0 -112
  50. package/setup/unicorn.ts +0 -37
  51. package/tsconfig.json +0 -10
package/setup/react.ts DELETED
@@ -1,77 +0,0 @@
1
- import react from "@eslint-react/eslint-plugin";
2
- // @ts-expect-error no types
3
- import reactHooks from "eslint-plugin-react-hooks";
4
- // @ts-expect-error no types
5
- import compiler from "eslint-plugin-react-compiler";
6
-
7
- import { genRules, getNonDeprecatedRules } from "./gen-rules.ts";
8
-
9
- // @ts-expect-error ignore types
10
- const reactRuleNames = Object.keys(getNonDeprecatedRules(react.rules));
11
- const customReactRules = [
12
- {
13
- name: "avoid-shorthand-boolean",
14
- rule: "off",
15
- },
16
- {
17
- name: "avoid-shorthand-fragment",
18
- rule: "off",
19
- },
20
- {
21
- name: "debug/class-component",
22
- rule: "off",
23
- },
24
- {
25
- name: "debug/function-component",
26
- rule: "off",
27
- },
28
- {
29
- name: "debug/hook",
30
- rule: "off",
31
- },
32
- {
33
- name: "debug/is-from-react",
34
- rule: "off",
35
- },
36
- {
37
- name: "debug/react-hooks",
38
- rule: "off",
39
- },
40
- {
41
- name: "naming-convention/filename",
42
- rule: ["error", { rule: "kebab-case" }],
43
- },
44
- {
45
- name: "prefer-react-namespace-import", // TODO failing after updates
46
- rule: "off",
47
- },
48
- ];
49
- const reactGen = genRules(reactRuleNames, customReactRules, "react");
50
-
51
- const reactHookRuleNames = Object.keys(reactHooks.rules);
52
- const customHookRules = [
53
- {
54
- name: "exhaustive-deps",
55
- rule: "error",
56
- },
57
- {
58
- name: "rules-of-hooks",
59
- rule: "error",
60
- },
61
- ];
62
- const hookGen = genRules(reactHookRuleNames, customHookRules, "react-hooks");
63
-
64
- const reactCompilerRuleNames = Object.keys(compiler.rules);
65
- const compilerGen = genRules(reactCompilerRuleNames, [], "react-compiler");
66
-
67
- export const reactRules = {
68
- ...reactGen,
69
- };
70
-
71
- export const reactHookRules = {
72
- ...hookGen,
73
- };
74
-
75
- export const reactCompilerRules = {
76
- ...compilerGen,
77
- };
package/setup/solid.ts DELETED
@@ -1,15 +0,0 @@
1
- import solid from "eslint-plugin-solid";
2
-
3
- import { EsLintRules, genRules, getNonDeprecatedRules } from "./gen-rules.ts";
4
-
5
- const ruleNames = Object.keys(
6
- getNonDeprecatedRules(solid.rules as unknown as EsLintRules),
7
- );
8
- const customRules = [
9
- {
10
- name: "no-proxy-apis",
11
- rule: "off",
12
- },
13
- ];
14
-
15
- export const solidRules = genRules(ruleNames, customRules, "solid");
package/setup/sonar.ts DELETED
@@ -1,43 +0,0 @@
1
- /* eslint-disable */
2
- import sonar from "eslint-plugin-sonarjs";
3
- import { genRules, getNonDeprecatedRules } from "./gen-rules.ts";
4
-
5
- const ruleNames = Object.keys(getNonDeprecatedRules(sonar.rules));
6
- const customRules = [
7
- { name: "arrow-function-convention", rule: "off" },
8
- { name: "comment-regex", rule: "off" },
9
- { name: "cyclomatic-complexity", rule: "off" },
10
- { name: "file-header", rule: "off" },
11
- {
12
- name: "function-name",
13
- rule: [
14
- "error",
15
- {
16
- format: "^(?:[a-z][a-zA-Z0-9]*|[A-Z][A-Z0-9]*)$",
17
- },
18
- ],
19
- },
20
- { name: "function-return-type", rule: "off" },
21
- { name: "max-union-size", rule: "off" },
22
- { name: "new-cap", rule: "off" },
23
- { name: "no-implicit-dependencies", rule: "off" },
24
- { name: "no-inconsistent-returns", rule: "off" },
25
- { name: "no-reference-error", rule: "off" }, // TODO bug: reports globals
26
- { name: "no-undefined-assignment", rule: "off" },
27
- { name: "shorthand-property-grouping", rule: "off" }, // Conflicts with perfectionist sorting
28
- { name: "sonar-no-fallthrough", rule: "off" }, // TODO readd with v9 compat?
29
- { name: "sonar-no-magic-numbers", rule: "off" },
30
- { name: "switch-without-default", rule: "off" }, // @typescript-eslint/switch-exhaustiveness-check works better
31
- { name: "todo-tag", rule: "off" },
32
- ];
33
-
34
- const rules = genRules(ruleNames, customRules, "sonar");
35
-
36
- // Turn off duplicate S# rules
37
- for (const key of Object.keys(rules)) {
38
- if (/^sonar\/S\d+/.test(key)) {
39
- rules[key] = "off";
40
- }
41
- }
42
-
43
- export const sonarRules = rules;
@@ -1,51 +0,0 @@
1
- import stylisticTs from "@stylistic/eslint-plugin-ts";
2
- import { genRules, getNonDeprecatedRules } from "./gen-rules.js";
3
-
4
- const ruleNames = Object.keys(getNonDeprecatedRules(stylisticTs.rules));
5
-
6
- const customRules = [
7
- {
8
- name: "comma-dangle",
9
- rule: [
10
- "error",
11
- {
12
- arrays: "always-multiline",
13
- objects: "always-multiline",
14
- imports: "always-multiline",
15
- exports: "always-multiline",
16
- functions: "always-multiline",
17
- enums: "never",
18
- generics: "always",
19
- tuples: "never",
20
- },
21
- ],
22
- },
23
- { name: "indent", rule: ["error", 2] },
24
- {
25
- name: "no-extra-parens",
26
- rule: ["error", "all", { ignoreJSX: "multi-line" }],
27
- },
28
- {
29
- name: "object-curly-newline",
30
- rule: ["error", { multiline: true, consistent: true }],
31
- },
32
- { name: "object-curly-spacing", rule: ["error", "always"] },
33
- { name: "quote-props", rule: ["error", "as-needed"] },
34
- {
35
- name: "space-before-function-paren",
36
- rule: [
37
- "error",
38
- {
39
- anonymous: "always",
40
- named: "never",
41
- asyncArrow: "always",
42
- },
43
- ],
44
- },
45
- ];
46
-
47
- export const stylisticTsRules = genRules(
48
- ruleNames,
49
- customRules,
50
- "stylistic-ts",
51
- );
@@ -1,68 +0,0 @@
1
- /* eslint-disable */
2
- import stylistic from "@stylistic/eslint-plugin";
3
- import { genRules, getNonDeprecatedRules } from "./gen-rules.ts";
4
-
5
- // @ts-expect-error this exists
6
- const ruleNames = Object.keys(getNonDeprecatedRules(stylistic.rules));
7
- const customRules = [
8
- { name: "block-spacing", rule: "off" }, // TS
9
- { name: "brace-style", rule: "off" }, // TS
10
- { name: "comma-dangle", rule: "off" }, // TS
11
- { name: "comma-spacing", rule: "off" }, // TS
12
- { name: "func-call-spacing", rule: "off" }, // TS
13
- { name: "function-call-spacing", rule: "off" }, // TS
14
- { name: "indent", rule: "off" }, // TS
15
- { name: "keyword-spacing", rule: "off" }, // TS
16
- { name: "lines-around-comment", rule: "off" }, // TS
17
- { name: "lines-between-class-members", rule: "off" }, // TS
18
- { name: "member-delimiter-style", rule: "off" }, // TS
19
- { name: "no-extra-parens", rule: "off" }, // TS
20
- { name: "no-extra-semi", rule: "off" }, // TS
21
- { name: "object-curly-newline", rule: "off" }, // TS
22
- { name: "object-curly-spacing", rule: "off" }, // TS
23
- { name: "object-property-newline", rule: "off" }, // TS
24
- { name: "padding-line-between-statements", rule: "off" }, // TS
25
- { name: "quote-props", rule: "off" }, // TS
26
- { name: "quotes", rule: "off" }, // TS
27
- { name: "semi", rule: "off" }, // TS
28
- { name: "space-before-blocks", rule: "off" }, // TS
29
- { name: "space-before-function-paren", rule: "off" }, // TS
30
- { name: "space-infix-ops", rule: "off" }, // TS
31
- { name: "type-annotation-spacing", rule: "off" }, // TS
32
-
33
- { name: "array-bracket-newline", rule: ["error", "consistent"] },
34
- { name: "array-element-newline", rule: ["error", "consistent"] },
35
- { name: "dot-location", rule: ["error", "property"] },
36
- { name: "function-call-argument-newline", rule: ["error", "consistent"] },
37
- { name: "function-paren-newline", rule: ["error", "consistent"] },
38
- { name: "line-comment-position", rule: "off" },
39
- {
40
- name: "max-len",
41
- rule: [
42
- "error",
43
- {
44
- ignoreComments: true,
45
- ignoreTrailingComments: true,
46
- ignoreUrls: true,
47
- ignoreStrings: true,
48
- ignoreTemplateLiterals: true,
49
- ignoreRegExpLiterals: true,
50
- },
51
- ],
52
- },
53
- { name: "multiline-comment-style", rule: "off" },
54
- {
55
- name: "no-multiple-empty-lines",
56
- rule: ["error", { max: 1, maxEOF: 1, maxBOF: 0 }],
57
- },
58
- { name: "padded-blocks", rule: ["error", "never"] },
59
- { name: "jsx-indent-props", rule: ["error", 2] },
60
- { name: "jsx-newline", rule: ["error", { prevent: true }] },
61
- { name: "jsx-sort-props", rule: "off" },
62
- {
63
- name: "jsx-wrap-multilines",
64
- rule: ["error", { declaration: "parens-new-line" }],
65
- },
66
- ];
67
-
68
- export const stylisticRules = genRules(ruleNames, customRules, "stylistic");
package/setup/tailwind.ts DELETED
@@ -1,8 +0,0 @@
1
- /* eslint-disable */
2
- import tailwind from "eslint-plugin-tailwindcss";
3
- import { genRules, getNonDeprecatedRules } from "./gen-rules.ts";
4
-
5
- const ruleNames = Object.keys(getNonDeprecatedRules(tailwind.rules ?? {}));
6
- const customRules = [{ name: "no-custom-classname", rule: "off" }];
7
-
8
- export const tailwindRules = genRules(ruleNames, customRules, "tailwind");
@@ -1,8 +0,0 @@
1
- import tanstack from "@tanstack/eslint-plugin-query";
2
-
3
- import { genRules, getNonDeprecatedRules } from "./gen-rules.ts";
4
-
5
- // @ts-expect-error it's fine
6
- const ruleNames = Object.keys(getNonDeprecatedRules(tanstack.rules));
7
-
8
- export const tanstackQueryRules = genRules(ruleNames, [], "@tanstack/query");
@@ -1,7 +0,0 @@
1
- import tanstack from "@tanstack/eslint-plugin-router";
2
- import { genRules, getNonDeprecatedRules } from "./gen-rules.js";
3
-
4
- // @ts-expect-error it's fine
5
- const ruleNames = Object.keys(getNonDeprecatedRules(tanstack.rules));
6
-
7
- export const tanstackRouterRules = genRules(ruleNames, [], "@tanstack/router");
@@ -1,112 +0,0 @@
1
- import tseslint from "typescript-eslint";
2
-
3
- import { EsLintRules, genRules, getNonDeprecatedRules } from "./gen-rules.ts";
4
-
5
- const ruleNames = Object.keys(
6
- getNonDeprecatedRules(
7
- (tseslint.plugin.rules ?? {}) as unknown as EsLintRules,
8
- ),
9
- );
10
- const customRules = [
11
- {
12
- name: "adjacent-overload-signatures",
13
- rule: "off",
14
- },
15
- {
16
- name: "class-methods-use-this",
17
- rule: "off",
18
- },
19
- {
20
- name: "consistent-return",
21
- rule: "off",
22
- },
23
- {
24
- name: "consistent-type-definitions",
25
- rule: ["error", "type"],
26
- },
27
- {
28
- name: "consistent-type-imports",
29
- rule: ["error", { fixStyle: "inline-type-imports" }],
30
- },
31
- {
32
- name: "explicit-function-return-type",
33
- rule: "off",
34
- },
35
- {
36
- name: "explicit-module-boundary-types",
37
- rule: "off",
38
- },
39
- {
40
- name: "init-declarations",
41
- rule: "off",
42
- },
43
- {
44
- name: "member-ordering",
45
- rule: "off",
46
- },
47
- {
48
- name: "naming-convention",
49
- rule: "off",
50
- },
51
- {
52
- name: "no-dupe-class-members",
53
- rule: "off",
54
- },
55
- {
56
- name: "no-invalid-this",
57
- rule: "off",
58
- },
59
- {
60
- name: "no-magic-numbers",
61
- rule: "off",
62
- },
63
- {
64
- name: "no-redeclare",
65
- rule: "off",
66
- },
67
- {
68
- name: "no-unnecessary-type-parameters",
69
- rule: "off",
70
- },
71
- {
72
- name: "no-use-before-define",
73
- rule: "off",
74
- },
75
- {
76
- name: "parameter-properties",
77
- rule: "off",
78
- },
79
- {
80
- name: "prefer-readonly-parameter-types",
81
- rule: "off",
82
- },
83
- {
84
- name: "typedef",
85
- rule: "off",
86
- },
87
- {
88
- name: "max-params",
89
- rule: "off",
90
- },
91
- {
92
- name: "no-unused-vars",
93
- rule: [
94
- "error",
95
- {
96
- args: "all",
97
- argsIgnorePattern: "^_",
98
- caughtErrors: "all",
99
- caughtErrorsIgnorePattern: "^_",
100
- destructuredArrayIgnorePattern: "^_",
101
- ignoreRestSiblings: true,
102
- varsIgnorePattern: "^_",
103
- },
104
- ],
105
- },
106
- ];
107
-
108
- export const typescriptRules = genRules(
109
- ruleNames,
110
- customRules,
111
- "@typescript-eslint",
112
- );
package/setup/unicorn.ts DELETED
@@ -1,37 +0,0 @@
1
- import unicorn from "eslint-plugin-unicorn";
2
-
3
- import { genRules, getNonDeprecatedRules } from "./gen-rules.ts";
4
-
5
- const ruleNames = Object.keys(getNonDeprecatedRules(unicorn.rules ?? {}));
6
- const customRules = [
7
- {
8
- name: "empty-brace-spaces",
9
- rule: "off",
10
- },
11
- {
12
- name: "explicit-length-check",
13
- rule: "off",
14
- },
15
- {
16
- name: "no-keyword-prefix",
17
- rule: "off",
18
- },
19
- {
20
- name: "no-nested-ternary",
21
- rule: "off",
22
- },
23
- {
24
- name: "no-null",
25
- rule: "off",
26
- },
27
- {
28
- name: "number-literal-case",
29
- rule: "off",
30
- },
31
- {
32
- name: "template-indent",
33
- rule: "off",
34
- },
35
- ];
36
-
37
- export const unicornRules = genRules(ruleNames, customRules, "unicorn");
package/tsconfig.json DELETED
@@ -1,10 +0,0 @@
1
- {
2
- "extends": [
3
- "@tsconfig/node-lts/tsconfig.json",
4
- "@tsconfig/strictest/tsconfig.json"
5
- ],
6
- "compilerOptions": {
7
- "allowImportingTsExtensions": true,
8
- "lib": ["dom"]
9
- }
10
- }