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

Version Path
trusty-cms-6.3.1 node_modules/clone-regexp/index.js
trusty-cms-5.0.7 node_modules/clone-regexp/index.js
trusty-cms-5.0.6 node_modules/clone-regexp/index.js
trusty-cms-5.0.5 node_modules/clone-regexp/index.js
trusty-cms-5.0.4 node_modules/clone-regexp/index.js
trusty-cms-5.0.3 node_modules/clone-regexp/index.js
trusty-cms-5.0.2 node_modules/clone-regexp/index.js
trusty-cms-5.0.1 node_modules/clone-regexp/index.js
trusty-cms-4.3.5 node_modules/clone-regexp/index.js
trusty-cms-5.0.0 node_modules/clone-regexp/index.js
trusty-cms-4.3.4 node_modules/clone-regexp/index.js
trusty-cms-4.3.3 node_modules/clone-regexp/index.js
trusty-cms-4.3.2 node_modules/clone-regexp/index.js
trusty-cms-4.3.1 node_modules/clone-regexp/index.js
trusty-cms-4.3 node_modules/clone-regexp/index.js
trusty-cms-4.2.3 node_modules/clone-regexp/index.js
trusty-cms-4.2.2 node_modules/clone-regexp/index.js
trusty-cms-4.2.1 node_modules/clone-regexp/index.js
trusty-cms-4.2 node_modules/clone-regexp/index.js
trusty-cms-4.1.9 node_modules/clone-regexp/index.js