Added babel-helper-split-export-declaration (#7313)

This commit is contained in:
Mateusz Burzyński
2018-02-13 16:44:05 +01:00
committed by GitHub
parent ea3f2d9299
commit 4d164bd8e6
18 changed files with 158 additions and 104 deletions

View File

@@ -2,6 +2,7 @@ import LooseTransformer from "./loose";
import VanillaTransformer from "./vanilla";
import annotateAsPure from "@babel/helper-annotate-as-pure";
import nameFunction from "@babel/helper-function-name";
import splitExportDeclaration from "@babel/helper-split-export-declaration";
import { types as t } from "@babel/core";
import globals from "globals";
@@ -24,19 +25,7 @@ export default function(api, options) {
visitor: {
ExportDefaultDeclaration(path) {
if (!path.get("declaration").isClassDeclaration()) return;
const { node } = path;
const ref =
node.declaration.id || path.scope.generateUidIdentifier("class");
node.declaration.id = ref;
// Split the class declaration and the export into two separate statements.
path.replaceWith(node.declaration);
path.insertAfter(
t.exportNamedDeclaration(null, [
t.exportSpecifier(t.cloneNode(ref), t.identifier("default")),
]),
);
splitExportDeclaration(path);
},
ClassDeclaration(path) {