Sha256: 272f54e295167315ce48a5f22dfa348cce2248192008e636f57131c1bfa49a91

Contents?: true

Size: 1.21 KB

Versions: 43

Compression:

Stored size: 1.21 KB

Contents

/**
 * @fileoverview Prevent variables used in JSX to be marked as unused
 * @author Yannick Croissant
 */
'use strict';

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

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

module.exports = {
  meta: {
    docs: {
      description: 'Prevent variables used in JSX to be marked as unused',
      category: 'Best Practices',
      recommended: true,
      url: docsUrl('jsx-uses-vars')
    },
    schema: []
  },

  create: function(context) {
    return {
      JSXOpeningElement: function(node) {
        let name;
        if (node.name.namespace && node.name.namespace.name) {
          // <Foo:Bar>
          name = node.name.namespace.name;
        } else if (node.name.name) {
          // <Foo>
          name = node.name.name;
        } else if (node.name.object) {
          // <Foo...Bar>
          let parent = node.name.object;
          while (parent.object) {
            parent = parent.object;
          }
          name = parent.name;
        } else {
          return;
        }

        context.markVariableAsUsed(name);
      }

    };
  }
};

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/jsx-uses-vars.js
govuk_publishing_components-17.21.0 node_modules/eslint-plugin-react/lib/rules/jsx-uses-vars.js
govuk_publishing_components-17.20.0 node_modules/eslint-plugin-react/lib/rules/jsx-uses-vars.js
govuk_publishing_components-17.19.1 node_modules/eslint-plugin-react/lib/rules/jsx-uses-vars.js
govuk_publishing_components-17.19.0 node_modules/eslint-plugin-react/lib/rules/jsx-uses-vars.js
govuk_publishing_components-17.18.0 node_modules/eslint-plugin-react/lib/rules/jsx-uses-vars.js
govuk_publishing_components-17.17.0 node_modules/eslint-plugin-react/lib/rules/jsx-uses-vars.js
govuk_publishing_components-17.16.0 node_modules/eslint-plugin-react/lib/rules/jsx-uses-vars.js
govuk_publishing_components-17.15.0 node_modules/eslint-plugin-react/lib/rules/jsx-uses-vars.js
govuk_publishing_components-17.14.0 node_modules/eslint-plugin-react/lib/rules/jsx-uses-vars.js
govuk_publishing_components-17.13.0 node_modules/eslint-plugin-react/lib/rules/jsx-uses-vars.js
govuk_publishing_components-17.12.2 node_modules/eslint-plugin-react/lib/rules/jsx-uses-vars.js
govuk_publishing_components-17.12.1 node_modules/eslint-plugin-react/lib/rules/jsx-uses-vars.js
govuk_publishing_components-17.12.0 node_modules/eslint-plugin-react/lib/rules/jsx-uses-vars.js
govuk_publishing_components-17.11.0 node_modules/eslint-plugin-react/lib/rules/jsx-uses-vars.js
govuk_publishing_components-17.10.0 node_modules/eslint-plugin-react/lib/rules/jsx-uses-vars.js
govuk_publishing_components-17.9.0 node_modules/eslint-plugin-react/lib/rules/jsx-uses-vars.js
govuk_publishing_components-17.8.0 node_modules/eslint-plugin-react/lib/rules/jsx-uses-vars.js
govuk_publishing_components-17.7.0 node_modules/eslint-plugin-react/lib/rules/jsx-uses-vars.js
govuk_publishing_components-17.6.1 node_modules/eslint-plugin-react/lib/rules/jsx-uses-vars.js