dynamic transform(value, pattern, replacement)

Source

dynamic transform(dynamic value, dynamic /* String | RegExp */ pattern,
    dynamic /* Function | String */ replacement) {
  if (value == null) {
    return value;
  }
  if (!this._supportedInput(value)) {
    throw new InvalidPipeArgumentException(ReplacePipe, value);
  }
  var input = value.toString();
  if (!this._supportedPattern(pattern)) {
    throw new InvalidPipeArgumentException(ReplacePipe, pattern);
  }
  if (!this._supportedReplacement(replacement)) {
    throw new InvalidPipeArgumentException(ReplacePipe, replacement);
  }
  // template fails with literal RegExp e.g /pattern/igm
  if (replacement is _Matcher) {
    var rgxPattern =
        pattern is String ? new RegExp(pattern) : (pattern as RegExp);
    return input.replaceAllMapped(rgxPattern, replacement);
  }
  if (pattern is RegExp) {
    // use the replaceAll variant
    return input.replaceAll(pattern, (replacement as String));
  }
  return input.replaceFirst((pattern as String), (replacement as String));
}