import { toString } from "../util/toString.mjs";
//#region src/compat/string/replace.ts
/**
* Replaces the matched pattern with the replacement string.
*
* @param {} target - The target string.
* @param {} pattern - The pattern to match.
* @param {} replacement - The replacement string or a function that returns the replacement string.
* @returns {string} The new string with the matched pattern replaced.
*
* @example
* replace('abcde', 'de', '123'); // 'abc123'
* replace('abcde', /[bd]/g, '-'); // 'a-c-e'
* replace('abcde', 'de', substring => substring.toUpperCase()); // 'abcDE'
* replace('abcde', /[bd]/g, substring => substring.toUpperCase()); // 'aBcDe'
*/
function replace(target, pattern, replacement) {
	if (arguments.length < 3) return toString(target);
	return toString(target).replace(pattern, replacement);
}
//#endregion
export { replace };
