text: /**
   * @fileoverview Prevent usage of findDOMNode
   * @author Yannick Croissant
   */
  
  'use strict';
  
  const docsUrl = require('../util/docsUrl');
  
  // ------------------------------------------------------------------------------
  // Rule Definition
  // ------------------------------------------------------------------------------
  
  module.exports = {
    meta: {
      docs: {
        description: 'Prevent usage of findDOMNode',
        category: 'Best Practices',
        recommended: true,
        url: docsUrl('no-find-dom-node')
      },
      schema: []
    },
  
    create(context) {
      // --------------------------------------------------------------------------
      // Public
      // --------------------------------------------------------------------------
  
      return {
  
        CallExpression(node) {
          const callee = node.callee;
  
          const isfindDOMNode = (callee.name === 'findDOMNode') ||
            (callee.property && callee.property.name === 'findDOMNode');
          if (!isfindDOMNode) {
            return;
          }
  
          context.report({
            node: callee,
            message: 'Do not use findDOMNode'
          });
        }
      };
    }
  };
  