Skip to content

Commit

Permalink
fix: Default export for duplicate names (#15736)
Browse files Browse the repository at this point in the history
  • Loading branch information
liuxingbaoyu committed Jul 3, 2023
1 parent 134aa17 commit 41dea06
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 5 deletions.
12 changes: 7 additions & 5 deletions packages/babel-helper-split-export-declaration/src/index.ts
Expand Up @@ -27,6 +27,8 @@ export default function splitExportDeclaration(
const declaration = exportDeclaration.get("declaration");
const standaloneDeclaration =
declaration.isFunctionDeclaration() || declaration.isClassDeclaration();
const exportExpr =
declaration.isFunctionExpression() || declaration.isClassExpression();

const scope = declaration.isScope()
? declaration.scope.parent
Expand All @@ -41,13 +43,13 @@ export default function splitExportDeclaration(

id = scope.generateUidIdentifier("default");

if (
standaloneDeclaration ||
declaration.isFunctionExpression() ||
declaration.isClassExpression()
) {
if (standaloneDeclaration || exportExpr) {
declaration.node.id = cloneNode(id);
}
} else if (exportExpr && scope.hasBinding(id.name)) {
needBindingRegistration = true;

id = scope.generateUidIdentifier(id.name);
}

const updatedDeclaration = standaloneDeclaration
Expand Down
@@ -0,0 +1,4 @@
import someFunction from './b';

export default (function someFunction () {
});
@@ -0,0 +1,10 @@
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _b = _interopRequireDefault(require("./b"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _someFunction = function someFunction() {};
exports.default = _someFunction;

0 comments on commit 41dea06

Please sign in to comment.