@qq99/eslint-plugin-solid 0.18.0-no-reactive-read-in-effect-callback.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/LICENSE +21 -0
- package/README.md +289 -0
- package/dist/chunk-4UZNJ5MS.mjs +32 -0
- package/dist/chunk-4UZNJ5MS.mjs.map +1 -0
- package/dist/chunk-EBU4C5NV.mjs +77 -0
- package/dist/chunk-EBU4C5NV.mjs.map +1 -0
- package/dist/chunk-LE6SW2M3.mjs +6231 -0
- package/dist/chunk-LE6SW2M3.mjs.map +1 -0
- package/dist/chunk-MHDQJMLE.mjs +39 -0
- package/dist/chunk-MHDQJMLE.mjs.map +1 -0
- package/dist/configs/recommended.d.mts +109 -0
- package/dist/configs/recommended.d.ts +109 -0
- package/dist/configs/recommended.js +5877 -0
- package/dist/configs/recommended.js.map +1 -0
- package/dist/configs/recommended.mjs +5 -0
- package/dist/configs/recommended.mjs.map +1 -0
- package/dist/configs/typescript.d.mts +103 -0
- package/dist/configs/typescript.d.ts +103 -0
- package/dist/configs/typescript.js +6246 -0
- package/dist/configs/typescript.js.map +1 -0
- package/dist/configs/typescript.mjs +6 -0
- package/dist/configs/typescript.mjs.map +1 -0
- package/dist/configs/v2-strict.d.mts +130 -0
- package/dist/configs/v2-strict.d.ts +130 -0
- package/dist/configs/v2-strict.js +6317 -0
- package/dist/configs/v2-strict.js.map +1 -0
- package/dist/configs/v2-strict.mjs +7 -0
- package/dist/configs/v2-strict.mjs.map +1 -0
- package/dist/configs/v2.d.mts +127 -0
- package/dist/configs/v2.d.ts +127 -0
- package/dist/configs/v2.js +6289 -0
- package/dist/configs/v2.js.map +1 -0
- package/dist/configs/v2.mjs +6 -0
- package/dist/configs/v2.mjs.map +1 -0
- package/dist/index.d.mts +740 -0
- package/dist/index.d.ts +740 -0
- package/dist/index.js +6365 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +42 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +109 -0
- package/src/compat.ts +53 -0
- package/src/configs/recommended.ts +48 -0
- package/src/configs/typescript.ts +21 -0
- package/src/configs/v2-strict.ts +28 -0
- package/src/configs/v2.ts +68 -0
- package/src/deps.d.ts +1 -0
- package/src/index.ts +29 -0
- package/src/plugin.ts +92 -0
- package/src/rules/components-return-once.ts +209 -0
- package/src/rules/event-handlers.ts +397 -0
- package/src/rules/imports.ts +338 -0
- package/src/rules/jsx-no-duplicate-props.ts +110 -0
- package/src/rules/jsx-no-script-url.ts +61 -0
- package/src/rules/jsx-no-undef.ts +230 -0
- package/src/rules/jsx-uses-vars.ts +66 -0
- package/src/rules/no-accessor-as-prop.ts +147 -0
- package/src/rules/no-array-handlers.ts +57 -0
- package/src/rules/no-boolean-enumerated-attribute.ts +209 -0
- package/src/rules/no-browser-globals-in-server-function.ts +108 -0
- package/src/rules/no-destructure.ts +245 -0
- package/src/rules/no-innerhtml.ts +143 -0
- package/src/rules/no-invalid-server-capture.ts +104 -0
- package/src/rules/no-module-scope-reactive-primitive.ts +69 -0
- package/src/rules/no-proxy-apis.ts +96 -0
- package/src/rules/no-react-deps.ts +68 -0
- package/src/rules/no-react-specific-props.ts +60 -0
- package/src/rules/no-reactive-read-in-effect-callback.ts +570 -0
- package/src/rules/no-restated-default-options.ts +96 -0
- package/src/rules/no-single-arg-create-effect.ts +56 -0
- package/src/rules/no-store-mutation-outside-setter.ts +137 -0
- package/src/rules/no-unknown-namespaces.ts +140 -0
- package/src/rules/no-unused-signal.ts +119 -0
- package/src/rules/no-write-in-pure-computation.ts +231 -0
- package/src/rules/prefer-classlist.ts +93 -0
- package/src/rules/prefer-for.ts +93 -0
- package/src/rules/prefer-onSettled-for-side-effects.ts +101 -0
- package/src/rules/prefer-show.ts +102 -0
- package/src/rules/prefer-structured-class.ts +117 -0
- package/src/rules/reactivity.ts +1730 -0
- package/src/rules/removed-api.ts +212 -0
- package/src/rules/require-async-server-function.ts +122 -0
- package/src/rules/self-closing-comp.ts +150 -0
- package/src/rules/style-prop.ts +140 -0
- package/src/rules/valid-use-server.ts +192 -0
- package/src/rules/validate-jsx-nesting.ts +1 -0
- package/src/utils/reactive-imports.ts +382 -0
- package/src/utils/reactive-types.ts +272 -0
- package/src/utils/reactive-values.ts +162 -0
- package/src/utils.ts +442 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import {
|
|
2
|
+
require_v2
|
|
3
|
+
} from "./chunk-EBU4C5NV.mjs";
|
|
4
|
+
import {
|
|
5
|
+
__commonJS,
|
|
6
|
+
__toESM
|
|
7
|
+
} from "./chunk-LE6SW2M3.mjs";
|
|
8
|
+
|
|
9
|
+
// src/configs/v2-strict.ts
|
|
10
|
+
var require_v2_strict = __commonJS({
|
|
11
|
+
"src/configs/v2-strict.ts"(exports, module) {
|
|
12
|
+
var import_v2 = __toESM(require_v2());
|
|
13
|
+
var v2Strict = {
|
|
14
|
+
plugins: import_v2.default.plugins,
|
|
15
|
+
languageOptions: import_v2.default.languageOptions,
|
|
16
|
+
settings: import_v2.default.settings,
|
|
17
|
+
rules: {
|
|
18
|
+
...import_v2.default.rules,
|
|
19
|
+
// module-scope reactive state is shared across SSR requests
|
|
20
|
+
"solid/no-module-scope-reactive-primitive": 2,
|
|
21
|
+
// side-effectful setup in component bodies belongs in onSettled;
|
|
22
|
+
// warn-level because detection is a heuristic over a known-call list
|
|
23
|
+
"solid/prefer-onSettled-for-side-effects": 1,
|
|
24
|
+
// restating default prop/option values is noise
|
|
25
|
+
"solid/no-restated-default-options": 2,
|
|
26
|
+
// graduate the class-string heuristic to an error
|
|
27
|
+
"solid/prefer-structured-class": 2,
|
|
28
|
+
// graduate the half-unused signal check to an error
|
|
29
|
+
"solid/no-unused-signal": 2
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
module.exports = v2Strict;
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
export {
|
|
37
|
+
require_v2_strict
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=chunk-MHDQJMLE.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/configs/v2-strict.ts"],"sourcesContent":["import type { TSESLint } from \"@typescript-eslint/utils\";\n\nimport v2 from \"./v2\";\n\n// Everything in the v2 config, plus opinionated rules that are valid patterns\n// in some apps (e.g. client-only) but hazards in others. Intended for teams\n// that want the plugin's strongest opinions.\nconst v2Strict = {\n plugins: v2.plugins,\n languageOptions: v2.languageOptions,\n settings: v2.settings,\n rules: {\n ...v2.rules,\n // module-scope reactive state is shared across SSR requests\n \"solid/no-module-scope-reactive-primitive\": 2,\n // side-effectful setup in component bodies belongs in onSettled;\n // warn-level because detection is a heuristic over a known-call list\n \"solid/prefer-onSettled-for-side-effects\": 1,\n // restating default prop/option values is noise\n \"solid/no-restated-default-options\": 2,\n // graduate the class-string heuristic to an error\n \"solid/prefer-structured-class\": 2,\n // graduate the half-unused signal check to an error\n \"solid/no-unused-signal\": 2,\n },\n} satisfies TSESLint.FlatConfig.Config;\n\nexport = v2Strict;\n"],"mappings":";;;;;;;;;AAAA;AAAA;AAEA,oBAAe;AAKf,QAAM,WAAW;AAAA,MACf,SAAS,UAAAA,QAAG;AAAA,MACZ,iBAAiB,UAAAA,QAAG;AAAA,MACpB,UAAU,UAAAA,QAAG;AAAA,MACb,OAAO;AAAA,QACL,GAAG,UAAAA,QAAG;AAAA;AAAA,QAEN,4CAA4C;AAAA;AAAA;AAAA,QAG5C,2CAA2C;AAAA;AAAA,QAE3C,qCAAqC;AAAA;AAAA,QAErC,iCAAiC;AAAA;AAAA,QAEjC,0BAA0B;AAAA,MAC5B;AAAA,IACF;AAEA,qBAAS;AAAA;AAAA;","names":["v2"]}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { TSESLint } from '@typescript-eslint/utils';
|
|
2
|
+
|
|
3
|
+
declare const recommended: {
|
|
4
|
+
plugins: {
|
|
5
|
+
solid: {
|
|
6
|
+
meta: {
|
|
7
|
+
name: any;
|
|
8
|
+
version: any;
|
|
9
|
+
};
|
|
10
|
+
rules: {
|
|
11
|
+
"components-return-once": TSESLint.RuleModule<"noEarlyReturn" | "noConditionalReturn", [], unknown, TSESLint.RuleListener>;
|
|
12
|
+
"event-handlers": TSESLint.RuleModule<"naming" | "capitalization" | "nonstandard" | "make-handler" | "make-attr" | "detected-attr" | "spread-handler" | "lowercase-attribute-v2" | "static-handler-v2", [({
|
|
13
|
+
ignoreCase?: boolean;
|
|
14
|
+
warnOnSpread?: boolean;
|
|
15
|
+
} | undefined)?], unknown, TSESLint.RuleListener>;
|
|
16
|
+
imports: TSESLint.RuleModule<"prefer-source", [], unknown, TSESLint.RuleListener>;
|
|
17
|
+
"jsx-no-duplicate-props": TSESLint.RuleModule<"noDuplicateProps" | "noDuplicateClass" | "noDuplicateClassV2" | "noDuplicateChildren", [({
|
|
18
|
+
ignoreCase?: boolean;
|
|
19
|
+
} | undefined)?], unknown, TSESLint.RuleListener>;
|
|
20
|
+
"jsx-no-undef": TSESLint.RuleModule<"undefined" | "customDirectiveUndefined" | "autoImport", [({
|
|
21
|
+
allowGlobals?: boolean;
|
|
22
|
+
autoImport?: boolean;
|
|
23
|
+
typescriptEnabled?: boolean;
|
|
24
|
+
} | undefined)?], unknown, TSESLint.RuleListener>;
|
|
25
|
+
"jsx-no-script-url": TSESLint.RuleModule<"noJSURL", [], unknown, TSESLint.RuleListener>;
|
|
26
|
+
"jsx-uses-vars": TSESLint.RuleModule<never, [], unknown, TSESLint.RuleListener>;
|
|
27
|
+
"no-accessor-as-prop": TSESLint.RuleModule<"accessorAsProp" | "functionAsProp", [], unknown, TSESLint.RuleListener>;
|
|
28
|
+
"no-boolean-enumerated-attribute": TSESLint.RuleModule<"booleanValue" | "booleanExpression" | "useStrings", [], unknown, TSESLint.RuleListener>;
|
|
29
|
+
"no-browser-globals-in-server-function": TSESLint.RuleModule<"browserGlobal", [], unknown, TSESLint.RuleListener>;
|
|
30
|
+
"no-destructure": TSESLint.RuleModule<"noDestructure", [], unknown, TSESLint.RuleListener>;
|
|
31
|
+
"no-innerhtml": TSESLint.RuleModule<"dangerous" | "conflict" | "notHtml" | "useInnerText" | "dangerouslySetInnerHTML", [({
|
|
32
|
+
allowStatic?: boolean;
|
|
33
|
+
} | undefined)?], unknown, TSESLint.RuleListener>;
|
|
34
|
+
"no-invalid-server-capture": TSESLint.RuleModule<"invalidCapture", [], unknown, TSESLint.RuleListener>;
|
|
35
|
+
"no-module-scope-reactive-primitive": TSESLint.RuleModule<"moduleScopePrimitive", [], unknown, TSESLint.RuleListener>;
|
|
36
|
+
"no-proxy-apis": TSESLint.RuleModule<"noStore" | "spreadCall" | "spreadMember" | "proxyLiteral" | "mergeProps", [], unknown, TSESLint.RuleListener>;
|
|
37
|
+
"no-react-deps": TSESLint.RuleModule<"noUselessDep", [], unknown, TSESLint.RuleListener>;
|
|
38
|
+
"no-react-specific-props": TSESLint.RuleModule<"prefer" | "noUselessKey", [], unknown, TSESLint.RuleListener>;
|
|
39
|
+
"no-reactive-read-in-effect-callback": TSESLint.RuleModule<"untrackedRead", [{
|
|
40
|
+
reactiveObjectFactories?: string[];
|
|
41
|
+
}], unknown, TSESLint.RuleListener>;
|
|
42
|
+
"no-restated-default-options": TSESLint.RuleModule<"restatedDefault", [], unknown, TSESLint.RuleListener>;
|
|
43
|
+
"no-single-arg-create-effect": TSESLint.RuleModule<"singleArgEffect" | "singleArgRenderEffect", [], unknown, TSESLint.RuleListener>;
|
|
44
|
+
"no-store-mutation-outside-setter": TSESLint.RuleModule<"mutateStore" | "mutateProjection", [], unknown, TSESLint.RuleListener>;
|
|
45
|
+
"no-unknown-namespaces": TSESLint.RuleModule<"unknown" | "style" | "component" | "component-suggest" | "v2Namespace", [({
|
|
46
|
+
allowedNamespaces: Array<string>;
|
|
47
|
+
} | undefined)?], unknown, TSESLint.RuleListener>;
|
|
48
|
+
"no-unused-signal": TSESLint.RuleModule<"neverWritten" | "neverRead" | "replaceWithAccessor", [], unknown, TSESLint.RuleListener>;
|
|
49
|
+
"no-write-in-pure-computation": TSESLint.RuleModule<"writeInMemo" | "writeInCompute" | "writeInComponent", [], unknown, TSESLint.RuleListener>;
|
|
50
|
+
"prefer-classlist": TSESLint.RuleModule<"preferClasslist", [({
|
|
51
|
+
classnames?: Array<string>;
|
|
52
|
+
} | undefined)?], unknown, TSESLint.RuleListener>;
|
|
53
|
+
"prefer-for": TSESLint.RuleModule<"preferFor" | "preferForOrIndex", [], unknown, TSESLint.RuleListener>;
|
|
54
|
+
"prefer-onSettled-for-side-effects": TSESLint.RuleModule<"sideEffectInBody", [], unknown, TSESLint.RuleListener>;
|
|
55
|
+
"prefer-show": TSESLint.RuleModule<"preferShowAnd" | "preferShowTernary", [], unknown, TSESLint.RuleListener>;
|
|
56
|
+
"prefer-structured-class": TSESLint.RuleModule<"manualClassString" | "useStructuredForm", [], unknown, TSESLint.RuleListener>;
|
|
57
|
+
reactivity: TSESLint.RuleModule<"noWrite" | "untrackedReactive" | "expectedFunctionGotExpression" | "badSignal" | "badUnnamedDerivedSignal" | "shouldDestructure" | "shouldAssign" | "noAsyncTrackedScope" | "readAfterAwait" | "staleCapture" | "providerValue", [{
|
|
58
|
+
customReactiveFunctions: string[];
|
|
59
|
+
}], unknown, TSESLint.RuleListener>;
|
|
60
|
+
"removed-api": TSESLint.RuleModule<"renamed" | "removed" | "webMoved" | "storeMoved" | "classList", [], unknown, TSESLint.RuleListener>;
|
|
61
|
+
"require-async-server-function": TSESLint.RuleModule<"asyncServerFunction", [], unknown, TSESLint.RuleListener>;
|
|
62
|
+
"self-closing-comp": TSESLint.RuleModule<"selfClose" | "dontSelfClose", [({
|
|
63
|
+
component?: "all" | "none";
|
|
64
|
+
html?: "all" | "void" | "none";
|
|
65
|
+
} | undefined)?], unknown, TSESLint.RuleListener>;
|
|
66
|
+
"style-prop": TSESLint.RuleModule<"kebabStyleProp" | "invalidStyleProp" | "numericStyleValue" | "stringStyle", [({
|
|
67
|
+
styleProps?: Array<string>;
|
|
68
|
+
allowString?: boolean;
|
|
69
|
+
} | undefined)?], unknown, TSESLint.RuleListener>;
|
|
70
|
+
"valid-use-server": TSESLint.RuleModule<"misplacedDirective" | "templateDirective" | "ineligiblePosition" | "nonFunctionExport" | "clientWrapper", [{
|
|
71
|
+
clientWrappers: string[];
|
|
72
|
+
}], unknown, TSESLint.RuleListener>;
|
|
73
|
+
"no-array-handlers": TSESLint.RuleModule<"noArrayHandlers", [], unknown, TSESLint.RuleListener>;
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
languageOptions: {
|
|
78
|
+
sourceType: "module";
|
|
79
|
+
parserOptions: {
|
|
80
|
+
ecmaFeatures: {
|
|
81
|
+
jsx: true;
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
rules: {
|
|
86
|
+
"solid/jsx-no-duplicate-props": 2;
|
|
87
|
+
"solid/jsx-no-undef": 2;
|
|
88
|
+
"solid/jsx-uses-vars": 2;
|
|
89
|
+
"solid/no-unknown-namespaces": 2;
|
|
90
|
+
"solid/no-innerhtml": 2;
|
|
91
|
+
"solid/jsx-no-script-url": 2;
|
|
92
|
+
"solid/components-return-once": 1;
|
|
93
|
+
"solid/no-destructure": 2;
|
|
94
|
+
"solid/prefer-for": 2;
|
|
95
|
+
"solid/reactivity": 1;
|
|
96
|
+
"solid/event-handlers": 1;
|
|
97
|
+
"solid/imports": 1;
|
|
98
|
+
"solid/style-prop": 1;
|
|
99
|
+
"solid/no-react-deps": 1;
|
|
100
|
+
"solid/no-react-specific-props": 1;
|
|
101
|
+
"solid/self-closing-comp": 1;
|
|
102
|
+
"solid/no-array-handlers": 0;
|
|
103
|
+
"solid/prefer-show": 0;
|
|
104
|
+
"solid/no-proxy-apis": 0;
|
|
105
|
+
"solid/prefer-classlist": 0;
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
export { recommended as default };
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { TSESLint } from '@typescript-eslint/utils';
|
|
2
|
+
|
|
3
|
+
declare const recommended: {
|
|
4
|
+
plugins: {
|
|
5
|
+
solid: {
|
|
6
|
+
meta: {
|
|
7
|
+
name: any;
|
|
8
|
+
version: any;
|
|
9
|
+
};
|
|
10
|
+
rules: {
|
|
11
|
+
"components-return-once": TSESLint.RuleModule<"noEarlyReturn" | "noConditionalReturn", [], unknown, TSESLint.RuleListener>;
|
|
12
|
+
"event-handlers": TSESLint.RuleModule<"naming" | "capitalization" | "nonstandard" | "make-handler" | "make-attr" | "detected-attr" | "spread-handler" | "lowercase-attribute-v2" | "static-handler-v2", [({
|
|
13
|
+
ignoreCase?: boolean;
|
|
14
|
+
warnOnSpread?: boolean;
|
|
15
|
+
} | undefined)?], unknown, TSESLint.RuleListener>;
|
|
16
|
+
imports: TSESLint.RuleModule<"prefer-source", [], unknown, TSESLint.RuleListener>;
|
|
17
|
+
"jsx-no-duplicate-props": TSESLint.RuleModule<"noDuplicateProps" | "noDuplicateClass" | "noDuplicateClassV2" | "noDuplicateChildren", [({
|
|
18
|
+
ignoreCase?: boolean;
|
|
19
|
+
} | undefined)?], unknown, TSESLint.RuleListener>;
|
|
20
|
+
"jsx-no-undef": TSESLint.RuleModule<"undefined" | "customDirectiveUndefined" | "autoImport", [({
|
|
21
|
+
allowGlobals?: boolean;
|
|
22
|
+
autoImport?: boolean;
|
|
23
|
+
typescriptEnabled?: boolean;
|
|
24
|
+
} | undefined)?], unknown, TSESLint.RuleListener>;
|
|
25
|
+
"jsx-no-script-url": TSESLint.RuleModule<"noJSURL", [], unknown, TSESLint.RuleListener>;
|
|
26
|
+
"jsx-uses-vars": TSESLint.RuleModule<never, [], unknown, TSESLint.RuleListener>;
|
|
27
|
+
"no-accessor-as-prop": TSESLint.RuleModule<"accessorAsProp" | "functionAsProp", [], unknown, TSESLint.RuleListener>;
|
|
28
|
+
"no-boolean-enumerated-attribute": TSESLint.RuleModule<"booleanValue" | "booleanExpression" | "useStrings", [], unknown, TSESLint.RuleListener>;
|
|
29
|
+
"no-browser-globals-in-server-function": TSESLint.RuleModule<"browserGlobal", [], unknown, TSESLint.RuleListener>;
|
|
30
|
+
"no-destructure": TSESLint.RuleModule<"noDestructure", [], unknown, TSESLint.RuleListener>;
|
|
31
|
+
"no-innerhtml": TSESLint.RuleModule<"dangerous" | "conflict" | "notHtml" | "useInnerText" | "dangerouslySetInnerHTML", [({
|
|
32
|
+
allowStatic?: boolean;
|
|
33
|
+
} | undefined)?], unknown, TSESLint.RuleListener>;
|
|
34
|
+
"no-invalid-server-capture": TSESLint.RuleModule<"invalidCapture", [], unknown, TSESLint.RuleListener>;
|
|
35
|
+
"no-module-scope-reactive-primitive": TSESLint.RuleModule<"moduleScopePrimitive", [], unknown, TSESLint.RuleListener>;
|
|
36
|
+
"no-proxy-apis": TSESLint.RuleModule<"noStore" | "spreadCall" | "spreadMember" | "proxyLiteral" | "mergeProps", [], unknown, TSESLint.RuleListener>;
|
|
37
|
+
"no-react-deps": TSESLint.RuleModule<"noUselessDep", [], unknown, TSESLint.RuleListener>;
|
|
38
|
+
"no-react-specific-props": TSESLint.RuleModule<"prefer" | "noUselessKey", [], unknown, TSESLint.RuleListener>;
|
|
39
|
+
"no-reactive-read-in-effect-callback": TSESLint.RuleModule<"untrackedRead", [{
|
|
40
|
+
reactiveObjectFactories?: string[];
|
|
41
|
+
}], unknown, TSESLint.RuleListener>;
|
|
42
|
+
"no-restated-default-options": TSESLint.RuleModule<"restatedDefault", [], unknown, TSESLint.RuleListener>;
|
|
43
|
+
"no-single-arg-create-effect": TSESLint.RuleModule<"singleArgEffect" | "singleArgRenderEffect", [], unknown, TSESLint.RuleListener>;
|
|
44
|
+
"no-store-mutation-outside-setter": TSESLint.RuleModule<"mutateStore" | "mutateProjection", [], unknown, TSESLint.RuleListener>;
|
|
45
|
+
"no-unknown-namespaces": TSESLint.RuleModule<"unknown" | "style" | "component" | "component-suggest" | "v2Namespace", [({
|
|
46
|
+
allowedNamespaces: Array<string>;
|
|
47
|
+
} | undefined)?], unknown, TSESLint.RuleListener>;
|
|
48
|
+
"no-unused-signal": TSESLint.RuleModule<"neverWritten" | "neverRead" | "replaceWithAccessor", [], unknown, TSESLint.RuleListener>;
|
|
49
|
+
"no-write-in-pure-computation": TSESLint.RuleModule<"writeInMemo" | "writeInCompute" | "writeInComponent", [], unknown, TSESLint.RuleListener>;
|
|
50
|
+
"prefer-classlist": TSESLint.RuleModule<"preferClasslist", [({
|
|
51
|
+
classnames?: Array<string>;
|
|
52
|
+
} | undefined)?], unknown, TSESLint.RuleListener>;
|
|
53
|
+
"prefer-for": TSESLint.RuleModule<"preferFor" | "preferForOrIndex", [], unknown, TSESLint.RuleListener>;
|
|
54
|
+
"prefer-onSettled-for-side-effects": TSESLint.RuleModule<"sideEffectInBody", [], unknown, TSESLint.RuleListener>;
|
|
55
|
+
"prefer-show": TSESLint.RuleModule<"preferShowAnd" | "preferShowTernary", [], unknown, TSESLint.RuleListener>;
|
|
56
|
+
"prefer-structured-class": TSESLint.RuleModule<"manualClassString" | "useStructuredForm", [], unknown, TSESLint.RuleListener>;
|
|
57
|
+
reactivity: TSESLint.RuleModule<"noWrite" | "untrackedReactive" | "expectedFunctionGotExpression" | "badSignal" | "badUnnamedDerivedSignal" | "shouldDestructure" | "shouldAssign" | "noAsyncTrackedScope" | "readAfterAwait" | "staleCapture" | "providerValue", [{
|
|
58
|
+
customReactiveFunctions: string[];
|
|
59
|
+
}], unknown, TSESLint.RuleListener>;
|
|
60
|
+
"removed-api": TSESLint.RuleModule<"renamed" | "removed" | "webMoved" | "storeMoved" | "classList", [], unknown, TSESLint.RuleListener>;
|
|
61
|
+
"require-async-server-function": TSESLint.RuleModule<"asyncServerFunction", [], unknown, TSESLint.RuleListener>;
|
|
62
|
+
"self-closing-comp": TSESLint.RuleModule<"selfClose" | "dontSelfClose", [({
|
|
63
|
+
component?: "all" | "none";
|
|
64
|
+
html?: "all" | "void" | "none";
|
|
65
|
+
} | undefined)?], unknown, TSESLint.RuleListener>;
|
|
66
|
+
"style-prop": TSESLint.RuleModule<"kebabStyleProp" | "invalidStyleProp" | "numericStyleValue" | "stringStyle", [({
|
|
67
|
+
styleProps?: Array<string>;
|
|
68
|
+
allowString?: boolean;
|
|
69
|
+
} | undefined)?], unknown, TSESLint.RuleListener>;
|
|
70
|
+
"valid-use-server": TSESLint.RuleModule<"misplacedDirective" | "templateDirective" | "ineligiblePosition" | "nonFunctionExport" | "clientWrapper", [{
|
|
71
|
+
clientWrappers: string[];
|
|
72
|
+
}], unknown, TSESLint.RuleListener>;
|
|
73
|
+
"no-array-handlers": TSESLint.RuleModule<"noArrayHandlers", [], unknown, TSESLint.RuleListener>;
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
languageOptions: {
|
|
78
|
+
sourceType: "module";
|
|
79
|
+
parserOptions: {
|
|
80
|
+
ecmaFeatures: {
|
|
81
|
+
jsx: true;
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
rules: {
|
|
86
|
+
"solid/jsx-no-duplicate-props": 2;
|
|
87
|
+
"solid/jsx-no-undef": 2;
|
|
88
|
+
"solid/jsx-uses-vars": 2;
|
|
89
|
+
"solid/no-unknown-namespaces": 2;
|
|
90
|
+
"solid/no-innerhtml": 2;
|
|
91
|
+
"solid/jsx-no-script-url": 2;
|
|
92
|
+
"solid/components-return-once": 1;
|
|
93
|
+
"solid/no-destructure": 2;
|
|
94
|
+
"solid/prefer-for": 2;
|
|
95
|
+
"solid/reactivity": 1;
|
|
96
|
+
"solid/event-handlers": 1;
|
|
97
|
+
"solid/imports": 1;
|
|
98
|
+
"solid/style-prop": 1;
|
|
99
|
+
"solid/no-react-deps": 1;
|
|
100
|
+
"solid/no-react-specific-props": 1;
|
|
101
|
+
"solid/self-closing-comp": 1;
|
|
102
|
+
"solid/no-array-handlers": 0;
|
|
103
|
+
"solid/prefer-show": 0;
|
|
104
|
+
"solid/no-proxy-apis": 0;
|
|
105
|
+
"solid/prefer-classlist": 0;
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
export { recommended as default };
|