| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | 
							- /**
 
-  * @fileoverview A rule to ensure consistent quotes used in jsx syntax.
 
-  * @author Mathias Schreck <https://github.com/lo1tuma>
 
-  */
 
- "use strict";
 
- //------------------------------------------------------------------------------
 
- // Requirements
 
- //------------------------------------------------------------------------------
 
- const astUtils = require("./utils/ast-utils");
 
- //------------------------------------------------------------------------------
 
- // Constants
 
- //------------------------------------------------------------------------------
 
- const QUOTE_SETTINGS = {
 
-     "prefer-double": {
 
-         quote: "\"",
 
-         description: "singlequote",
 
-         convert(str) {
 
-             return str.replace(/'/gu, "\"");
 
-         }
 
-     },
 
-     "prefer-single": {
 
-         quote: "'",
 
-         description: "doublequote",
 
-         convert(str) {
 
-             return str.replace(/"/gu, "'");
 
-         }
 
-     }
 
- };
 
- //------------------------------------------------------------------------------
 
- // Rule Definition
 
- //------------------------------------------------------------------------------
 
- module.exports = {
 
-     meta: {
 
-         type: "layout",
 
-         docs: {
 
-             description: "enforce the consistent use of either double or single quotes in JSX attributes",
 
-             category: "Stylistic Issues",
 
-             recommended: false,
 
-             url: "https://eslint.org/docs/rules/jsx-quotes"
 
-         },
 
-         fixable: "whitespace",
 
-         schema: [
 
-             {
 
-                 enum: ["prefer-single", "prefer-double"]
 
-             }
 
-         ],
 
-         messages: {
 
-             unexpected: "Unexpected usage of {{description}}."
 
-         }
 
-     },
 
-     create(context) {
 
-         const quoteOption = context.options[0] || "prefer-double",
 
-             setting = QUOTE_SETTINGS[quoteOption];
 
-         /**
 
-          * Checks if the given string literal node uses the expected quotes
 
-          * @param {ASTNode} node A string literal node.
 
-          * @returns {boolean} Whether or not the string literal used the expected quotes.
 
-          * @public
 
-          */
 
-         function usesExpectedQuotes(node) {
 
-             return node.value.indexOf(setting.quote) !== -1 || astUtils.isSurroundedBy(node.raw, setting.quote);
 
-         }
 
-         return {
 
-             JSXAttribute(node) {
 
-                 const attributeValue = node.value;
 
-                 if (attributeValue && astUtils.isStringLiteral(attributeValue) && !usesExpectedQuotes(attributeValue)) {
 
-                     context.report({
 
-                         node: attributeValue,
 
-                         messageId: "unexpected",
 
-                         data: {
 
-                             description: setting.description
 
-                         },
 
-                         fix(fixer) {
 
-                             return fixer.replaceText(attributeValue, setting.convert(attributeValue.raw));
 
-                         }
 
-                     });
 
-                 }
 
-             }
 
-         };
 
-     }
 
- };
 
 
  |