]>
git.proxmox.com Git - pve-eslint.git/blob - eslint/lib/rules/require-unicode-regexp.js
577ae6cf8271d114f6b005bd5692e62ea1544864
2 * @fileoverview Rule to enforce the use of `u` flag on RegExp.
3 * @author Toru Nagashima
8 //------------------------------------------------------------------------------
10 //------------------------------------------------------------------------------
17 } = require("eslint-utils");
19 //------------------------------------------------------------------------------
21 //------------------------------------------------------------------------------
23 /** @type {import('../shared/types').Rule} */
29 description
: "enforce the use of `u` flag on RegExp",
31 url
: "https://eslint.org/docs/rules/require-unicode-regexp"
35 requireUFlag
: "Use the 'u' flag."
43 "Literal[regex]"(node
) {
44 const flags
= node
.regex
.flags
|| "";
46 if (!flags
.includes("u")) {
47 context
.report({ node
, messageId
: "requireUFlag" });
52 const scope
= context
.getScope();
53 const tracker
= new ReferenceTracker(scope
);
55 RegExp
: { [CALL
]: true, [CONSTRUCT
]: true }
58 for (const { node
} of tracker
.iterateGlobalReferences(trackMap
)) {
59 const flagsNode
= node
.arguments
[1];
60 const flags
= getStringIfConstant(flagsNode
, scope
);
62 if (!flagsNode
|| (typeof flags
=== "string" && !flags
.includes("u"))) {
63 context
.report({ node
, messageId
: "requireUFlag" });