| /** | |
|  * @fileoverview Common utils for regular expressions. | |
|  * @author Josh Goldberg | |
|  * @author Toru Nagashima | |
|  */ | |
| 
 | |
| "use strict"; | |
| 
 | |
| const { RegExpValidator } = require("@eslint-community/regexpp"); | |
| 
 | |
| const REGEXPP_LATEST_ECMA_VERSION = 2024; | |
| 
 | |
| /** | |
|  * Checks if the given regular expression pattern would be valid with the `u` flag. | |
|  * @param {number} ecmaVersion ECMAScript version to parse in. | |
|  * @param {string} pattern The regular expression pattern to verify. | |
|  * @returns {boolean} `true` if the pattern would be valid with the `u` flag. | |
|  * `false` if the pattern would be invalid with the `u` flag or the configured | |
|  * ecmaVersion doesn't support the `u` flag. | |
|  */ | |
| function isValidWithUnicodeFlag(ecmaVersion, pattern) { | |
|     if (ecmaVersion <= 5) { // ecmaVersion <= 5 doesn't support the 'u' flag | |
|         return false; | |
|     } | |
| 
 | |
|     const validator = new RegExpValidator({ | |
|         ecmaVersion: Math.min(ecmaVersion, REGEXPP_LATEST_ECMA_VERSION) | |
|     }); | |
| 
 | |
|     try { | |
|         validator.validatePattern(pattern, void 0, void 0, { unicode: /* uFlag = */ true }); | |
|     } catch { | |
|         return false; | |
|     } | |
| 
 | |
|     return true; | |
| } | |
| 
 | |
| module.exports = { | |
|     isValidWithUnicodeFlag, | |
|     REGEXPP_LATEST_ECMA_VERSION | |
| };
 |