index.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. function _helperPluginUtils() {
  7. const data = require("@babel/helper-plugin-utils");
  8. _helperPluginUtils = function () {
  9. return data;
  10. };
  11. return data;
  12. }
  13. function _pluginSyntaxJsonStrings() {
  14. const data = _interopRequireDefault(require("@babel/plugin-syntax-json-strings"));
  15. _pluginSyntaxJsonStrings = function () {
  16. return data;
  17. };
  18. return data;
  19. }
  20. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  21. var _default = (0, _helperPluginUtils().declare)(api => {
  22. api.assertVersion(7);
  23. const regex = /(\\*)([\u2028\u2029])/g;
  24. function replace(match, escapes, separator) {
  25. const isEscaped = escapes.length % 2 === 1;
  26. if (isEscaped) return match;
  27. return `${escapes}\\u${separator.charCodeAt(0).toString(16)}`;
  28. }
  29. return {
  30. name: "proposal-json-strings",
  31. inherits: _pluginSyntaxJsonStrings().default,
  32. visitor: {
  33. "DirectiveLiteral|StringLiteral"({
  34. node
  35. }) {
  36. const {
  37. extra
  38. } = node;
  39. if (!extra || !extra.raw) return;
  40. extra.raw = extra.raw.replace(regex, replace);
  41. }
  42. }
  43. };
  44. });
  45. exports.default = _default;