++});`.trim();var $r={meta:{type:"problem",docs:{description:"Object destructuring is not recommended for component$",category:"Variables",recommended:!0,url:"https://qwik.builder.io/docs/advanced/eslint/#use-method-usage"},messages:{"use-after-await":"Calling use* methods after await is not safe.","use-wrong-function":"Calling use* methods in wrong function.","use-not-root":"Calling use* methods in non-root component."}},create(e){if(e.getSourceCode().getAllComments().some(n=>n.value.includes("@jsxImportSource")))return{};let t=[];return{ArrowFunctionExpression(){t.push({await:!1})},"ArrowFunctionExpression:exit"(n){t.pop()},FunctionExpression(){t.push({await:!1})},"FunctionExpression:exit"(n){t.pop()},AwaitExpression(){let n=t[t.length-1];n&&(n.await=!0)},"CallExpression[callee.name=/^use[A-Z]/]"(n){var i,l;let o=t[t.length-1];o&&o.await&&e.report({node:n,messageId:"use-after-await"});let a=n;for(;a=a.parent;)switch(a.type){case"VariableDeclarator":case"VariableDeclaration":case"ExpressionStatement":case"MemberExpression":case"BinaryExpression":case"UnaryExpression":case"ReturnStatement":case"BlockStatement":case"ChainExpression":case"Property":case"ObjectExpression":case"CallExpression":case"TSAsExpression":break;case"ArrowFunctionExpression":case"FunctionExpression":if(a.parent.type==="VariableDeclarator"&&((i=a.parent.id)==null?void 0:i.type)==="Identifier"&&a.parent.id.name.startsWith("use")||a.parent.type==="CallExpression"&&a.parent.callee.type==="Identifier"&&a.parent.callee.name==="component$")return;e.report({node:n,messageId:"use-wrong-function"});return;case"FunctionDeclaration":(l=a.id)!=null&&l.name.startsWith("use")||e.report({node:n,messageId:"use-wrong-function"});return;default:e.report({node:n,messageId:"use-not-root"});return}}}}},Rs=`
0 commit comments