1 | import { replace } from 'ramda';
|
---|
2 | import isRegExp from '../../isRegExp';
|
---|
3 | import escapeRegExp from '../../escapeRegExp';
|
---|
4 | var checkArguments = function checkArguments(searchValue, replaceValue, str) {
|
---|
5 | if (str == null || searchValue == null || replaceValue == null) {
|
---|
6 | throw TypeError('Input values must not be `null` or `undefined`');
|
---|
7 | }
|
---|
8 | };
|
---|
9 | var checkValue = function checkValue(value, valueName) {
|
---|
10 | if (typeof value !== 'string') {
|
---|
11 | if (!(value instanceof String)) {
|
---|
12 | throw TypeError("`".concat(valueName, "` must be a string"));
|
---|
13 | }
|
---|
14 | }
|
---|
15 | };
|
---|
16 | var checkSearchValue = function checkSearchValue(searchValue) {
|
---|
17 | if (typeof searchValue !== 'string' && !(searchValue instanceof String) && !(searchValue instanceof RegExp)) {
|
---|
18 | throw TypeError('`searchValue` must be a string or an regexp');
|
---|
19 | }
|
---|
20 | };
|
---|
21 | var replaceAll = function replaceAll(searchValue, replaceValue, str) {
|
---|
22 | checkArguments(searchValue, replaceValue, str);
|
---|
23 | checkValue(str, 'str');
|
---|
24 | checkValue(replaceValue, 'replaceValue');
|
---|
25 | checkSearchValue(searchValue);
|
---|
26 | var regexp = new RegExp(isRegExp(searchValue) ? searchValue : escapeRegExp(searchValue), 'g');
|
---|
27 | return replace(regexp, replaceValue, str);
|
---|
28 | };
|
---|
29 | export default replaceAll; |
---|