"use strict"; exports.__esModule = true; exports["default"] = void 0; var _ramda = require("ramda"); var _isRegExp = _interopRequireDefault(require("../../isRegExp")); var _escapeRegExp = _interopRequireDefault(require("../../escapeRegExp")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var checkArguments = function checkArguments(searchValue, replaceValue, str) { if (str == null || searchValue == null || replaceValue == null) { throw TypeError('Input values must not be `null` or `undefined`'); } }; var checkValue = function checkValue(value, valueName) { if (typeof value !== 'string') { if (!(value instanceof String)) { throw TypeError("`".concat(valueName, "` must be a string")); } } }; var checkSearchValue = function checkSearchValue(searchValue) { if (typeof searchValue !== 'string' && !(searchValue instanceof String) && !(searchValue instanceof RegExp)) { throw TypeError('`searchValue` must be a string or an regexp'); } }; var replaceAll = function replaceAll(searchValue, replaceValue, str) { checkArguments(searchValue, replaceValue, str); checkValue(str, 'str'); checkValue(replaceValue, 'replaceValue'); checkSearchValue(searchValue); var regexp = new RegExp((0, _isRegExp["default"])(searchValue) ? searchValue : (0, _escapeRegExp["default"])(searchValue), 'g'); return (0, _ramda.replace)(regexp, replaceValue, str); }; var _default = replaceAll; exports["default"] = _default;