Sha256: cacd1d5bf6bdac126d6232e0d4c60d0b37d1c0f838f8712f9bc5b2c2549f7e0a
Contents?: true
Size: 660 Bytes
Versions: 24
Compression:
Stored size: 660 Bytes
Contents
'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; };
Version data entries
24 entries across 24 versions & 1 rubygems