Browse Source

Access reexports of externals safely when needed.

gh-109
Oskar Segersvärd 9 years ago
parent
commit
f084957ab6
  1. 14
      src/finalisers/shared/getExportBlock.js

14
src/finalisers/shared/getExportBlock.js

@ -1,22 +1,24 @@
function wrapAccess ( id ) {
return ( id.originalName !== 'default' && id.module && id.module.isExternal ) ?
id.module.name + propertyAccess( id.originalName ) : id.name;
}
function propertyAccess ( name ) {
return name === 'default' ? `['default']` : `.${name}`;
}
export default function getExportBlock ( bundle, exportMode, mechanism = 'return' ) {
if ( exportMode === 'default' ) {
const defaultExportName = bundle.exports.lookup( 'default' ).name;
const id = bundle.exports.lookup( 'default' );
return `${mechanism} ${defaultExportName};`;
return `${mechanism} ${wrapAccess( id )};`;
}
return bundle.toExport
.map( name => {
const id = bundle.exports.lookup( name );
const reference = ( id.originalName !== 'default' && id.module && id.module.isExternal ) ?
id.module.name + propertyAccess( id.name ) : id.name;
return `exports${propertyAccess( name )} = ${reference};`;
return `exports${propertyAccess( name )} = ${wrapAccess( id )};`;
})
.join( '\n' );
}

Loading…
Cancel
Save