UNPKG

react-router-ga

Version:

[![Downloads](https://img.shields.io/npm/dm/react-router-ga)](https://npm.im/react-router-ga) [![Version](https://img.shields.io/npm/v/react-router-ga)](https://npm.im/react-router-ga) [![License](https://img.shields.io/npm/l/react-router-ga)](https://ope

55 lines (45 loc) 1.36 kB
"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 }; }