45e0030b7cb6817228e3396722f6d0cc61c3843e3b84563902a5fcd9104639a75e65ae5994b85d1fd89952acbc81101d1fb1fb847cb106e637fce5780355ec 997 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. var _index = require("../validators/generated/index.js");
  7. var _index2 = require("../builders/generated/index.js");
  8. var _default = exports.default = toStatement;
  9. function toStatement(node, ignore) {
  10. if ((0, _index.isStatement)(node)) {
  11. return node;
  12. }
  13. let mustHaveId = false;
  14. let newType;
  15. if ((0, _index.isClass)(node)) {
  16. mustHaveId = true;
  17. newType = "ClassDeclaration";
  18. } else if ((0, _index.isFunction)(node)) {
  19. mustHaveId = true;
  20. newType = "FunctionDeclaration";
  21. } else if ((0, _index.isAssignmentExpression)(node)) {
  22. return (0, _index2.expressionStatement)(node);
  23. }
  24. if (mustHaveId && !node.id) {
  25. newType = false;
  26. }
  27. if (!newType) {
  28. if (ignore) {
  29. return false;
  30. } else {
  31. throw new Error(`cannot turn ${node.type} to a statement`);
  32. }
  33. }
  34. node.type = newType;
  35. return node;
  36. }
  37. //# sourceMappingURL=toStatement.js.map