eslint-plugin-qwik 1.3.2 → 1.3.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.
- package/index.js +1 -1
- package/package.json +5 -5
package/index.js
CHANGED
|
@@ -286,7 +286,7 @@ Did you mean to wrap it in \`$()\`?
|
|
|
286
286
|
|
|
287
287
|
{{solution}}
|
|
288
288
|
Check out https://qwik.builder.io/docs/advanced/dollar/ for more details.`,mutableIdentifier:`Mutating let "{{varName}}" within the ({{dollarName}}) closure is not allowed, instead create an object/store/signal and mutate one of its properties.
|
|
289
|
-
Check out https://qwik.builder.io/docs/advanced/dollar/ for more details.`}},create(r){var m;let t={allowAny:((m=r.options[0])==null?void 0:m.allowAny)??!0},n=r.sourceCode.scopeManager,o=Sn.ESLintUtils.getParserServices(r),i=o.esTreeNodeToTSNodeMap,a=o.program.getTypeChecker(),u=new Map,c=[];function y(f){f.references.forEach(p=>{var d,x;let g=p.resolved,l=(d=p.resolved)==null?void 0:d.scope;if(g&&l){let h=(x=g.defs.at(0))==null?void 0:x.type;if(h==="Type"||h==="ImportBinding")return;let S=p.from,O;for(;S&&(O=u.get(S),!O);)S=S.upper;if(S&&O){let j=l.type;if(j==="global"||j==="module")return;let V=p.identifier,ke=i.get(V),R=l;for(;R&&!u.has(R);)R=R.upper;if(R!==S){V.parent&&V.parent.type==="AssignmentExpression"&&V.parent.left===V&&r.report({messageId:"mutableIdentifier",node:p.identifier,data:{varName:p.identifier.name,dollarName:O}});let ce=gv(r,a,ke,p.identifier,t);ce&&r.report({messageId:"referencesOutside",node:p.identifier,data:{varName:p.identifier.name,dollarName:O,reason:vv(ce)}})}}}}),f.childScopes.forEach(y)}return{CallExpression(f){if(f.callee.type==="Identifier"&&f.callee.name.endsWith("$")){let p=f.arguments.at(0);if(p&&p.type==="ArrowFunctionExpression"){let g=n.acquire(p);g&&u.set(g,f.callee.name)}}},JSXAttribute(f){let p=f.name,g=p.type==="JSXIdentifier"?p.name:p.name.name;if(g.endsWith("$")){let l=f.value;if(l&&l.type==="JSXExpressionContainer"){let d=n.acquire(l.expression);if(d)u.set(d,g);else if(l.expression.type==="Identifier"){let x=i.get(l.expression),h=a.getTypeAtLocation(x);if(!hl(h))if(h.isUnionOrIntersection())h.types.every(S=>S.symbol?S.symbol.name==="PropFnInterface":!!(S.flags&(N.default.TypeFlags.Undefined|N.default.TypeFlags.Null)))||r.report({messageId:"invalidJsxDollar",node:l.expression,data:{varName:l.expression.name,solution:`Fix the type of ${l.expression.name} to be
|
|
289
|
+
Check out https://qwik.builder.io/docs/advanced/dollar/ for more details.`}},create(r){var m;let t={allowAny:((m=r.options[0])==null?void 0:m.allowAny)??!0},n=r.sourceCode.scopeManager,o=Sn.ESLintUtils.getParserServices(r),i=o.esTreeNodeToTSNodeMap,a=o.program.getTypeChecker(),u=new Map,c=[];function y(f){f.references.forEach(p=>{var d,x;let g=p.resolved,l=(d=p.resolved)==null?void 0:d.scope;if(g&&l){let h=(x=g.defs.at(0))==null?void 0:x.type;if(h==="Type"||h==="ImportBinding")return;let S=p.from,O;for(;S&&(O=u.get(S),!O);)S=S.upper;if(S&&O){let j=l.type;if(j==="global"||j==="module")return;let V=p.identifier,ke=i.get(V),R=l;for(;R&&!u.has(R);)R=R.upper;if(R!==S){V.parent&&V.parent.type==="AssignmentExpression"&&V.parent.left===V&&r.report({messageId:"mutableIdentifier",node:p.identifier,data:{varName:p.identifier.name,dollarName:O}});let ce=gv(r,a,ke,p.identifier,t);ce&&r.report({messageId:"referencesOutside",node:p.identifier,data:{varName:p.identifier.name,dollarName:O,reason:vv(ce)}})}}}}),f.childScopes.forEach(y)}return{CallExpression(f){if(f.callee.type==="Identifier"&&f.callee.name.endsWith("$")){let p=f.arguments.at(0);if(p&&p.type==="ArrowFunctionExpression"){let g=n.acquire(p);g&&u.set(g,f.callee.name)}}},JSXAttribute(f){let p=f.name,g=p.type==="JSXIdentifier"?p.name:p.name.name;if(g.endsWith("$")){let l=f.value;if(l&&l.type==="JSXExpressionContainer"){let d=n.acquire(l.expression);if(d)u.set(d,g);else if(l.expression.type==="Identifier"){let x=i.get(l.expression),h=a.getTypeAtLocation(x);if(!hl(h))if(h.isUnionOrIntersection())h.types.every(S=>S.symbol?S.symbol.name==="PropFnInterface":!!(S.flags&(N.default.TypeFlags.Undefined|N.default.TypeFlags.Null)))||r.report({messageId:"invalidJsxDollar",node:l.expression,data:{varName:l.expression.name,solution:`Fix the type of ${l.expression.name} to be QRL`}});else{if(h.symbol.name==="PropFnInterface")return;r.report({messageId:"invalidJsxDollar",node:l.expression,data:{varName:l.expression.name,solution:`const ${l.expression.name} = $(
|
|
290
290
|
${bl(h.symbol,r.sourceCode.text)}
|
|
291
291
|
);
|
|
292
292
|
`}})}}}}},Program(f){let p=i.get(f),g=a.getSymbolAtLocation(p);g&&(c=a.getExportsOfModule(g))},"Program:exit"(){y(n.globalScope)}}}});function gv(r,e,t,n,o){let i=e.getTypeAtLocation(t);return hv(r,e,i,t,n,o,new Set)}function vv(r){let e="";return r.location?e+=`"${r.location}" `:e+="it ",e+=`${r.reason}`,e}function hv(r,e,t,n,o,i,a){let u=_e(r,e,t,n,i,0,a);if(u){let c=u.location;return c&&(u.location=`${o.name}.${c}`),u}return u}function _e(r,e,t,n,o,i,a){if(a.has(t)||(a.add(t),t.getProperty("__no_serialize__")||t.getProperty("__qwik_serializable__")))return;if(t.flags&N.default.TypeFlags.Unknown)return{type:t,typeStr:e.typeToString(t),reason:"is unknown, which could be serializable or not, please make the type for specific"};let c=t.flags&N.default.TypeFlags.Any;if(!o.allowAny&&c)return{type:t,typeStr:e.typeToString(t),reason:"is any, which is not serializable"};if(t.flags&N.default.TypeFlags.ESSymbolLike)return{type:t,typeStr:e.typeToString(t),reason:"is Symbol, which is not serializable"};if(t.flags&N.default.TypeFlags.Enum)return{type:t,typeStr:e.typeToString(t),reason:"is an enum, use an string or a number instead"};if(hl(t))return;if(t.getCallSignatures().length>0){let g=t.symbol.name;if(g==="PropFnInterface"||g==="RefFnInterface"||g==="bivarianceHack"||g==="FunctionComponent")return;let l="is a function, which is not serializable";if(i===0&&N.default.isIdentifier(n)){let d=`const ${n.text} = $(
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-qwik",
|
|
3
3
|
"description": "An Open-Source sub-framework designed with a focus on server-side-rendering, lazy-loading, and styling/animation.",
|
|
4
|
-
"version": "1.3.
|
|
4
|
+
"version": "1.3.3",
|
|
5
5
|
"author": "Builder Team",
|
|
6
6
|
"bugs": "https://github.com/BuilderIO/qwik/issues",
|
|
7
7
|
"dependencies": {
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
},
|
|
10
10
|
"devDependencies": {
|
|
11
11
|
"@builder.io/qwik": "workspace:*",
|
|
12
|
-
"@types/eslint": "^8.44.
|
|
12
|
+
"@types/eslint": "^8.44.8",
|
|
13
13
|
"@types/estree": "^1.0.2",
|
|
14
|
-
"@typescript-eslint/rule-tester": "^6.
|
|
15
|
-
"@typescript-eslint/utils": "^6.
|
|
14
|
+
"@typescript-eslint/rule-tester": "^6.13.2",
|
|
15
|
+
"@typescript-eslint/utils": "^6.13.2",
|
|
16
16
|
"redent": "^4.0.0"
|
|
17
17
|
},
|
|
18
18
|
"engines": {
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"license": "MIT",
|
|
28
28
|
"main": "index.js",
|
|
29
29
|
"peerDependencies": {
|
|
30
|
-
"eslint": "^8.
|
|
30
|
+
"eslint": "^8.55.0"
|
|
31
31
|
},
|
|
32
32
|
"repository": {
|
|
33
33
|
"type": "git",
|