Skip to content

Commit

Permalink
Fixed issue with reexporting default as default with {exports: named,…
Browse files Browse the repository at this point in the history
… interop: true} options. (#2620)
  • Loading branch information
Andarist authored and lukastaegert committed Jan 3, 2019
1 parent 7cc2f62 commit f5364d9
Show file tree
Hide file tree
Showing 9 changed files with 92 additions and 1 deletion.
9 changes: 8 additions & 1 deletion src/finalisers/shared/getExportBlock.ts
Expand Up @@ -62,8 +62,15 @@ export default function getExportBlock(
reexports.some(
specifier => specifier.imported !== 'default' && specifier.imported !== '*'
));

const reexportsDefaultAsDefault =
reexports &&
reexports.some(
specifier => specifier.imported === 'default' && specifier.reexported === 'default'
);

if (exportBlock && !compact) exportBlock += '\n';
if (exportsNamesOrNamespace)
if (exportsNamesOrNamespace || reexportsDefaultAsDefault)
exportBlock += `exports.${specifier.reexported}${_}=${_}${name}${
interop !== false ? '__default' : '.default'
};`;
Expand Down
@@ -0,0 +1,7 @@
module.exports = {
description: 're-exports a default external import as default export (when using named exports)',
options: {
output: { name: 'reexportsDefaultExternalAsDefault', exports: 'named' },
external: ['external']
}
};
@@ -0,0 +1,12 @@
define(['exports', 'external'], function (exports, external) { 'use strict';

var external__default = 'default' in external ? external['default'] : external;



Object.keys(external).forEach(function (key) { exports[key] = external[key]; });
exports.default = external__default;

Object.defineProperty(exports, '__esModule', { value: true });

});
@@ -0,0 +1,13 @@
'use strict';

Object.defineProperty(exports, '__esModule', { value: true });

function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }

var external = require('external');
var external__default = _interopDefault(external);



Object.keys(external).forEach(function (key) { exports[key] = external[key]; });
exports.default = external__default;
@@ -0,0 +1,2 @@
export * from 'external';
export { default } from 'external';
@@ -0,0 +1,13 @@
var reexportsDefaultExternalAsDefault = (function (exports, external) {
'use strict';

var external__default = 'default' in external ? external['default'] : external;



Object.keys(external).forEach(function (key) { exports[key] = external[key]; });
exports.default = external__default;

return exports;

}({}, external));
@@ -0,0 +1,19 @@
System.register('reexportsDefaultExternalAsDefault', ['external'], function (exports, module) {
'use strict';
var _starExcludes = { default: 1 };
return {
setters: [function (module) {
var _setter = {};
for (var _$p in module) {
if (!_starExcludes[_$p]) _setter[_$p] = module[_$p];
}
_setter.default = module.default;
exports(_setter);
}],
execute: function () {



}
};
});
@@ -0,0 +1,16 @@
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('external')) :
typeof define === 'function' && define.amd ? define(['exports', 'external'], factory) :
(global = global || self, factory(global.reexportsDefaultExternalAsDefault = {}, global.external));
}(this, function (exports, external) { 'use strict';

var external__default = 'default' in external ? external['default'] : external;



Object.keys(external).forEach(function (key) { exports[key] = external[key]; });
exports.default = external__default;

Object.defineProperty(exports, '__esModule', { value: true });

}));
@@ -0,0 +1,2 @@
export * from 'external';
export { default } from 'external';

0 comments on commit f5364d9

Please sign in to comment.