eslint-plugin-wyrm 0.0.10 → 0.0.13
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 +79 -0
- package/README.md +114 -58
- package/bin/wyrm.mjs +3 -0
- package/dist/_virtual/_rolldown/runtime.mjs +14 -0
- package/dist/cli.d.mts +1 -0
- package/dist/cli.mjs +23 -0
- package/dist/configs/index.d.mts +2 -1
- package/dist/configs/index.mjs +6 -6
- package/dist/index.mjs +1 -4
- package/dist/plugin.mjs +1 -3
- package/dist/rules/array-from-array.d.mts +9 -0
- package/dist/rules/array-from-array.mjs +56 -0
- package/dist/rules/as-unknown-as.d.mts +9 -0
- package/dist/rules/as-unknown-as.mjs +30 -0
- package/dist/rules/await-promise-resolve.d.mts +9 -0
- package/dist/rules/await-promise-resolve.mjs +41 -0
- package/dist/rules/boolean-coalescing.d.mts +9 -0
- package/dist/rules/boolean-coalescing.mjs +141 -0
- package/dist/rules/comment-duplicate-leading-space.d.mts +9 -0
- package/dist/rules/comment-duplicate-leading-space.mjs +34 -0
- package/dist/rules/conditional-boolean.d.mts +9 -0
- package/dist/rules/conditional-boolean.mjs +70 -0
- package/dist/rules/constant-boolean-cast.d.mts +9 -0
- package/dist/rules/constant-boolean-cast.mjs +203 -0
- package/dist/rules/de-morgan.d.mts +2 -2
- package/dist/rules/de-morgan.mjs +1 -3
- package/dist/rules/discarded-expression-statement.d.mts +14 -0
- package/dist/rules/discarded-expression-statement.mjs +243 -0
- package/dist/rules/distribute-boolean-casts.d.mts +2 -2
- package/dist/rules/distribute-boolean-casts.mjs +3 -3
- package/dist/rules/duplicate-destructuring.d.mts +2 -2
- package/dist/rules/duplicate-destructuring.mjs +1 -3
- package/dist/rules/duplicate-object-spread.d.mts +9 -0
- package/dist/rules/duplicate-object-spread.mjs +44 -0
- package/dist/rules/e.d.mts +11 -0
- package/dist/rules/e.mjs +87 -0
- package/dist/rules/empty-for.d.mts +9 -0
- package/dist/rules/empty-for.mjs +34 -0
- package/dist/rules/enum-member.d.mts +9 -0
- package/dist/rules/enum-member.mjs +51 -0
- package/dist/rules/eqeq-null.d.mts +9 -0
- package/dist/rules/eqeq-null.mjs +101 -0
- package/dist/rules/exact-string-regex.d.mts +9 -0
- package/dist/rules/exact-string-regex.mjs +83 -0
- package/dist/rules/export-using.d.mts +9 -0
- package/dist/rules/export-using.mjs +58 -0
- package/dist/rules/generic-constructor-with-hook.d.mts +11 -0
- package/dist/rules/generic-constructor-with-hook.mjs +103 -0
- package/dist/rules/idiomatic-cast.mjs +7 -10
- package/dist/rules/index.d.mts +112 -57
- package/dist/rules/index.mjs +113 -5
- package/dist/rules/inferable-type-predicate.d.mts +9 -0
- package/dist/rules/inferable-type-predicate.mjs +100 -0
- package/dist/rules/inner-as-const.d.mts +9 -0
- package/dist/rules/inner-as-const.mjs +70 -0
- package/dist/rules/jsx-tostring.d.mts +9 -0
- package/dist/rules/jsx-tostring.mjs +120 -0
- package/dist/rules/literal-destructuring.d.mts +9 -0
- package/dist/rules/literal-destructuring.mjs +102 -0
- package/dist/rules/named-export-with-side-effects.d.mts +11 -0
- package/dist/rules/named-export-with-side-effects.mjs +72 -0
- package/dist/rules/nested-reduce.d.mts +9 -0
- package/dist/rules/nested-reduce.mjs +46 -0
- package/dist/rules/nested-try-catch.d.mts +9 -0
- package/dist/rules/nested-try-catch.mjs +37 -0
- package/dist/rules/no-commented-out-comment.d.mts +9 -0
- package/dist/rules/no-commented-out-comment.mjs +31 -0
- package/dist/rules/no-constant-template-expression.d.mts +3 -4
- package/dist/rules/no-constant-template-expression.mjs +12 -9
- package/dist/rules/no-constructed-error-cause.d.mts +9 -0
- package/dist/rules/no-constructed-error-cause.mjs +75 -0
- package/dist/rules/no-convoluted-boolean-expressions.d.mts +9 -0
- package/dist/rules/no-convoluted-boolean-expressions.mjs +130 -0
- package/dist/rules/no-convoluted-logical-expressions.d.mts +2 -2
- package/dist/rules/no-convoluted-logical-expressions.mjs +1 -3
- package/dist/rules/no-custom-url-parsing.d.mts +2 -3
- package/dist/rules/no-custom-url-parsing.mjs +1 -3
- package/dist/rules/no-disallowed-warning-comments.d.mts +2 -2
- package/dist/rules/no-disallowed-warning-comments.mjs +1 -3
- package/dist/rules/no-duplicated-return.d.mts +2 -2
- package/dist/rules/no-duplicated-return.mjs +2 -3
- package/dist/rules/no-else-break.d.mts +2 -2
- package/dist/rules/no-else-break.mjs +3 -5
- package/dist/rules/no-else-continue.d.mts +2 -2
- package/dist/rules/no-else-continue.mjs +3 -5
- package/dist/rules/no-else-never.d.mts +9 -0
- package/dist/rules/no-else-never.mjs +75 -0
- package/dist/rules/no-else-return.d.mts +2 -3
- package/dist/rules/no-else-return.mjs +4 -5
- package/dist/rules/no-else-throw.d.mts +2 -2
- package/dist/rules/no-else-throw.mjs +3 -5
- package/dist/rules/no-empty-attribute.d.mts +3 -3
- package/dist/rules/no-empty-attribute.mjs +1 -3
- package/dist/rules/no-empty-comment.d.mts +3 -3
- package/dist/rules/no-empty-comment.mjs +1 -3
- package/dist/rules/no-empty-jsx-expression.d.mts +2 -2
- package/dist/rules/no-empty-jsx-expression.mjs +1 -3
- package/dist/rules/no-empty-literal-iteration.d.mts +2 -2
- package/dist/rules/no-empty-literal-iteration.mjs +1 -3
- package/dist/rules/no-extra-false-fallback.d.mts +2 -3
- package/dist/rules/no-extra-false-fallback.mjs +1 -3
- package/dist/rules/no-extra-nested-boolean-cast.d.mts +2 -3
- package/dist/rules/no-extra-nested-boolean-cast.mjs +2 -3
- package/dist/rules/no-first-last.d.mts +2 -2
- package/dist/rules/no-first-last.mjs +2 -5
- package/dist/rules/no-float-length-check.d.mts +2 -2
- package/dist/rules/no-float-length-check.mjs +1 -3
- package/dist/rules/no-huge-try-block.d.mts +3 -3
- package/dist/rules/no-huge-try-block.mjs +1 -3
- package/dist/rules/no-huge-useeffect.d.mts +11 -0
- package/dist/rules/no-huge-useeffect.mjs +52 -0
- package/dist/rules/no-if-length-for.d.mts +9 -0
- package/dist/rules/no-if-length-for.mjs +91 -0
- package/dist/rules/no-inline-jsdoc-tag.d.mts +3 -3
- package/dist/rules/no-inline-jsdoc-tag.mjs +1 -3
- package/dist/rules/no-invalid-date-literal.d.mts +2 -2
- package/dist/rules/no-invalid-date-literal.mjs +42 -19
- package/dist/rules/no-jsx-statement.d.mts +2 -2
- package/dist/rules/no-jsx-statement.mjs +1 -3
- package/dist/rules/no-lax-array-type.d.mts +9 -0
- package/dist/rules/no-lax-array-type.mjs +129 -0
- package/dist/rules/no-lax-return-type.d.mts +9 -0
- package/dist/rules/no-lax-return-type.mjs +138 -0
- package/dist/rules/no-mutable-literal-fill.d.mts +2 -3
- package/dist/rules/no-mutable-literal-fill.mjs +1 -3
- package/dist/rules/no-nullish-ternary.d.mts +9 -0
- package/dist/rules/no-nullish-ternary.mjs +121 -0
- package/dist/rules/no-numbered-comments.d.mts +2 -2
- package/dist/rules/no-numbered-comments.mjs +1 -3
- package/dist/rules/no-obvious-any.mjs +35 -27
- package/dist/rules/no-optional-type-guard-param.d.mts +2 -3
- package/dist/rules/no-optional-type-guard-param.mjs +1 -3
- package/dist/rules/no-out-of-order-comments.d.mts +2 -2
- package/dist/rules/no-out-of-order-comments.mjs +4 -8
- package/dist/rules/no-possibly-nullish-equality.d.mts +0 -1
- package/dist/rules/no-possibly-nullish-equality.mjs +6 -13
- package/dist/rules/no-redundant-function-declaration.d.mts +2 -2
- package/dist/rules/no-redundant-function-declaration.mjs +1 -3
- package/dist/rules/no-return-to-void.mjs +2 -4
- package/dist/rules/no-self-object-assign.d.mts +2 -2
- package/dist/rules/no-self-object-assign.mjs +1 -3
- package/dist/rules/no-sloppy-length-check.d.mts +2 -3
- package/dist/rules/no-sloppy-length-check.mjs +35 -37
- package/dist/rules/no-suspicious-jsx-semicolon.d.mts +2 -3
- package/dist/rules/no-suspicious-jsx-semicolon.mjs +2 -4
- package/dist/rules/no-ternary-return.d.mts +3 -4
- package/dist/rules/no-ternary-return.mjs +1 -3
- package/dist/rules/no-type-guard.d.mts +9 -0
- package/dist/rules/no-type-guard.mjs +36 -0
- package/dist/rules/no-unassigned-todo.d.mts +2 -2
- package/dist/rules/no-unassigned-todo.mjs +1 -3
- package/dist/rules/no-unbound-catch-error.d.mts +2 -2
- package/dist/rules/no-unbound-catch-error.mjs +1 -3
- package/dist/rules/no-unused-mutually-referential.d.mts +9 -0
- package/dist/rules/no-unused-mutually-referential.mjs +215 -0
- package/dist/rules/no-unused-param-read.d.mts +2 -2
- package/dist/rules/no-unused-param-read.mjs +1 -3
- package/dist/rules/no-useless-computed-key.d.mts +2 -2
- package/dist/rules/no-useless-computed-key.mjs +1 -3
- package/dist/rules/no-useless-iife.d.mts +2 -2
- package/dist/rules/no-useless-iife.mjs +2 -3
- package/dist/rules/no-useless-logical-fallback.d.mts +0 -1
- package/dist/rules/no-useless-logical-fallback.mjs +32 -24
- package/dist/rules/no-useless-return-undefined.mjs +11 -11
- package/dist/rules/no-useless-ts-check.d.mts +9 -0
- package/dist/rules/no-useless-ts-check.mjs +34 -0
- package/dist/rules/no-useless-use-strict.d.mts +2 -2
- package/dist/rules/no-useless-use-strict.mjs +1 -3
- package/dist/rules/no-useless-usememo.d.mts +2 -2
- package/dist/rules/no-useless-usememo.mjs +8 -6
- package/dist/rules/no-whitespace-property.d.mts +2 -2
- package/dist/rules/no-whitespace-property.mjs +1 -3
- package/dist/rules/nullish-object-spread.d.mts +9 -0
- package/dist/rules/nullish-object-spread.mjs +38 -0
- package/dist/rules/optional-call-expression.d.mts +2 -2
- package/dist/rules/optional-call-expression.mjs +20 -3
- package/dist/rules/prefer-array-from.d.mts +9 -0
- package/dist/rules/prefer-array-from.mjs +87 -0
- package/dist/rules/prefer-catch-method.d.mts +2 -2
- package/dist/rules/prefer-catch-method.mjs +9 -12
- package/dist/rules/prefer-early-return.d.mts +2 -2
- package/dist/rules/prefer-early-return.mjs +23 -20
- package/dist/rules/prefer-eqeq-null.d.mts +9 -0
- package/dist/rules/prefer-eqeq-null.mjs +122 -0
- package/dist/rules/prefer-finally.d.mts +9 -0
- package/dist/rules/prefer-finally.mjs +129 -0
- package/dist/rules/prefer-getorinsert.d.mts +9 -0
- package/dist/rules/prefer-getorinsert.mjs +180 -0
- package/dist/rules/prefer-has.d.mts +9 -0
- package/dist/rules/prefer-has.mjs +69 -0
- package/dist/rules/prefer-in.d.mts +9 -0
- package/dist/rules/prefer-in.mjs +81 -0
- package/dist/rules/prefer-object-keys-values.d.mts +9 -0
- package/dist/rules/prefer-object-keys-values.mjs +78 -0
- package/dist/rules/prefer-repeat.d.mts +2 -2
- package/dist/rules/prefer-repeat.mjs +1 -5
- package/dist/rules/prefer-satisfies.d.mts +9 -0
- package/dist/rules/prefer-satisfies.mjs +86 -0
- package/dist/rules/prefer-string-join.d.mts +9 -0
- package/dist/rules/prefer-string-join.mjs +67 -0
- package/dist/rules/primitive-valueof.mjs +6 -8
- package/dist/rules/slim-try.d.mts +9 -0
- package/dist/rules/slim-try.mjs +150 -0
- package/dist/rules/styled-button-has-type.d.mts +9 -0
- package/dist/rules/styled-button-has-type.mjs +82 -0
- package/dist/rules/styled-transient-props.d.mts +9 -0
- package/dist/rules/styled-transient-props.mjs +52 -0
- package/dist/rules/suspicious-map-length.d.mts +2 -2
- package/dist/rules/suspicious-map-length.mjs +1 -3
- package/dist/rules/template-tostring.d.mts +9 -0
- package/dist/rules/template-tostring.mjs +48 -0
- package/dist/rules/unsafe-asserted-chain.d.mts +0 -1
- package/dist/rules/unsafe-asserted-chain.mjs +5 -8
- package/dist/rules/unused-object-assign.d.mts +2 -2
- package/dist/rules/unused-object-assign.mjs +1 -3
- package/dist/rules/unused-object-freeze.d.mts +9 -0
- package/dist/rules/unused-object-freeze.mjs +37 -0
- package/dist/rules/useless-as-const.d.mts +9 -0
- package/dist/rules/useless-as-const.mjs +59 -0
- package/dist/rules/useless-assign.d.mts +11 -0
- package/dist/rules/useless-assign.mjs +69 -0
- package/dist/rules/useless-conditional-assign.d.mts +9 -0
- package/dist/rules/useless-conditional-assign.mjs +58 -0
- package/dist/rules/useless-intermediary-variable.mjs +18 -21
- package/dist/rules/useless-mock.d.mts +9 -0
- package/dist/rules/useless-mock.mjs +180 -0
- package/dist/rules/useless-required.d.mts +9 -0
- package/dist/rules/useless-required.mjs +257 -0
- package/dist/utils/compareTokens.mjs +1 -3
- package/dist/utils/createRule.mjs +1 -3
- package/dist/utils/negateExpression.mjs +1 -3
- package/dist/utils/option.mjs +5 -2
- package/package.json +30 -23
- package/dist/_virtual/rolldown_runtime.mjs +0 -20
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { WyrmPluginDocs } from "../utils/createRule.mjs";
|
|
2
|
+
import * as _$_typescript_eslint_utils_ts_eslint0 from "@typescript-eslint/utils/ts-eslint";
|
|
3
|
+
|
|
4
|
+
//#region lib/rules/exact-string-regex.d.ts
|
|
5
|
+
declare const _default: _$_typescript_eslint_utils_ts_eslint0.RuleModule<"preferEquality", [], WyrmPluginDocs, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
|
|
6
|
+
name: string;
|
|
7
|
+
};
|
|
8
|
+
//#endregion
|
|
9
|
+
export { _default };
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { createRule } from "../utils/createRule.mjs";
|
|
2
|
+
import { None, Some, getFirstOption } from "../utils/option.mjs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { AST_NODE_TYPES } from "@typescript-eslint/utils";
|
|
5
|
+
//#region lib/rules/exact-string-regex.ts
|
|
6
|
+
const { name } = path.parse(import.meta.filename);
|
|
7
|
+
var exact_string_regex_default = createRule({
|
|
8
|
+
name,
|
|
9
|
+
meta: {
|
|
10
|
+
type: "suggestion",
|
|
11
|
+
docs: {
|
|
12
|
+
description: "Forbid using a RegEx when string equality would suffice",
|
|
13
|
+
recommended: true
|
|
14
|
+
},
|
|
15
|
+
hasSuggestions: true,
|
|
16
|
+
schema: [],
|
|
17
|
+
messages: { preferEquality: "Just use === \"{{content}}\"" }
|
|
18
|
+
},
|
|
19
|
+
defaultOptions: [],
|
|
20
|
+
create(context) {
|
|
21
|
+
return { Literal(node) {
|
|
22
|
+
if (!(node.value instanceof RegExp)) return;
|
|
23
|
+
const re = node.value;
|
|
24
|
+
const maybeContent = getExactEqualityPattern(re);
|
|
25
|
+
if (!maybeContent.some) return;
|
|
26
|
+
const content = maybeContent.value;
|
|
27
|
+
const result = getRegexComparison(node);
|
|
28
|
+
if (!result.some) return;
|
|
29
|
+
const { ident, parent } = result.value;
|
|
30
|
+
context.report({
|
|
31
|
+
node,
|
|
32
|
+
messageId: "preferEquality",
|
|
33
|
+
data: { content },
|
|
34
|
+
suggest: [{
|
|
35
|
+
messageId: "preferEquality",
|
|
36
|
+
data: { content },
|
|
37
|
+
fix(fixer) {
|
|
38
|
+
const compared = context.sourceCode.getText(ident);
|
|
39
|
+
return fixer.replaceText(parent, `(${compared} === '${content}')`);
|
|
40
|
+
}
|
|
41
|
+
}]
|
|
42
|
+
});
|
|
43
|
+
} };
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
function getRegexComparison(node) {
|
|
47
|
+
return getFirstOption([getRegexTestOrExec(node), getRegexMatch(node)]);
|
|
48
|
+
}
|
|
49
|
+
function getRegexTestOrExec(node) {
|
|
50
|
+
if (node.parent.type !== AST_NODE_TYPES.MemberExpression) return None;
|
|
51
|
+
if (node.parent.property.type !== AST_NODE_TYPES.Identifier) return None;
|
|
52
|
+
if (node.parent.property.name !== "test" && node.parent.property.name !== "exec") return None;
|
|
53
|
+
if (node.parent.parent.type !== AST_NODE_TYPES.CallExpression) return None;
|
|
54
|
+
const [arg] = node.parent.parent.arguments;
|
|
55
|
+
if (!arg) return None;
|
|
56
|
+
return Some({
|
|
57
|
+
ident: arg,
|
|
58
|
+
parent: node.parent.parent
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
function getRegexMatch(node) {
|
|
62
|
+
if (node.parent.type !== AST_NODE_TYPES.CallExpression) return None;
|
|
63
|
+
if (node.parent.arguments[0] !== node) return None;
|
|
64
|
+
if (node.parent.callee.type !== AST_NODE_TYPES.MemberExpression) return None;
|
|
65
|
+
if (node.parent.callee.property.type !== AST_NODE_TYPES.Identifier) return None;
|
|
66
|
+
if (node.parent.callee.property.name !== "match") return None;
|
|
67
|
+
return Some({
|
|
68
|
+
ident: node.parent.callee.object,
|
|
69
|
+
parent: node.parent
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function getExactEqualityPattern(re) {
|
|
73
|
+
if (re.ignoreCase) return None;
|
|
74
|
+
if (re.multiline) return None;
|
|
75
|
+
const result = /^\^(?<content>[a-z\d]+)\$$/v.exec(re.source);
|
|
76
|
+
if (!result) return None;
|
|
77
|
+
const content = result.groups?.["content"];
|
|
78
|
+
/* v8 ignore if -- @preserve */
|
|
79
|
+
if (!content) return None;
|
|
80
|
+
return Some(content);
|
|
81
|
+
}
|
|
82
|
+
//#endregion
|
|
83
|
+
export { exact_string_regex_default as default };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { WyrmPluginDocs } from "../utils/createRule.mjs";
|
|
2
|
+
import { TSESLint } from "@typescript-eslint/utils";
|
|
3
|
+
|
|
4
|
+
//#region lib/rules/export-using.d.ts
|
|
5
|
+
declare const _default: TSESLint.RuleModule<"noExportUsing", [], WyrmPluginDocs, TSESLint.RuleListener> & {
|
|
6
|
+
name: string;
|
|
7
|
+
};
|
|
8
|
+
//#endregion
|
|
9
|
+
export { _default };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { createRule } from "../utils/createRule.mjs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { ASTUtils, AST_NODE_TYPES, TSESLint } from "@typescript-eslint/utils";
|
|
4
|
+
//#region lib/rules/export-using.ts
|
|
5
|
+
/**
|
|
6
|
+
* @fileoverview
|
|
7
|
+
*
|
|
8
|
+
* If you export a variable declared with `using` or `await using`, it will already be disposed when imported.
|
|
9
|
+
*/
|
|
10
|
+
const { name } = path.parse(import.meta.filename);
|
|
11
|
+
var export_using_default = createRule({
|
|
12
|
+
name,
|
|
13
|
+
meta: {
|
|
14
|
+
type: "problem",
|
|
15
|
+
docs: {
|
|
16
|
+
description: "Forbid exporting variables declared with `using` or `await using`",
|
|
17
|
+
recommended: true
|
|
18
|
+
},
|
|
19
|
+
schema: [],
|
|
20
|
+
messages: { noExportUsing: "Do not export a variable declared with `using`. It will already be disposed when imported." }
|
|
21
|
+
},
|
|
22
|
+
defaultOptions: [],
|
|
23
|
+
create(context) {
|
|
24
|
+
return {
|
|
25
|
+
ExportNamedDeclaration(node) {
|
|
26
|
+
if (node.declaration?.type === AST_NODE_TYPES.VariableDeclaration && (node.declaration.kind === "using" || node.declaration.kind === "await using")) {
|
|
27
|
+
context.report({
|
|
28
|
+
node,
|
|
29
|
+
messageId: "noExportUsing"
|
|
30
|
+
});
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const scope = context.sourceCode.getScope(node);
|
|
34
|
+
for (const specifier of node.specifiers) {
|
|
35
|
+
if (specifier.local.type !== AST_NODE_TYPES.Identifier) continue;
|
|
36
|
+
checkIdentifier(specifier.local, scope);
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
ExportDefaultDeclaration(node) {
|
|
40
|
+
const scope = context.sourceCode.getScope(node);
|
|
41
|
+
if (node.declaration.type !== AST_NODE_TYPES.Identifier) return;
|
|
42
|
+
checkIdentifier(node.declaration, scope);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
function checkIdentifier(ident, scope) {
|
|
46
|
+
const def = ASTUtils.findVariable(scope, ident)?.defs.at(-1);
|
|
47
|
+
if (!def) return;
|
|
48
|
+
if (def.type !== TSESLint.Scope.DefinitionType.Variable) return;
|
|
49
|
+
if (def.node.parent.kind !== "using" && def.node.parent.kind !== "await using") return;
|
|
50
|
+
context.report({
|
|
51
|
+
node: ident,
|
|
52
|
+
messageId: "noExportUsing"
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
//#endregion
|
|
58
|
+
export { export_using_default as default };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { WyrmPluginDocs } from "../utils/createRule.mjs";
|
|
2
|
+
import * as _$_typescript_eslint_utils_ts_eslint0 from "@typescript-eslint/utils/ts-eslint";
|
|
3
|
+
|
|
4
|
+
//#region lib/rules/generic-constructor-with-hook.d.ts
|
|
5
|
+
declare const _default: _$_typescript_eslint_utils_ts_eslint0.RuleModule<"useGenericConstructor" | "removeObviousInferable" | "noInferable", [{
|
|
6
|
+
hooks: string[];
|
|
7
|
+
}], WyrmPluginDocs, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
|
|
8
|
+
name: string;
|
|
9
|
+
};
|
|
10
|
+
//#endregion
|
|
11
|
+
export { _default };
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { createRule } from "../utils/createRule.mjs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { AST_NODE_TYPES } from "@typescript-eslint/utils";
|
|
4
|
+
//#region lib/rules/generic-constructor-with-hook.ts
|
|
5
|
+
const { name } = path.parse(import.meta.filename);
|
|
6
|
+
const DEFAULT_HOOK_NAMES = ["useState", "useRef"];
|
|
7
|
+
var generic_constructor_with_hook_default = createRule({
|
|
8
|
+
name,
|
|
9
|
+
meta: {
|
|
10
|
+
type: "suggestion",
|
|
11
|
+
docs: {
|
|
12
|
+
description: "Forbid specifying the type arguments on the hook instead of on the generic class",
|
|
13
|
+
strict: true
|
|
14
|
+
},
|
|
15
|
+
fixable: "code",
|
|
16
|
+
schema: [{
|
|
17
|
+
type: "object",
|
|
18
|
+
properties: { hooks: {
|
|
19
|
+
description: `List of hooks to check. Default: \`${JSON.stringify(DEFAULT_HOOK_NAMES)}\``,
|
|
20
|
+
type: "array",
|
|
21
|
+
items: { type: "string" }
|
|
22
|
+
} }
|
|
23
|
+
}],
|
|
24
|
+
messages: {
|
|
25
|
+
useGenericConstructor: "Use new {{typeAnnotationText}}() and remove the type annotation on the hook",
|
|
26
|
+
removeObviousInferable: "Remove the {{typeAnnotationText}} type annotation on the hook, it will be trivially inferred",
|
|
27
|
+
noInferable: "There is no need to add a type annotation here"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
defaultOptions: [{ hooks: DEFAULT_HOOK_NAMES }],
|
|
31
|
+
create(context, [options]) {
|
|
32
|
+
return { CallExpression(node) {
|
|
33
|
+
if (!isReactHook(node.callee, options.hooks)) return;
|
|
34
|
+
const { typeArguments } = node;
|
|
35
|
+
if (!typeArguments) return;
|
|
36
|
+
const [typeAnnotation] = typeArguments.params;
|
|
37
|
+
/* v8 ignore if -- @preserve */
|
|
38
|
+
if (!typeAnnotation) return;
|
|
39
|
+
if (typeAnnotation.type !== AST_NODE_TYPES.TSTypeReference) return;
|
|
40
|
+
if (typeAnnotation.typeName.type !== AST_NODE_TYPES.Identifier) return;
|
|
41
|
+
const typeAnnotationText = context.sourceCode.getText(typeAnnotation);
|
|
42
|
+
const [arg] = node.arguments;
|
|
43
|
+
if (!arg) return;
|
|
44
|
+
const expr = extractExpression(arg);
|
|
45
|
+
if (!expr) return;
|
|
46
|
+
if (expr.type !== AST_NODE_TYPES.NewExpression) return;
|
|
47
|
+
if (expr.callee.type !== AST_NODE_TYPES.Identifier) return;
|
|
48
|
+
if (expr.callee.name !== typeAnnotation.typeName.name) return;
|
|
49
|
+
if (!expr.typeArguments) {
|
|
50
|
+
if (!typeAnnotation.typeArguments) {
|
|
51
|
+
context.report({
|
|
52
|
+
node,
|
|
53
|
+
messageId: "removeObviousInferable",
|
|
54
|
+
data: { typeAnnotationText },
|
|
55
|
+
*fix(fixer) {
|
|
56
|
+
yield fixer.remove(typeArguments);
|
|
57
|
+
yield fixer.replaceText(expr.callee, typeAnnotationText);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
context.report({
|
|
63
|
+
node,
|
|
64
|
+
messageId: "useGenericConstructor",
|
|
65
|
+
data: { typeAnnotationText },
|
|
66
|
+
*fix(fixer) {
|
|
67
|
+
yield fixer.remove(typeArguments);
|
|
68
|
+
yield fixer.replaceText(expr.callee, typeAnnotationText);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const txt = context.sourceCode.getText(expr.typeArguments);
|
|
74
|
+
if (typeAnnotationText !== `${expr.callee.name}${txt}`) return;
|
|
75
|
+
context.report({
|
|
76
|
+
node: typeAnnotation,
|
|
77
|
+
messageId: "noInferable",
|
|
78
|
+
fix(fixer) {
|
|
79
|
+
return fixer.remove(typeArguments);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
} };
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
function isReactHook(callee, hooks) {
|
|
86
|
+
if (callee.type === AST_NODE_TYPES.Identifier && hooks.includes(callee.name)) return true;
|
|
87
|
+
if (callee.type !== AST_NODE_TYPES.MemberExpression) return false;
|
|
88
|
+
if (callee.object.type !== AST_NODE_TYPES.Identifier) return false;
|
|
89
|
+
if (callee.property.type !== AST_NODE_TYPES.Identifier) return false;
|
|
90
|
+
if (callee.object.name !== "React") return false;
|
|
91
|
+
return hooks.includes(callee.property.name);
|
|
92
|
+
}
|
|
93
|
+
function extractExpression(expr) {
|
|
94
|
+
if (expr.type !== AST_NODE_TYPES.FunctionExpression && expr.type !== AST_NODE_TYPES.ArrowFunctionExpression) return expr;
|
|
95
|
+
if (expr.body.type !== AST_NODE_TYPES.BlockStatement) return expr.body;
|
|
96
|
+
const returnStatements = expr.body.body.filter((stmt) => stmt.type === AST_NODE_TYPES.ReturnStatement);
|
|
97
|
+
if (returnStatements.length > 1) return null;
|
|
98
|
+
const [returnStatement] = returnStatements;
|
|
99
|
+
if (!returnStatement) return null;
|
|
100
|
+
return returnStatement.argument;
|
|
101
|
+
}
|
|
102
|
+
//#endregion
|
|
103
|
+
export { generic_constructor_with_hook_default as default };
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { createRule } from "../utils/createRule.mjs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { AST_NODE_TYPES, ESLintUtils } from "@typescript-eslint/utils";
|
|
4
|
-
import * as ts from "typescript";
|
|
5
|
-
|
|
4
|
+
import * as ts$1 from "typescript";
|
|
6
5
|
//#region lib/rules/idiomatic-cast.ts
|
|
7
6
|
const { name } = path.parse(import.meta.filename);
|
|
8
7
|
var idiomatic_cast_default = createRule({
|
|
@@ -25,9 +24,7 @@ var idiomatic_cast_default = createRule({
|
|
|
25
24
|
if (node.callee.name !== "String") return;
|
|
26
25
|
const [arg] = node.arguments;
|
|
27
26
|
if (!arg) return;
|
|
28
|
-
|
|
29
|
-
if (argType.isUnion()) return;
|
|
30
|
-
if (!hasToString(argType)) return;
|
|
27
|
+
if (!hasToString(ESLintUtils.getParserServices(context).getTypeAtLocation(arg))) return;
|
|
31
28
|
context.report({
|
|
32
29
|
node,
|
|
33
30
|
messageId: "useToString",
|
|
@@ -41,14 +38,14 @@ var idiomatic_cast_default = createRule({
|
|
|
41
38
|
}
|
|
42
39
|
});
|
|
43
40
|
function hasToString(argType) {
|
|
44
|
-
if (argType.flags & ts.TypeFlags.
|
|
45
|
-
if (argType.flags & ts.TypeFlags.
|
|
46
|
-
if (argType.flags & ts.TypeFlags.
|
|
41
|
+
if (argType.isUnion()) return argType.types.every((t) => hasToString(t) || (t.flags & ts$1.TypeFlags.StringLike) !== 0);
|
|
42
|
+
if (argType.flags & ts$1.TypeFlags.NumberLike) return true;
|
|
43
|
+
if (argType.flags & ts$1.TypeFlags.BooleanLike) return true;
|
|
44
|
+
if (argType.flags & ts$1.TypeFlags.BigIntLike) return true;
|
|
47
45
|
if (typeof argType.symbol === "undefined") return false;
|
|
48
46
|
if (argType.symbol.getName() === "BigInt") return true;
|
|
49
47
|
if (argType.symbol.getName() === "Date") return true;
|
|
50
48
|
return false;
|
|
51
49
|
}
|
|
52
|
-
|
|
53
50
|
//#endregion
|
|
54
|
-
export { idiomatic_cast_default as default };
|
|
51
|
+
export { idiomatic_cast_default as default };
|
package/dist/rules/index.d.mts
CHANGED
|
@@ -1,63 +1,118 @@
|
|
|
1
|
-
import { _default } from "./
|
|
2
|
-
import { _default as _default$1 } from "./
|
|
3
|
-
import { _default as _default$2 } from "./
|
|
4
|
-
import { _default as _default$3 } from "./
|
|
5
|
-
import { _default as _default$4 } from "./
|
|
6
|
-
import { _default as _default$5 } from "./
|
|
7
|
-
import { _default as _default$6 } from "./
|
|
8
|
-
import { _default as _default$7 } from "./
|
|
9
|
-
import { _default as _default$8 } from "./
|
|
10
|
-
import { _default as _default$9 } from "./
|
|
11
|
-
import { _default as _default$10 } from "./
|
|
12
|
-
import { _default as _default$11 } from "./
|
|
13
|
-
import { _default as _default$12 } from "./
|
|
14
|
-
import { _default as _default$13 } from "./
|
|
15
|
-
import { _default as _default$14 } from "./
|
|
16
|
-
import { _default as _default$15 } from "./
|
|
17
|
-
import { _default as _default$16 } from "./
|
|
18
|
-
import { _default as _default$17 } from "./
|
|
19
|
-
import { _default as _default$18 } from "./
|
|
20
|
-
import { _default as _default$19 } from "./
|
|
21
|
-
import { _default as _default$20 } from "./
|
|
22
|
-
import { _default as _default$21 } from "./
|
|
23
|
-
import { _default as _default$22 } from "./
|
|
24
|
-
import { _default as _default$23 } from "./
|
|
25
|
-
import { _default as _default$24 } from "./
|
|
26
|
-
import { _default as _default$25 } from "./
|
|
27
|
-
import { _default as _default$26 } from "./
|
|
28
|
-
import { _default as _default$27 } from "./no-
|
|
29
|
-
import { _default as _default$28 } from "./no-
|
|
30
|
-
import { _default as _default$29 } from "./no-
|
|
31
|
-
import { _default as _default$30 } from "./no-
|
|
32
|
-
import { _default as _default$31 } from "./no-
|
|
33
|
-
import { _default as _default$32 } from "./no-
|
|
34
|
-
import { _default as _default$33 } from "./no-
|
|
35
|
-
import { _default as _default$34 } from "./no-
|
|
36
|
-
import { _default as _default$35 } from "./no-
|
|
37
|
-
import { _default as _default$36 } from "./no-
|
|
38
|
-
import { _default as _default$37 } from "./no-
|
|
39
|
-
import { _default as _default$38 } from "./no-
|
|
40
|
-
import { _default as _default$39 } from "./no-
|
|
41
|
-
import { _default as _default$40 } from "./no-
|
|
42
|
-
import { _default as _default$41 } from "./no-
|
|
43
|
-
import { _default as _default$42 } from "./no-
|
|
44
|
-
import { _default as _default$43 } from "./no-
|
|
45
|
-
import { _default as _default$44 } from "./no-
|
|
46
|
-
import { _default as _default$45 } from "./no-
|
|
47
|
-
import { _default as _default$46 } from "./no-
|
|
48
|
-
import { _default as _default$47 } from "./
|
|
49
|
-
import { _default as _default$48 } from "./
|
|
50
|
-
import { _default as _default$49 } from "./
|
|
51
|
-
import { _default as _default$50 } from "./
|
|
52
|
-
import { _default as _default$51 } from "./
|
|
53
|
-
import { _default as _default$52 } from "./
|
|
54
|
-
import { _default as _default$53 } from "./
|
|
55
|
-
import { _default as _default$54 } from "./
|
|
56
|
-
import { _default as _default$55 } from "./
|
|
1
|
+
import { _default } from "./array-from-array.mjs";
|
|
2
|
+
import { _default as _default$1 } from "./as-unknown-as.mjs";
|
|
3
|
+
import { _default as _default$2 } from "./await-promise-resolve.mjs";
|
|
4
|
+
import { _default as _default$3 } from "./boolean-coalescing.mjs";
|
|
5
|
+
import { _default as _default$4 } from "./comment-duplicate-leading-space.mjs";
|
|
6
|
+
import { _default as _default$5 } from "./conditional-boolean.mjs";
|
|
7
|
+
import { _default as _default$6 } from "./constant-boolean-cast.mjs";
|
|
8
|
+
import { _default as _default$7 } from "./de-morgan.mjs";
|
|
9
|
+
import { _default as _default$8 } from "./discarded-expression-statement.mjs";
|
|
10
|
+
import { _default as _default$9 } from "./distribute-boolean-casts.mjs";
|
|
11
|
+
import { _default as _default$10 } from "./duplicate-destructuring.mjs";
|
|
12
|
+
import { _default as _default$11 } from "./duplicate-object-spread.mjs";
|
|
13
|
+
import { _default as _default$12 } from "./e.mjs";
|
|
14
|
+
import { _default as _default$13 } from "./empty-for.mjs";
|
|
15
|
+
import { _default as _default$14 } from "./enum-member.mjs";
|
|
16
|
+
import { _default as _default$15 } from "./eqeq-null.mjs";
|
|
17
|
+
import { _default as _default$16 } from "./exact-string-regex.mjs";
|
|
18
|
+
import { _default as _default$17 } from "./export-using.mjs";
|
|
19
|
+
import { _default as _default$18 } from "./generic-constructor-with-hook.mjs";
|
|
20
|
+
import { _default as _default$19 } from "./idiomatic-cast.mjs";
|
|
21
|
+
import { _default as _default$20 } from "./inferable-type-predicate.mjs";
|
|
22
|
+
import { _default as _default$21 } from "./inner-as-const.mjs";
|
|
23
|
+
import { _default as _default$22 } from "./jsx-tostring.mjs";
|
|
24
|
+
import { _default as _default$23 } from "./literal-destructuring.mjs";
|
|
25
|
+
import { _default as _default$24 } from "./named-export-with-side-effects.mjs";
|
|
26
|
+
import { _default as _default$25 } from "./nested-reduce.mjs";
|
|
27
|
+
import { _default as _default$26 } from "./nested-try-catch.mjs";
|
|
28
|
+
import { _default as _default$27 } from "./no-commented-out-comment.mjs";
|
|
29
|
+
import { _default as _default$28 } from "./no-constant-template-expression.mjs";
|
|
30
|
+
import { _default as _default$29 } from "./no-constructed-error-cause.mjs";
|
|
31
|
+
import { _default as _default$30 } from "./no-convoluted-boolean-expressions.mjs";
|
|
32
|
+
import { _default as _default$31 } from "./no-convoluted-logical-expressions.mjs";
|
|
33
|
+
import { _default as _default$32 } from "./no-custom-url-parsing.mjs";
|
|
34
|
+
import { _default as _default$33 } from "./no-disallowed-warning-comments.mjs";
|
|
35
|
+
import { _default as _default$34 } from "./no-duplicated-return.mjs";
|
|
36
|
+
import { _default as _default$35 } from "./no-else-break.mjs";
|
|
37
|
+
import { _default as _default$36 } from "./no-else-continue.mjs";
|
|
38
|
+
import { _default as _default$37 } from "./no-else-never.mjs";
|
|
39
|
+
import { _default as _default$38 } from "./no-else-return.mjs";
|
|
40
|
+
import { _default as _default$39 } from "./no-else-throw.mjs";
|
|
41
|
+
import { _default as _default$40 } from "./no-empty-attribute.mjs";
|
|
42
|
+
import { _default as _default$41 } from "./no-empty-comment.mjs";
|
|
43
|
+
import { _default as _default$42 } from "./no-empty-jsx-expression.mjs";
|
|
44
|
+
import { _default as _default$43 } from "./no-empty-literal-iteration.mjs";
|
|
45
|
+
import { _default as _default$44 } from "./no-extra-false-fallback.mjs";
|
|
46
|
+
import { _default as _default$45 } from "./no-extra-nested-boolean-cast.mjs";
|
|
47
|
+
import { _default as _default$46 } from "./no-first-last.mjs";
|
|
48
|
+
import { _default as _default$47 } from "./no-float-length-check.mjs";
|
|
49
|
+
import { _default as _default$48 } from "./no-huge-try-block.mjs";
|
|
50
|
+
import { _default as _default$49 } from "./no-huge-useeffect.mjs";
|
|
51
|
+
import { _default as _default$50 } from "./no-if-length-for.mjs";
|
|
52
|
+
import { _default as _default$51 } from "./no-inline-jsdoc-tag.mjs";
|
|
53
|
+
import { _default as _default$52 } from "./no-invalid-date-literal.mjs";
|
|
54
|
+
import { _default as _default$53 } from "./no-jsx-statement.mjs";
|
|
55
|
+
import { _default as _default$54 } from "./no-lax-array-type.mjs";
|
|
56
|
+
import { _default as _default$55 } from "./no-lax-return-type.mjs";
|
|
57
|
+
import { _default as _default$56 } from "./no-mutable-literal-fill.mjs";
|
|
58
|
+
import { _default as _default$57 } from "./no-nullish-ternary.mjs";
|
|
59
|
+
import { _default as _default$58 } from "./no-numbered-comments.mjs";
|
|
60
|
+
import { _default as _default$59 } from "./no-obvious-any.mjs";
|
|
61
|
+
import { _default as _default$60 } from "./no-optional-type-guard-param.mjs";
|
|
62
|
+
import { _default as _default$61 } from "./no-out-of-order-comments.mjs";
|
|
63
|
+
import { _default as _default$62 } from "./no-possibly-nullish-equality.mjs";
|
|
64
|
+
import { _default as _default$63 } from "./no-redundant-function-declaration.mjs";
|
|
65
|
+
import { _default as _default$64 } from "./no-return-to-void.mjs";
|
|
66
|
+
import { _default as _default$65 } from "./no-self-object-assign.mjs";
|
|
67
|
+
import { _default as _default$66 } from "./no-sloppy-length-check.mjs";
|
|
68
|
+
import { _default as _default$67 } from "./no-suspicious-jsx-semicolon.mjs";
|
|
69
|
+
import { _default as _default$68 } from "./no-ternary-return.mjs";
|
|
70
|
+
import { _default as _default$69 } from "./no-type-guard.mjs";
|
|
71
|
+
import { _default as _default$70 } from "./no-unassigned-todo.mjs";
|
|
72
|
+
import { _default as _default$71 } from "./no-unbound-catch-error.mjs";
|
|
73
|
+
import { _default as _default$72 } from "./no-unused-mutually-referential.mjs";
|
|
74
|
+
import { _default as _default$73 } from "./no-unused-param-read.mjs";
|
|
75
|
+
import { _default as _default$74 } from "./no-useless-computed-key.mjs";
|
|
76
|
+
import { _default as _default$75 } from "./no-useless-iife.mjs";
|
|
77
|
+
import { _default as _default$76 } from "./no-useless-logical-fallback.mjs";
|
|
78
|
+
import { _default as _default$77 } from "./no-useless-return-undefined.mjs";
|
|
79
|
+
import { _default as _default$78 } from "./no-useless-ts-check.mjs";
|
|
80
|
+
import { _default as _default$79 } from "./no-useless-use-strict.mjs";
|
|
81
|
+
import { _default as _default$80 } from "./no-useless-usememo.mjs";
|
|
82
|
+
import { _default as _default$81 } from "./no-whitespace-property.mjs";
|
|
83
|
+
import { _default as _default$82 } from "./nullish-object-spread.mjs";
|
|
84
|
+
import { _default as _default$83 } from "./optional-call-expression.mjs";
|
|
85
|
+
import { _default as _default$84 } from "./prefer-array-from.mjs";
|
|
86
|
+
import { _default as _default$85 } from "./prefer-catch-method.mjs";
|
|
87
|
+
import { _default as _default$86 } from "./prefer-early-return.mjs";
|
|
88
|
+
import { _default as _default$87 } from "./prefer-eqeq-null.mjs";
|
|
89
|
+
import { _default as _default$88 } from "./prefer-finally.mjs";
|
|
90
|
+
import { _default as _default$89 } from "./prefer-getorinsert.mjs";
|
|
91
|
+
import { _default as _default$90 } from "./prefer-has.mjs";
|
|
92
|
+
import { _default as _default$91 } from "./prefer-in.mjs";
|
|
93
|
+
import { _default as _default$92 } from "./prefer-object-keys-values.mjs";
|
|
94
|
+
import { _default as _default$93 } from "./prefer-repeat.mjs";
|
|
95
|
+
import { _default as _default$94 } from "./prefer-satisfies.mjs";
|
|
96
|
+
import { _default as _default$95 } from "./prefer-string-join.mjs";
|
|
97
|
+
import { _default as _default$96 } from "./primitive-valueof.mjs";
|
|
98
|
+
import { _default as _default$97 } from "./slim-try.mjs";
|
|
99
|
+
import { _default as _default$98 } from "./styled-button-has-type.mjs";
|
|
100
|
+
import { _default as _default$99 } from "./styled-transient-props.mjs";
|
|
101
|
+
import { _default as _default$100 } from "./suspicious-map-length.mjs";
|
|
102
|
+
import { _default as _default$101 } from "./template-tostring.mjs";
|
|
103
|
+
import { _default as _default$102 } from "./unsafe-asserted-chain.mjs";
|
|
104
|
+
import { _default as _default$103 } from "./unused-object-assign.mjs";
|
|
105
|
+
import { _default as _default$104 } from "./unused-object-freeze.mjs";
|
|
106
|
+
import { _default as _default$105 } from "./useless-as-const.mjs";
|
|
107
|
+
import { _default as _default$106 } from "./useless-assign.mjs";
|
|
108
|
+
import { _default as _default$107 } from "./useless-conditional-assign.mjs";
|
|
109
|
+
import { _default as _default$108 } from "./useless-intermediary-variable.mjs";
|
|
110
|
+
import { _default as _default$109 } from "./useless-mock.mjs";
|
|
111
|
+
import { _default as _default$110 } from "./useless-required.mjs";
|
|
57
112
|
|
|
58
113
|
//#region lib/rules/index.d.ts
|
|
59
114
|
declare namespace index_d_exports {
|
|
60
|
-
export { _default as "de-morgan", _default$
|
|
115
|
+
export { _default as "array-from-array", _default$1 as "as-unknown-as", _default$2 as "await-promise-resolve", _default$3 as "boolean-coalescing", _default$4 as "comment-duplicate-leading-space", _default$5 as "conditional-boolean", _default$6 as "constant-boolean-cast", _default$7 as "de-morgan", _default$8 as "discarded-expression-statement", _default$9 as "distribute-boolean-casts", _default$10 as "duplicate-destructuring", _default$11 as "duplicate-object-spread", _default$12 as e, _default$13 as "empty-for", _default$14 as "enum-member", _default$15 as "eqeq-null", _default$16 as "exact-string-regex", _default$17 as "export-using", _default$18 as "generic-constructor-with-hook", _default$19 as "idiomatic-cast", _default$20 as "inferable-type-predicate", _default$21 as "inner-as-const", _default$22 as "jsx-tostring", _default$23 as "literal-destructuring", _default$24 as "named-export-with-side-effects", _default$25 as "nested-reduce", _default$26 as "nested-try-catch", _default$27 as "no-commented-out-comment", _default$28 as "no-constant-template-expression", _default$29 as "no-constructed-error-cause", _default$30 as "no-convoluted-boolean-expressions", _default$31 as "no-convoluted-logical-expressions", _default$32 as "no-custom-url-parsing", _default$33 as "no-disallowed-warning-comments", _default$34 as "no-duplicated-return", _default$35 as "no-else-break", _default$36 as "no-else-continue", _default$37 as "no-else-never", _default$38 as "no-else-return", _default$39 as "no-else-throw", _default$40 as "no-empty-attribute", _default$41 as "no-empty-comment", _default$42 as "no-empty-jsx-expression", _default$43 as "no-empty-literal-iteration", _default$44 as "no-extra-false-fallback", _default$45 as "no-extra-nested-boolean-cast", _default$46 as "no-first-last", _default$47 as "no-float-length-check", _default$48 as "no-huge-try-block", _default$49 as "no-huge-useeffect", _default$50 as "no-if-length-for", _default$51 as "no-inline-jsdoc-tag", _default$52 as "no-invalid-date-literal", _default$53 as "no-jsx-statement", _default$54 as "no-lax-array-type", _default$55 as "no-lax-return-type", _default$56 as "no-mutable-literal-fill", _default$57 as "no-nullish-ternary", _default$58 as "no-numbered-comments", _default$59 as "no-obvious-any", _default$60 as "no-optional-type-guard-param", _default$61 as "no-out-of-order-comments", _default$62 as "no-possibly-nullish-equality", _default$63 as "no-redundant-function-declaration", _default$64 as "no-return-to-void", _default$65 as "no-self-object-assign", _default$66 as "no-sloppy-length-check", _default$67 as "no-suspicious-jsx-semicolon", _default$68 as "no-ternary-return", _default$69 as "no-type-guard", _default$70 as "no-unassigned-todo", _default$71 as "no-unbound-catch-error", _default$72 as "no-unused-mutually-referential", _default$73 as "no-unused-param-read", _default$74 as "no-useless-computed-key", _default$75 as "no-useless-iife", _default$76 as "no-useless-logical-fallback", _default$77 as "no-useless-return-undefined", _default$78 as "no-useless-ts-check", _default$79 as "no-useless-use-strict", _default$80 as "no-useless-usememo", _default$81 as "no-whitespace-property", _default$82 as "nullish-object-spread", _default$83 as "optional-call-expression", _default$84 as "prefer-array-from", _default$85 as "prefer-catch-method", _default$86 as "prefer-early-return", _default$87 as "prefer-eqeq-null", _default$88 as "prefer-finally", _default$89 as "prefer-getorinsert", _default$90 as "prefer-has", _default$91 as "prefer-in", _default$92 as "prefer-object-keys-values", _default$93 as "prefer-repeat", _default$94 as "prefer-satisfies", _default$95 as "prefer-string-join", _default$96 as "primitive-valueof", _default$97 as "slim-try", _default$98 as "styled-button-has-type", _default$99 as "styled-transient-props", _default$100 as "suspicious-map-length", _default$101 as "template-tostring", _default$102 as "unsafe-asserted-chain", _default$103 as "unused-object-assign", _default$104 as "unused-object-freeze", _default$105 as "useless-as-const", _default$106 as "useless-assign", _default$107 as "useless-conditional-assign", _default$108 as "useless-intermediary-variable", _default$109 as "useless-mock", _default$110 as "useless-required" };
|
|
61
116
|
}
|
|
62
117
|
//#endregion
|
|
63
118
|
export { index_d_exports };
|