code: function printStringLiteral(stringLiteral, options) {
    const double = { quote: '"', regex: /"/g };
    const single = { quote: "'", regex: /'/g };
  
    const preferred = options.singleQuote ? single : double;
    const alternate = preferred === single ? double : single;
  
    let shouldUseAlternateQuote = false;
  
    // If `stringLiteral` contains at least one of the quote preferred for
    // enclosing the string, we might want to enclose with the alternate quote
    // instead, to minimize the number of escaped quotes.
    if (
      stringLiteral.includes(preferred.quote) ||
      stringLiteral.includes(alternate.quote)
    ) {
      const numPreferredQuotes = (stringLiteral.match(preferred.regex) || [])
        .length;
      const numAlternateQuotes = (stringLiteral.match(alternate.regex) || [])
        .length;
  
      shouldUseAlternateQuote = numPreferredQuotes > numAlternateQuotes;
    }
  
    const enclosingQuote = shouldUseAlternateQuote ? alternate : preferred;
    const escapedStringLiteral = stringLiteral.replace(
      enclosingQuote.regex,
      `\\${enclosingQuote.quote}`
    );
  
    return `${enclosingQuote.quote}${escapedStringLiteral}${
      enclosingQuote.quote
    }`;
  }
docs: Prints a string literal with the correct surrounding quotes based on
  `options.singleQuote` and the number of escaped quotes contained in
  the string literal. This function is the glimmer equivalent of `printString`
  in `common/util`, but has differences because of the way escaped characters
  are treated in hbs string literals.
  @param {string} stringLiteral - the string literal value
  @param {object} options - the prettier options object