index.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. var _helperPluginUtils = require("@babel/helper-plugin-utils");
  7. var _pluginSyntaxExportDefaultFrom = require("@babel/plugin-syntax-export-default-from");
  8. var _core = require("@babel/core");
  9. var _default = (0, _helperPluginUtils.declare)(api => {
  10. api.assertVersion(7);
  11. return {
  12. name: "proposal-export-default-from",
  13. inherits: _pluginSyntaxExportDefaultFrom.default,
  14. visitor: {
  15. ExportNamedDeclaration(path) {
  16. const {
  17. node
  18. } = path;
  19. const {
  20. specifiers,
  21. source
  22. } = node;
  23. if (!_core.types.isExportDefaultSpecifier(specifiers[0])) return;
  24. const {
  25. exported
  26. } = specifiers.shift();
  27. if (specifiers.every(s => _core.types.isExportSpecifier(s))) {
  28. specifiers.unshift(_core.types.exportSpecifier(_core.types.identifier("default"), exported));
  29. return;
  30. }
  31. const nodes = [_core.types.exportNamedDeclaration(null, [_core.types.exportSpecifier(_core.types.identifier("default"), exported)], _core.types.cloneNode(source))];
  32. if (specifiers.length >= 1) {
  33. nodes.push(node);
  34. }
  35. path.replaceWithMultiple(nodes);
  36. }
  37. }
  38. };
  39. });
  40. exports.default = _default;