Sha256: 4cb3149e0436510cc2cfc123fd183a013a49771635356a3fd06addf1859ad609

Contents?: true

Size: 1.39 KB

Versions: 43

Compression:

Stored size: 1.39 KB

Contents

/**
 * @fileoverview Prevent usage of isMounted
 * @author Joe Lencioni
 */
'use strict';

const docsUrl = require('../util/docsUrl');

// ------------------------------------------------------------------------------
// Rule Definition
// ------------------------------------------------------------------------------

module.exports = {
  meta: {
    docs: {
      description: 'Prevent usage of isMounted',
      category: 'Best Practices',
      recommended: true,
      url: docsUrl('no-is-mounted')
    },
    schema: []
  },

  create: function(context) {
    // --------------------------------------------------------------------------
    // Public
    // --------------------------------------------------------------------------

    return {

      CallExpression: function(node) {
        const callee = node.callee;
        if (callee.type !== 'MemberExpression') {
          return;
        }
        if (callee.object.type !== 'ThisExpression' || callee.property.name !== 'isMounted') {
          return;
        }
        const ancestors = context.getAncestors(callee);
        for (let i = 0, j = ancestors.length; i < j; i++) {
          if (ancestors[i].type === 'Property' || ancestors[i].type === 'MethodDefinition') {
            context.report({
              node: callee,
              message: 'Do not use isMounted'
            });
            break;
          }
        }
      }
    };
  }
};

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
govuk_publishing_components-18.0.0 node_modules/eslint-plugin-react/lib/rules/no-is-mounted.js
govuk_publishing_components-17.21.0 node_modules/eslint-plugin-react/lib/rules/no-is-mounted.js
govuk_publishing_components-17.20.0 node_modules/eslint-plugin-react/lib/rules/no-is-mounted.js
govuk_publishing_components-17.19.1 node_modules/eslint-plugin-react/lib/rules/no-is-mounted.js
govuk_publishing_components-17.19.0 node_modules/eslint-plugin-react/lib/rules/no-is-mounted.js
govuk_publishing_components-17.18.0 node_modules/eslint-plugin-react/lib/rules/no-is-mounted.js
govuk_publishing_components-17.17.0 node_modules/eslint-plugin-react/lib/rules/no-is-mounted.js
govuk_publishing_components-17.16.0 node_modules/eslint-plugin-react/lib/rules/no-is-mounted.js
govuk_publishing_components-17.15.0 node_modules/eslint-plugin-react/lib/rules/no-is-mounted.js
govuk_publishing_components-17.14.0 node_modules/eslint-plugin-react/lib/rules/no-is-mounted.js
govuk_publishing_components-17.13.0 node_modules/eslint-plugin-react/lib/rules/no-is-mounted.js
govuk_publishing_components-17.12.2 node_modules/eslint-plugin-react/lib/rules/no-is-mounted.js
govuk_publishing_components-17.12.1 node_modules/eslint-plugin-react/lib/rules/no-is-mounted.js
govuk_publishing_components-17.12.0 node_modules/eslint-plugin-react/lib/rules/no-is-mounted.js
govuk_publishing_components-17.11.0 node_modules/eslint-plugin-react/lib/rules/no-is-mounted.js
govuk_publishing_components-17.10.0 node_modules/eslint-plugin-react/lib/rules/no-is-mounted.js
govuk_publishing_components-17.9.0 node_modules/eslint-plugin-react/lib/rules/no-is-mounted.js
govuk_publishing_components-17.8.0 node_modules/eslint-plugin-react/lib/rules/no-is-mounted.js
govuk_publishing_components-17.7.0 node_modules/eslint-plugin-react/lib/rules/no-is-mounted.js
govuk_publishing_components-17.6.1 node_modules/eslint-plugin-react/lib/rules/no-is-mounted.js