123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- /**
- * @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);
- }
- };
- }
- };
|