You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/** * @fileoverview Comments inside children section of tag should be placed inside braces. * @author Ben Vinegar */
'use strict';
const docsUrl = require('../util/docsUrl');
// ------------------------------------------------------------------------------
// Rule Definition
// ------------------------------------------------------------------------------
function checkText(node, context) { // since babel-eslint has the wrong node.raw, we'll get the source text
const rawValue = context.getSourceCode().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 ) { context.report({ node, messageId: 'putCommentInBraces' }); } } }
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') },
messages: { putCommentInBraces: 'Comments inside children section of tag should be placed inside braces' },
schema: [{ type: 'object', properties: {}, additionalProperties: false }] },
create(context) { // --------------------------------------------------------------------------
// Public
// --------------------------------------------------------------------------
return { Literal(node) { checkText(node, context); }, JSXText(node) { checkText(node, context); } }; } };
|