Sha256: e501378197803428f35ee60609754e358677372e0016106ee1cbb49125711331

Contents?: true

Size: 1.62 KB

Versions: 43

Compression:

Stored size: 1.62 KB

Contents

/**
 * @fileoverview Comments inside children section of tag should be placed inside braces.
 * @author Ben Vinegar
 */
'use strict';

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

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

module.exports = {
  meta: {
    docs: {
      description: 'Comments inside children section of tag should be placed inside braces',
      category: 'Possible Errors',
      recommended: true,
      url: docsUrl('jsx-no-comment-textnodes')
    },

    schema: [{
      type: 'object',
      properties: {},
      additionalProperties: false
    }]
  },

  create: function(context) {
    function reportLiteralNode(node) {
      context.report(node, 'Comments inside children section of tag should be placed inside braces');
    }

    // --------------------------------------------------------------------------
    // Public
    // --------------------------------------------------------------------------

    return {
      Literal: function(node) {
        const sourceCode = context.getSourceCode();
        // since babel-eslint has the wrong node.raw, we'll get the source text
        const rawValue = sourceCode.getText(node);
        if (/^\s*\/(\/|\*)/m.test(rawValue)) {
          // inside component, e.g. <div>literal</div>
          if (node.parent.type !== 'JSXAttribute' &&
              node.parent.type !== 'JSXExpressionContainer' &&
              node.parent.type.indexOf('JSX') !== -1) {
            reportLiteralNode(node);
          }
        }
      }
    };
  }
};

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