12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- "use strict";
- module.exports = {
- meta: {
- deprecated: true,
- replacedBy: [],
- type: "layout",
- docs: {
- description: "Require parenthesis around regex literals",
- recommended: false,
- url: "https://eslint.org/docs/latest/rules/wrap-regex"
- },
- schema: [],
- fixable: "code",
- messages: {
- requireParens: "Wrap the regexp literal in parens to disambiguate the slash."
- }
- },
- create(context) {
- const sourceCode = context.sourceCode;
- return {
- Literal(node) {
- const token = sourceCode.getFirstToken(node),
- nodeType = token.type;
- if (nodeType === "RegularExpression") {
- const beforeToken = sourceCode.getTokenBefore(node);
- const afterToken = sourceCode.getTokenAfter(node);
- const { parent } = node;
- if (parent.type === "MemberExpression" && parent.object === node &&
- !(beforeToken && beforeToken.value === "(" && afterToken && afterToken.value === ")")) {
- context.report({
- node,
- messageId: "requireParens",
- fix: fixer => fixer.replaceText(node, `(${sourceCode.getText(node)})`)
- });
- }
- }
- }
- };
- }
- };
|