Comparing version 0.6.1 to 0.6.2
@@ -74,3 +74,3 @@ const {walk} = require("estree-walker"); | ||
} | ||
if (exported.leftMost.parentAssign) { | ||
if (exported.leftMost.parentAssign && !exported.name) { | ||
exported.leftMost.parentAssign.childAssign = exported.leftMost; | ||
@@ -77,0 +77,0 @@ } |
function createExportWriter(context) { | ||
context.defaultExports = []; | ||
context.namedExports = new Map; | ||
@@ -9,3 +10,6 @@ return {write}; | ||
} | ||
const defaultExports = []; | ||
// passing module around | ||
if (context.moduleNodes.some(n => !n.exported && !n.nestedExports && !n.declared)) { | ||
return writeModuleWrapper(); | ||
} | ||
for (const node of context.moduleNodes.concat(context.exportsNodes)) { | ||
@@ -16,3 +20,3 @@ const name = node.exported && node.exported.name || | ||
if (!name) { | ||
defaultExports.push(node); | ||
context.defaultExports.push(node); | ||
continue; | ||
@@ -27,6 +31,7 @@ } | ||
} | ||
// single module.exports = ... | ||
if ( | ||
defaultExports.length === 1 && ( | ||
defaultExports[0].exported && defaultExports[0].exported.statement || | ||
defaultExports[0].declared | ||
context.defaultExports.length === 1 && ( | ||
context.defaultExports[0].exported && context.defaultExports[0].exported.statement || | ||
context.defaultExports[0].declared | ||
) && !context.namedExports.size | ||
@@ -36,13 +41,11 @@ ) { | ||
} | ||
if (defaultExports.length) { | ||
if (context.moduleNodes.every(n => n.exported || n.nestedExports)) { | ||
return writeNestedModule(); | ||
} | ||
// hoist | ||
return writeHoistExport(); | ||
// export default | ||
if (context.defaultExports.length) { | ||
return writeDefaultExport(); | ||
} | ||
// export named | ||
return Promise.resolve(context.isExportPreferDefault()) | ||
.then(preferDefault => { | ||
if (preferDefault) { | ||
return writeHoistExport(); | ||
return writeDefaultExport(); | ||
} | ||
@@ -53,3 +56,3 @@ return writeNamedExport(); | ||
function writeHoistExport() { | ||
function writeModuleWrapper() { | ||
if ( | ||
@@ -80,10 +83,17 @@ context.moduleNodes.length && | ||
} | ||
context.s.appendLeft( | ||
context.topLevel.get().end, | ||
`\nexport default ${context.moduleNodes.length ? "_module_.exports" : "_exports_"};` | ||
); | ||
if (context.moduleNodes.length) { | ||
context.s.appendLeft( | ||
context.topLevel.get().end, | ||
"\nexport default _module_.exports;" | ||
); | ||
} else { | ||
context.s.appendLeft( | ||
context.topLevel.get().end, | ||
"\nexport {_exports_ as default};" | ||
); | ||
} | ||
} | ||
function writeModuleExport() { | ||
const node = context.moduleNodes[0]; | ||
const node = context.defaultExports[0]; | ||
if (node.exported && node.exported.object) { | ||
@@ -118,3 +128,3 @@ return Promise.resolve( | ||
node.declared.end, | ||
`;\nexport default ${node.declared.id.name};` | ||
`;\nexport {${node.declared.id.name} as default};` | ||
); | ||
@@ -310,3 +320,3 @@ } else { | ||
function writeNestedModule() { | ||
function writeDefaultExport() { | ||
const nodes = context.moduleNodes.concat(context.exportsNodes); | ||
@@ -335,6 +345,6 @@ let init = 0; | ||
for (const node of nodes) { | ||
if (node.exported && node.exported.statement) { | ||
writeNestedModuleDeclare(node, assignment === 1 ? "const" : "let"); | ||
} else if (!node.parentAssign) { | ||
writeNestedModuleNode(node); | ||
if (node.exported && node.exported.statement && !node.exported.name) { | ||
writeDefaultExportDeclare(node, assignment === 1 ? "const" : "let"); | ||
} else { | ||
writeDefaultExportNode(node); | ||
} | ||
@@ -351,8 +361,6 @@ } | ||
topIndex, | ||
`${kind} _module_exports_${defaultValue};\nexport default _module_exports_;\n` | ||
`${kind} _module_exports_${defaultValue};\nexport {_module_exports_ as default};\n` | ||
); | ||
for (const node of nodes) { | ||
if (!node.parentAssign) { | ||
writeNestedModuleNode(node); | ||
} | ||
writeDefaultExportNode(node); | ||
} | ||
@@ -362,3 +370,3 @@ } | ||
function writeNestedModuleDeclare(node, kind) { | ||
function writeDefaultExportDeclare(node, kind) { | ||
const target = node.childAssign || node; | ||
@@ -371,6 +379,9 @@ context.s.overwrite( | ||
); | ||
context.s.appendLeft(node.exported.statement.end, "\nexport default _module_exports_;"); | ||
context.s.appendLeft(node.exported.statement.end, "\nexport {_module_exports_ as default};"); | ||
} | ||
function writeNestedModuleNode(node) { | ||
function writeDefaultExportNode(node) { | ||
if (node.parentAssign && node.parentAssign.childAssign) { | ||
return; // ignore module.exports = exports = ... | ||
} | ||
let start, end; | ||
@@ -377,0 +388,0 @@ if (node.childAssign) { |
{ | ||
"name": "cjs-es", | ||
"version": "0.6.1", | ||
"version": "0.6.2", | ||
"description": "Transform CommonJS module into ES module.", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
@@ -317,2 +317,9 @@ cjs-es | ||
* 0.6.2 (Sep 19, 2018) | ||
- Enhance: try to export live-binding when exporting defaults. | ||
- Fix: the logic of module wrapper. | ||
- Fix: mixed exports. | ||
- Fix: nested module assigned with named exports. | ||
* 0.6.1 (Sep 19, 2018) | ||
@@ -319,0 +326,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
49471
1208
427