util.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.getTypes = getTypes;
  6. exports.isReference = isReference;
  7. exports.newHelpersAvailable = void 0;
  8. exports.replaceWithOrRemove = replaceWithOrRemove;
  9. exports.runtimeProperty = void 0;
  10. exports.wrapWithTypes = wrapWithTypes;
  11. let currentTypes = null;
  12. function wrapWithTypes(types, fn) {
  13. return function (...args) {
  14. const oldTypes = currentTypes;
  15. currentTypes = types;
  16. try {
  17. return fn.apply(this, args);
  18. } finally {
  19. currentTypes = oldTypes;
  20. }
  21. };
  22. }
  23. function getTypes() {
  24. return currentTypes;
  25. }
  26. let newHelpersAvailable = exports.newHelpersAvailable = void 0;
  27. {
  28. exports.newHelpersAvailable = newHelpersAvailable = file => {
  29. ;
  30. return file.availableHelper("regenerator") && !getTypes().isIdentifier(file.addHelper("regenerator"), {
  31. name: "__interal_marker_fallback_regenerator__"
  32. });
  33. };
  34. }
  35. let runtimeProperty = exports.runtimeProperty = void 0;
  36. {
  37. exports.runtimeProperty = runtimeProperty = function (file, name) {
  38. const t = getTypes();
  39. const helper = file.addHelper("regeneratorRuntime");
  40. return t.memberExpression(t.isArrowFunctionExpression(helper) && t.isIdentifier(helper.body) ? helper.body : t.callExpression(helper, []), t.identifier(name), false);
  41. };
  42. }
  43. function isReference(path) {
  44. return path.isReferenced() || path.parentPath.isAssignmentExpression({
  45. left: path.node
  46. });
  47. }
  48. function replaceWithOrRemove(path, replacement) {
  49. if (replacement) {
  50. path.replaceWith(replacement);
  51. } else {
  52. path.remove();
  53. }
  54. }
  55. //# sourceMappingURL=util.js.map