asString.js 846 B

12345678910111213141516171819202122232425262728
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.asString = void 0;
  4. const stringify = JSON.stringify;
  5. const asString = (str) => {
  6. const length = str.length;
  7. if (length > 41)
  8. return stringify(str);
  9. let result = '';
  10. let last = 0;
  11. let found = false;
  12. let point = 255;
  13. for (let i = 0; i < length && point >= 32; i++) {
  14. point = str.charCodeAt(i);
  15. if (point >= 0xd800 && point <= 0xdfff)
  16. return stringify(str);
  17. if (point === 34 || point === 92) {
  18. result += str.slice(last, i) + '\\';
  19. last = i;
  20. found = true;
  21. }
  22. }
  23. if (point < 32)
  24. return stringify(str);
  25. return '"' + (!found ? str : result + str.slice(last)) + '"';
  26. };
  27. exports.asString = asString;
  28. //# sourceMappingURL=asString.js.map