import { declare } from "@babel/helper-plugin-utils"; import rewritePattern from "regexpu-core"; import * as regex from "@babel/helper-regex"; export default declare((api, options) => { api.assertVersion(7); const { useUnicodeFlag = true } = options; if (typeof useUnicodeFlag !== "boolean") { throw new Error(".useUnicodeFlag must be a boolean, or undefined"); } return { name: "proposal-unicode-property-regex", visitor: { RegExpLiteral(path) { const node = path.node; if (!regex.is(node, "u")) { return; } node.pattern = rewritePattern(node.pattern, node.flags, { unicodePropertyEscape: true, useUnicodeFlag, }); if (!useUnicodeFlag) { regex.pullFlag(node, "u"); } }, }, }; });