]>
git.proxmox.com Git - pve-eslint.git/blob - eslint/lib/rules/jsx-quotes.js
cbadc19d5ed5632567538b41d40f1b61b72aead5
2 * @fileoverview A rule to ensure consistent quotes used in jsx syntax.
3 * @author Mathias Schreck <https://github.com/lo1tuma>
8 //------------------------------------------------------------------------------
10 //------------------------------------------------------------------------------
12 const astUtils
= require("./utils/ast-utils");
14 //------------------------------------------------------------------------------
16 //------------------------------------------------------------------------------
18 const QUOTE_SETTINGS
= {
21 description
: "singlequote",
23 return str
.replace(/'/gu, "\"");
28 description: "doublequote
",
30 return str.replace(/"/gu
, "'");
35 //------------------------------------------------------------------------------
37 //------------------------------------------------------------------------------
44 description
: "enforce the consistent use of either double or single quotes in JSX attributes",
46 url
: "https://eslint.org/docs/rules/jsx-quotes"
49 fixable
: "whitespace",
53 enum: ["prefer-single", "prefer-double"]
57 unexpected
: "Unexpected usage of {{description}}."
62 const quoteOption
= context
.options
[0] || "prefer-double",
63 setting
= QUOTE_SETTINGS
[quoteOption
];
66 * Checks if the given string literal node uses the expected quotes
67 * @param {ASTNode} node A string literal node.
68 * @returns {boolean} Whether or not the string literal used the expected quotes.
71 function usesExpectedQuotes(node
) {
72 return node
.value
.indexOf(setting
.quote
) !== -1 || astUtils
.isSurroundedBy(node
.raw
, setting
.quote
);
77 const attributeValue
= node
.value
;
79 if (attributeValue
&& astUtils
.isStringLiteral(attributeValue
) && !usesExpectedQuotes(attributeValue
)) {
82 messageId
: "unexpected",
84 description
: setting
.description
87 return fixer
.replaceText(attributeValue
, setting
.convert(attributeValue
.raw
));