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/boolean-prop-naming.js

    rd565449 r0c6b92a  
    1111const Components = require('../util/Components');
    1212const propsUtil = require('../util/props');
     13const astUtil = require('../util/ast');
    1314const docsUrl = require('../util/docsUrl');
    1415const propWrapperUtil = require('../util/propWrapper');
     
    1819const getSourceCode = eslintUtil.getSourceCode;
    1920const getText = eslintUtil.getText;
     21
     22/**
     23 * Checks if prop is nested
     24 * @param {Object} prop Property object, single prop type declaration
     25 * @returns {boolean}
     26 */
     27function nestedPropTypes(prop) {
     28  return (
     29    prop.type === 'Property'
     30    && astUtil.isCallExpression(prop.value)
     31  );
     32}
    2033
    2134// ------------------------------------------------------------------------------
     
    129142     * Checks if prop is declared in flow way
    130143     * @param {Object} prop Property object, single prop type declaration
    131      * @returns {Boolean}
     144     * @returns {boolean}
    132145     */
    133146    function flowCheck(prop) {
     
    142155     * Checks if prop is declared in regular way
    143156     * @param {Object} prop Property object, single prop type declaration
    144      * @returns {Boolean}
     157     * @returns {boolean}
    145158     */
    146159    function regularCheck(prop) {
     
    164177
    165178    /**
    166      * Checks if prop is nested
    167      * @param {Object} prop Property object, single prop type declaration
    168      * @returns {Boolean}
    169      */
    170     function nestedPropTypes(prop) {
    171       return (
    172         prop.type === 'Property'
    173         && prop.value.type === 'CallExpression'
    174       );
    175     }
    176 
    177     /**
    178179     * Runs recursive check on all proptypes
    179180     * @param {Array} proptypes A list of Property object (for each proptype defined)
     
    181182     */
    182183    function runCheck(proptypes, addInvalidProp) {
    183       (proptypes || []).forEach((prop) => {
    184         if (config.validateNested && nestedPropTypes(prop)) {
    185           runCheck(prop.value.arguments[0].properties, addInvalidProp);
    186           return;
    187         }
    188         if (flowCheck(prop) || regularCheck(prop) || tsCheck(prop)) {
    189           addInvalidProp(prop);
    190         }
    191       });
     184      if (proptypes) {
     185        proptypes.forEach((prop) => {
     186          if (config.validateNested && nestedPropTypes(prop)) {
     187            runCheck(prop.value.arguments[0].properties, addInvalidProp);
     188            return;
     189          }
     190          if (flowCheck(prop) || regularCheck(prop) || tsCheck(prop)) {
     191            addInvalidProp(prop);
     192          }
     193        });
     194      }
    192195    }
    193196
     
    257260      }
    258261
    259       const annotationTypeParams = component.node.parent.id.typeAnnotation.typeAnnotation.typeParameters;
     262      const annotationTypeArguments = propsUtil.getTypeArguments(
     263        component.node.parent.id.typeAnnotation.typeAnnotation
     264      );
    260265      if (
    261         annotationTypeParams && (
    262           annotationTypeParams.type === 'TSTypeParameterInstantiation'
    263           || annotationTypeParams.type === 'TypeParameterInstantiation'
     266        annotationTypeArguments && (
     267          annotationTypeArguments.type === 'TSTypeParameterInstantiation'
     268          || annotationTypeArguments.type === 'TypeParameterInstantiation'
    264269        )
    265270      ) {
    266         return annotationTypeParams.params.find(
     271        return annotationTypeArguments.params.find(
    267272          (param) => param.type === 'TSTypeReference' || param.type === 'GenericTypeAnnotation'
    268273        );
     
    310315        if (
    311316          node.value
    312           && node.value.type === 'CallExpression'
     317          && astUtil.isCallExpression(node.value)
    313318          && propWrapperUtil.isPropWrapperFunction(
    314319            context,
     
    336341        const right = node.parent.right;
    337342        if (
    338           right.type === 'CallExpression'
     343          astUtil.isCallExpression(right)
    339344          && propWrapperUtil.isPropWrapperFunction(
    340345            context,
Note: See TracChangeset for help on using the changeset viewer.