simplify class default exports

This commit is contained in:
Sebastian McKenzie
2015-01-26 16:00:30 +11:00
parent 3db7811f00
commit 4b6203d1f4
7 changed files with 20 additions and 25 deletions

View File

@@ -7,21 +7,13 @@ exports.ExportDeclaration = function (node, parent, scope, context, file) {
if (node.default) {
if (t.isClassDeclaration(declar)) {
// we need to replace default class declarations with an assignment
// because VariableDeclaration nodes aren't allowed in `export default`
node.declaration = t.assignmentExpression("=", declar.id, t.toExpression(declar));
return [
t.variableDeclaration("let", [
t.variableDeclarator(declar.id)
]),
node
];
node.declaration = declar.id;
return [declar, node];
}
} else {
if (t.isFunctionDeclaration(declar)) {
node.specifiers = [t.importSpecifier(declar.id, declar.id)];
node.declaration = null;
node.specifiers = [t.importSpecifier(declar.id, declar.id)];
node._blockHoist = 2;
return [declar, node];
}