string_utils.js 741 B

1234567891011121314151617181920212223242526
  1. /** @internal */
  2. export function escapeForWithinString(str, quoteKind) {
  3. let result = "";
  4. // todo: reduce appends (don't go char by char)
  5. for (let i = 0; i < str.length; i++) {
  6. if (str[i] === quoteKind) {
  7. result += "\\";
  8. }
  9. else if (str[i] === "\r" && str[i + 1] === "\n") {
  10. result += "\\r\\n\\";
  11. i++; // skip the \r
  12. }
  13. else if (str[i] === "\n") {
  14. result += "\\n\\";
  15. }
  16. else if (str[i] === "\\") {
  17. result += "\\";
  18. }
  19. result += str[i];
  20. }
  21. return result;
  22. }
  23. /** @internal */
  24. export function getStringFromStrOrFunc(strOrFunc) {
  25. return strOrFunc instanceof Function ? strOrFunc() : strOrFunc;
  26. }