lib/rules/quotes.js
function isJSXLiteral(node) {
            return node.parent.type === "JSXAttribute" || node.parent.type === "JSXElement" || node.parent.type === "JSXFragment";
        }
function isJSXLiteral(node) {
            return node.parent.type === "JSXAttribute" || node.parent.type === "JSXElement" || node.parent.type === "JSXFragment";
        }
function isJSXLiteral ( node ) { return node . parent . type === "JSXAttribute" || node . parent . type === "JSXElement" || node . parent . type === "JSXFragment" ; }
Determines if a given node is part of JSX syntax.

This function returns `true` in the following cases:

- `<div className="foo"></div>` ... If the literal is an attribute value, the parent of the literal is `JSXAttribute`.
- `<div>foo</div>` ... If the literal is a text content, the parent of the literal is `JSXElement`.
- `<>foo</>` ... If the literal is a text content, the parent of the literal is `JSXFragment`.

In particular, this function returns `false` in the following cases:

- `<div className={"foo"}></div>`
- `<div>{"foo"}</div>`

In both cases, inside of the braces is handled as normal JavaScript.
The braces are `JSXExpressionContainer` nodes.

@param {ASTNode} node The Literal node to check.
@returns {boolean} True if the node is a part of JSX, false if not.
@private
Determines if a given node is part of JSX syntax .