mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-01 17:57:36 +08:00
This also adds CC-BY-4.0 to the list of accepted licenses. DISABLE_THIRD_PARTY_CHECK=update dependencies Bug: chromium:1083142 Change-Id: I8612de2fba52dae32eeb71af79d5aacfde52142b Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2220097 Reviewed-by: Paul Lewis <aerotwist@chromium.org> Commit-Queue: Mathias Bynens <mathias@chromium.org>
30 lines
660 B
JavaScript
30 lines
660 B
JavaScript
'use strict';
|
|
const isRegexp = require('is-regexp');
|
|
|
|
const flagMap = {
|
|
global: 'g',
|
|
ignoreCase: 'i',
|
|
multiline: 'm',
|
|
dotAll: 's',
|
|
sticky: 'y',
|
|
unicode: 'u'
|
|
};
|
|
|
|
module.exports = (regexp, options = {}) => {
|
|
if (!isRegexp(regexp)) {
|
|
throw new TypeError('Expected a RegExp instance');
|
|
}
|
|
|
|
const flags = Object.keys(flagMap).map(flag => (
|
|
(typeof options[flag] === 'boolean' ? options[flag] : regexp[flag]) ? flagMap[flag] : ''
|
|
)).join('');
|
|
|
|
const clonedRegexp = new RegExp(options.source || regexp.source, flags);
|
|
|
|
clonedRegexp.lastIndex = typeof options.lastIndex === 'number' ?
|
|
options.lastIndex :
|
|
regexp.lastIndex;
|
|
|
|
return clonedRegexp;
|
|
};
|