default export convenience

This commit is contained in:
guybedford 2015-04-12 19:47:50 +02:00
parent cfe6fa020d
commit 8832b17650
3 changed files with 19 additions and 8 deletions

View File

@ -66,8 +66,7 @@
// commonjs require
else if (typeof names == 'string') {
var module = loader.get(names);
return module.__useDefault ? module['default'] : module;
return checkGetDefault(loader.get(names));
}
else

View File

@ -309,8 +309,8 @@
exports = entry.module.exports;
}
if ((!entry || entry.declarative) && exports && exports.__useDefault)
return exports['default'];
if ((!entry || entry.declarative))
return checkGetDefault(exports);
return exports;
}
@ -357,10 +357,11 @@
else {
var hasOwnProperty = exports && exports.hasOwnProperty;
entry.esModule = {};
for (var p in exports) {
if (!hasOwnProperty || exports.hasOwnProperty(p))
entry.esModule[p] = exports[p];
}
if (typeof exports == 'object' || typeof exports == 'function')
for (var p in exports) {
if (!hasOwnProperty || exports.hasOwnProperty(p))
entry.esModule[p] = exports[p];
}
entry.esModule['default'] = exports;
entry.esModule.__useDefault = true;
}

View File

@ -27,4 +27,15 @@ function dedupe(deps) {
if (indexOf.call(newDeps, deps[i]) == -1)
newDeps.push(deps[i])
return newDeps;
}
// if a module only has a default export, then take that as the module value
function checkGetDefault(module) {
if (module && module.__useDefault)
return module['default'];
for (var p in module) {
if (p != 'default')
return module;
}
return 'default' in module ? module['default'] : module;
}