Ignore:
Timestamp:
12/12/24 17:06:06 (5 weeks ago)
Author:
stefan toskovski <stefantoska84@…>
Branches:
main
Parents:
d565449
Message:

Pred finalna verzija

File:
1 edited

Legend:

Unmodified
Added
Removed
  • imaps-frontend/node_modules/eslint-plugin-react/lib/rules/no-unused-state.js

    rd565449 r0c6b92a  
    1111
    1212const docsUrl = require('../util/docsUrl');
    13 const ast = require('../util/ast');
     13const astUtil = require('../util/ast');
    1414const componentUtil = require('../util/componentUtil');
    1515const report = require('../util/report');
     
    4545
    4646function isThisExpression(node) {
    47   return ast.unwrapTSAsExpression(uncast(node)).type === 'ThisExpression';
     47  return astUtil.unwrapTSAsExpression(uncast(node)).type === 'ThisExpression';
    4848}
    4949
     
    6666
    6767function isSetStateCall(node) {
    68   const unwrappedCalleeNode = ast.unwrapTSAsExpression(node.callee);
     68  const unwrappedCalleeNode = astUtil.unwrapTSAsExpression(node.callee);
    6969
    7070  return (
     
    7979};
    8080
     81/** @type {import('eslint').Rule.RuleModule} */
    8182module.exports = {
    8283  meta: {
     
    175176    // destructures `this.state`.
    176177    function handleStateDestructuring(node) {
    177       for (const prop of node.properties) {
     178      node.properties.forEach((prop) => {
    178179        if (prop.type === 'Property') {
    179180          addUsedStateField(prop.key);
     
    184185          classInfo.aliases.add(getName(prop.argument));
    185186        }
    186       }
     187      });
    187188    }
    188189
     
    190191    // AssignmentExpressions and VariableDeclarators.
    191192    function handleAssignment(left, right) {
    192       const unwrappedRight = ast.unwrapTSAsExpression(right);
     193      const unwrappedRight = astUtil.unwrapTSAsExpression(right);
    193194
    194195      switch (left.type) {
     
    202203            handleStateDestructuring(left);
    203204          } else if (isThisExpression(unwrappedRight) && classInfo.aliases) {
    204             for (const prop of left.properties) {
     205            left.properties.forEach((prop) => {
    205206              if (prop.type === 'Property' && getName(prop.key) === 'state') {
    206207                const name = getName(prop.value);
     
    211212                }
    212213              }
    213             }
     214            });
    214215          }
    215216          break;
     
    221222    function reportUnusedFields() {
    222223      // Report all unused state fields.
    223       for (const node of classInfo.stateFields) {
     224      classInfo.stateFields.forEach((node) => {
    224225        const name = getName(node.key);
    225226        if (!classInfo.usedStateFields.has(name)) {
     
    231232          });
    232233        }
    233       }
     234      });
    234235    }
    235236
     
    293294        }
    294295
    295         const unwrappedNode = ast.unwrapTSAsExpression(node);
    296         const unwrappedArgumentNode = ast.unwrapTSAsExpression(unwrappedNode.arguments[0]);
     296        const unwrappedNode = astUtil.unwrapTSAsExpression(node);
     297        const unwrappedArgumentNode = astUtil.unwrapTSAsExpression(unwrappedNode.arguments[0]);
    297298
    298299        // If we're looking at a `this.setState({})` invocation, record all the
     
    309310          && unwrappedArgumentNode.type === 'ArrowFunctionExpression'
    310311        ) {
    311           const unwrappedBodyNode = ast.unwrapTSAsExpression(unwrappedArgumentNode.body);
     312          const unwrappedBodyNode = astUtil.unwrapTSAsExpression(unwrappedArgumentNode.body);
    312313
    313314          if (unwrappedBodyNode.type === 'ObjectExpression') {
     
    331332        // If we see state being assigned as a class property using an object
    332333        // expression, record all the fields of that object as state fields.
    333         const unwrappedValueNode = ast.unwrapTSAsExpression(node.value);
     334        const unwrappedValueNode = astUtil.unwrapTSAsExpression(node.value);
    334335
    335336        const name = getName(node.key);
     
    432433        }
    433434
    434         if (parent.key.name === 'getInitialState') {
     435        if (
     436          'key' in parent
     437          && 'name' in parent.key
     438          && parent.key.name === 'getInitialState'
     439        ) {
    435440          const body = node.body.body;
    436441          const lastBodyNode = body[body.length - 1];
     
    453458        }
    454459
    455         const unwrappedLeft = ast.unwrapTSAsExpression(node.left);
    456         const unwrappedRight = ast.unwrapTSAsExpression(node.right);
     460        const unwrappedLeft = astUtil.unwrapTSAsExpression(node.left);
     461        const unwrappedRight = astUtil.unwrapTSAsExpression(node.right);
    457462
    458463        // Check for assignments like `this.state = {}`
     
    464469        ) {
    465470          // Find the nearest function expression containing this assignment.
     471          /** @type {import("eslint").Rule.Node} */
    466472          let fn = node;
    467473          while (fn.type !== 'FunctionExpression' && fn.parent) {
     
    494500          return;
    495501        }
    496         if (isStateReference(ast.unwrapTSAsExpression(node.object))) {
     502        if (isStateReference(astUtil.unwrapTSAsExpression(node.object))) {
    497503          // If we see this.state[foo] access, give up.
    498504          if (node.computed && node.property.type !== 'Literal') {
     
    503509          addUsedStateField(node.property);
    504510        // If we see a `this.state` access in a CallExpression, give up.
    505         } else if (isStateReference(node) && node.parent.type === 'CallExpression') {
     511        } else if (isStateReference(node) && astUtil.isCallExpression(node.parent)) {
    506512          classInfo = null;
    507513        }
Note: See TracChangeset for help on using the changeset viewer.