babel-plugin-transform-export-default
Version:
Compile export default to ES2015
34 lines (27 loc) • 1.16 kB
JavaScript
;
exports.__esModule = true;
exports.default = function (_ref) {
var t = _ref.types;
return {
inherits: _babelPluginSyntaxExportExtensions2.default,
visitor: {
ExportNamedDeclaration: function ExportNamedDeclaration(path) {
var node = path.node,
scope = path.scope;
var specifiers = node.specifiers;
if (!t.isExportDefaultSpecifier(specifiers[0])) return;
var specifier = specifiers.shift();
var exported = specifier.exported;
var uid = scope.generateUidIdentifier(exported.name);
var nodes = [t.importDeclaration([t.importDefaultSpecifier(uid)], node.source), t.exportNamedDeclaration(null, [t.exportSpecifier(uid, exported)])];
if (specifiers.length >= 1) {
nodes.push(node);
}
path.replaceWithMultiple(nodes);
}
}
};
};
var _babelPluginSyntaxExportExtensions = require("babel-plugin-syntax-export-extensions");
var _babelPluginSyntaxExportExtensions2 = _interopRequireDefault(_babelPluginSyntaxExportExtensions);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }