Comparing version 0.3.0 to 0.3.1
@@ -39,3 +39,3 @@ const {walk} = require("estree-walker"); | ||
const topLevelImportTransformer = createTopLevelImportTransformer({code, s, importStyle}); | ||
const topLevelImportTransformer = createTopLevelImportTransformer({code, s, importStyle, hoist}); | ||
const topLevelExportTransformer = createTopLevelExportTransformer({code, s, exportStyle}); | ||
@@ -42,0 +42,0 @@ |
@@ -201,3 +201,3 @@ const {getExportInfo, getRequireInfo, getObjectInfo, isPreferDefault} = require("./util"); | ||
function createTopLevelImportTransformer({s, importStyle, code}) { | ||
function createTopLevelImportTransformer({s, importStyle, code, hoist}) { | ||
let isTouched = false; | ||
@@ -216,2 +216,4 @@ | ||
} | ||
const preferDefault = isPreferDefault(code, declared.required) || | ||
importStyle(declared.required.value) === "default"; | ||
if (declared.property) { | ||
@@ -224,9 +226,6 @@ // const foo = require("foo").foo; | ||
); | ||
s.appendLeft(declared.left.end, "}"); | ||
s.appendLeft(declared.left.end, "}"); | ||
} else if (!declared.object) { | ||
// const foo = require("foo") | ||
if ( | ||
isPreferDefault(code, declared.required) || | ||
importStyle(declared.required.value) === "default" | ||
) { | ||
if (preferDefault) { | ||
// import default | ||
@@ -247,2 +246,9 @@ s.overwrite( | ||
} else { | ||
if (preferDefault) { | ||
if (hoist) { | ||
return; | ||
} else { | ||
throw new Error("Can not bind default export to ObjectPattern."); | ||
} | ||
} | ||
// const {foo, bar} | ||
@@ -249,0 +255,0 @@ s.overwrite( |
{ | ||
"name": "cjs-es", | ||
"version": "0.3.0", | ||
"version": "0.3.1", | ||
"description": "Transform CommonJS module into ES module.", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
@@ -191,2 +191,6 @@ cjs-es | ||
* 0.3.1 (Apr 28, 2018) | ||
- Fix: error while binding default export to object pattern. | ||
* 0.3.0 (Apr 27, 2018) | ||
@@ -193,0 +197,0 @@ |
@@ -28,3 +28,7 @@ /* eslint-env mocha */ | ||
try { | ||
return fs.readFileSync(`${__dirname}/cases/${dir}/${filename}`, "utf8").replace(/\r/g, ""); | ||
const content = fs.readFileSync(`${__dirname}/cases/${dir}/${filename}`, "utf8").replace(/\r/g, ""); | ||
if (filename.endsWith(".json")) { | ||
return JSON.parse(content); | ||
} | ||
return content; | ||
} catch (err) { | ||
@@ -34,12 +38,22 @@ // pass | ||
}; | ||
const options = JSON.parse(readFile("options.json") || "{}"); | ||
const options = readFile("options.json"); | ||
const error = readFile("error.json"); | ||
const input = readFile("input.js"); | ||
const output = readFile("output.js"); | ||
const result = transform(Object.assign({ | ||
code: input, | ||
parse | ||
}, c.options, options)); | ||
assert.equal(result.code, output); | ||
assert.equal(result.isTouched, input !== output); | ||
let result, err; | ||
try { | ||
result = transform(Object.assign({ | ||
code: input, | ||
parse | ||
}, c.options, options)); | ||
} catch (_err) { | ||
err = _err; | ||
} | ||
if (result) { | ||
assert.equal(result.code, output); | ||
assert.equal(result.isTouched, input !== output); | ||
} else { | ||
assert.equal(err.message, error.message); | ||
} | ||
}); | ||
@@ -46,0 +60,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
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
32188
76
947
219
0