[d24f17c] | 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; |
---|