Skip to content

Commit

Permalink
Merge pull request #1795 from guybedford/default-reexport-fix
Browse files Browse the repository at this point in the history
Default re-export fix for #1794
  • Loading branch information
lukastaegert committed Dec 15, 2017
2 parents 4d0a903 + f52fa4f commit 9dcf361
Show file tree
Hide file tree
Showing 10 changed files with 46 additions and 4 deletions.
6 changes: 3 additions & 3 deletions src/finalisers/es.js
Expand Up @@ -78,7 +78,6 @@ export default function es ( bundle, magicString, { getPath, intro, outro } ) {
});

module.getReexports()
.filter( notDefault )
.forEach( name => {
const declaration = module.traceExport( name );

Expand All @@ -88,7 +87,8 @@ export default function es ( bundle, magicString, { getPath, intro, outro } ) {
exportAllDeclarations.push( `export * from '${name.slice( 1 )}';` );
} else {
if ( !exportExternalSpecifiers.has( declaration.module.id ) ) exportExternalSpecifiers.set( declaration.module.id, [] );
exportExternalSpecifiers.get( declaration.module.id ).push( name );
const rendered = declaration.getName( true );
exportExternalSpecifiers.get( declaration.module.id ).push( rendered === name ? name : `${rendered} as ${name}` );
}

return;
Expand All @@ -100,7 +100,7 @@ export default function es ( bundle, magicString, { getPath, intro, outro } ) {

const exportBlock = [];
if ( exportInternalSpecifiers.length ) exportBlock.push( `export { ${exportInternalSpecifiers.join(', ')} };` );
if ( module.exports.default || module.reexports.default ) exportBlock.push( `export default ${module.traceExport( 'default' ).getName( true )};` );
if ( module.exports.default ) exportBlock.push( `export default ${module.traceExport( 'default' ).getName( true )};` );
if ( exportAllDeclarations.length ) exportBlock.push( exportAllDeclarations.join( '\n' ) );
if ( exportExternalSpecifiers.size ) {
exportExternalSpecifiers.forEach( ( specifiers, id ) => {
Expand Down
2 changes: 1 addition & 1 deletion test/form/samples/export-default-2/_expected/es.js
@@ -1,3 +1,3 @@
var bar = 1;

export default bar;
export { bar as default };
8 changes: 8 additions & 0 deletions test/form/samples/re-export-default-external/_config.js
@@ -0,0 +1,8 @@
module.exports = {
description: 're-exports a default import',
options: {
name: 'reexportsDefaultExternal',
format: 'es',
external: ['external'],
},
};
7 changes: 7 additions & 0 deletions test/form/samples/re-export-default-external/_expected/amd.js
@@ -0,0 +1,7 @@
define(['external'], function (external) { 'use strict';



return external.objAlias;

});
7 changes: 7 additions & 0 deletions test/form/samples/re-export-default-external/_expected/cjs.js
@@ -0,0 +1,7 @@
'use strict';

var external = require('external');



module.exports = external.objAlias;
@@ -0,0 +1 @@
export { objAlias as default } from 'external';
@@ -0,0 +1,8 @@
var reexportsDefaultExternal = (function (external) {
'use strict';



return external.objAlias;

}(external));
9 changes: 9 additions & 0 deletions test/form/samples/re-export-default-external/_expected/umd.js
@@ -0,0 +1,9 @@
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('external')) :
typeof define === 'function' && define.amd ? define(['external'], factory) :
(global.reexportsDefaultExternal = factory(global.external));
}(this, (function (external) { 'use strict';

return external.objAlias;

})));
1 change: 1 addition & 0 deletions test/form/samples/re-export-default-external/first.js
@@ -0,0 +1 @@
export { objAlias as default } from 'external';
1 change: 1 addition & 0 deletions test/form/samples/re-export-default-external/main.js
@@ -0,0 +1 @@
export { default } from './first.js';

0 comments on commit 9dcf361

Please sign in to comment.