escapeBracketsAndQuotes static method

String escapeBracketsAndQuotes(
  1. String value
)

Implementation

static String escapeBracketsAndQuotes(String value) {
  const controlCharacters = [
    $singleQuote,
    $openCurlyBracket,
    $closedCurlyBracket,
  ];
  var sb = StringBuffer();
  var nextIsEscaped = false;
  var characters = value.runes.toList();
  for (var i = 0; i < characters.length; i++) {
    var isQuote = characters[i] == $singleQuote;
    if (!nextIsEscaped &&
        isQuote &&
        i + 1 < characters.length &&
        controlCharacters.contains(characters[i + 1])) {
      nextIsEscaped = true;
    } else {
      nextIsEscaped = false;
      sb.write(String.fromCharCode(characters[i]));
    }
  }
  value = sb.toString();
  return value;
}