Archived
1
0
This repository has been archived on 2023-05-15. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
home-page/node_modules/@babel/helper-create-regexp-features-plugin/lib/util.js
Sean Edmunds 0584430b5c First commit
2021-12-13 17:00:40 -06:00

55 lines
1.3 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.generateRegexpuOptions = generateRegexpuOptions;
var _features = require("./features");
function generateRegexpuOptions(node, features) {
let useUnicodeFlag = false,
dotAllFlag = false,
unicodePropertyEscape = false,
namedGroup = false;
const {
flags,
pattern
} = node;
const flagsIncludesU = flags.includes("u");
if (flagsIncludesU) {
if (!(0, _features.hasFeature)(features, _features.FEATURES.unicodeFlag)) {
useUnicodeFlag = true;
}
if ((0, _features.hasFeature)(features, _features.FEATURES.unicodePropertyEscape) && /\\[pP]{/.test(pattern)) {
unicodePropertyEscape = true;
}
}
if ((0, _features.hasFeature)(features, _features.FEATURES.dotAllFlag) && flags.indexOf("s") >= 0) {
dotAllFlag = true;
}
if ((0, _features.hasFeature)(features, _features.FEATURES.namedCaptureGroups) && /\(\?<(?![=!])/.test(pattern)) {
namedGroup = true;
}
if (!namedGroup && !unicodePropertyEscape && !dotAllFlag && (!flagsIncludesU || useUnicodeFlag)) {
return null;
}
if (flagsIncludesU && flags.indexOf("s") >= 0) {
dotAllFlag = true;
}
return {
useUnicodeFlag,
onNamedGroup: () => {},
namedGroup,
unicodePropertyEscape,
dotAllFlag,
lookbehind: true
};
}