From 03e97763deb4a807f6ed7010d3c3d545c5b85e57 Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Fri, 29 May 2020 23:54:09 +0200 Subject: [PATCH] fix(commonjs)!: do not create fake named exports (#427) BREAKING CHANGE * fix(commonjs): do not create fake named exports * chore(commonjs): remove unneeded check --- packages/commonjs/src/transform.js | 28 +----------------- .../commonjs/test/snapshots/function.js.md | 20 ++++--------- .../commonjs/test/snapshots/function.js.snap | Bin 7834 -> 7778 bytes 3 files changed, 7 insertions(+), 41 deletions(-) diff --git a/packages/commonjs/src/transform.js b/packages/commonjs/src/transform.js index 9118f7964..d371b707f 100644 --- a/packages/commonjs/src/transform.js +++ b/packages/commonjs/src/transform.js @@ -529,11 +529,6 @@ export function transformCommonjs( !uses.require && (ignoreGlobal || !uses.global) ) { - if (Object.keys(namedExports).length) { - throw new Error( - `Custom named exports were specified for ${id} but it does not appear to be a CommonJS module` - ); - } // not a CommonJS module return null; } @@ -578,22 +573,6 @@ export function transformCommonjs( namedExportDeclarations.push(exportModuleExports); } - const name = getName(id); - - function addExport(x) { - const deconflicted = deconflict(scope, globals, name); - - const declaration = - deconflicted === name - ? `export var ${x} = ${moduleName}.${x};` - : `var ${deconflicted} = ${moduleName}.${x};\nexport { ${deconflicted} as ${x} };`; - - namedExportDeclarations.push({ - str: declaration, - name: x - }); - } - const defaultExportPropertyAssignments = []; let hasDefaultExport = false; @@ -648,7 +627,6 @@ export function transformCommonjs( str: declaration, name }); - delete namedExports[name]; } defaultExportPropertyAssignments.push(`${moduleName}.${name} = ${deconflicted};`); @@ -663,12 +641,8 @@ export function transformCommonjs( } } - Object.keys(namedExports) - .filter((key) => !blacklist[key]) - .forEach(addExport); - const defaultExport = /__esModule/.test(code) - ? `export default ${HELPERS_NAME}.unwrapExports(${moduleName});` + ? `export default /*@__PURE__*/${HELPERS_NAME}.unwrapExports(${moduleName});` : `export default ${moduleName};`; const named = namedExportDeclarations diff --git a/packages/commonjs/test/snapshots/function.js.md b/packages/commonjs/test/snapshots/function.js.md index 1d96ad78e..fa724cc97 100644 --- a/packages/commonjs/test/snapshots/function.js.md +++ b/packages/commonjs/test/snapshots/function.js.md @@ -35,13 +35,11 @@ Generated by [AVA](https://ava.li). exports.answer = 42;␊ });␊ ␊ - var answer$1 = unwrapExports(answer);␊ - var answer_1 = answer.answer;␊ + var answer$1 = /*@__PURE__*/unwrapExports(answer);␊ ␊ var x = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(null), answer$1, {␊ 'default': answer$1,␊ - __moduleExports: answer,␊ - answer: answer_1␊ + __moduleExports: answer␊ }));␊ ␊ t.truthy('answer' in x);␊ @@ -98,7 +96,6 @@ Generated by [AVA](https://ava.li). module.exports = { fake: true };␊ }␊ });␊ - var document_2 = document_1.fake;␊ ␊ t.deepEqual(document_1, { real: true });␊ `, @@ -3265,13 +3262,12 @@ Generated by [AVA](https://ava.li). // to ensure module is wrapped␊ commonjsGlobal.foo = exports;␊ });␊ - var encode_1 = encode.encodeURIComponent;␊ ␊ /* eslint-disable */␊ ␊ const foo = {␊ str: 'test string',␊ - encodeURIComponent: encode_1␊ + encodeURIComponent: encode.encodeURIComponent␊ };␊ ␊ var encoded = foo.encodeURIComponent();␊ @@ -3399,9 +3395,8 @@ Generated by [AVA](https://ava.li). module.exports = { named: 'foo' };␊ }␊ });␊ - var x_1 = x.named;␊ ␊ - t.is(x_1, 'foo');␊ + t.is(x.named, 'foo');␊ `, } @@ -3584,8 +3579,6 @@ Generated by [AVA](https://ava.li). exports.default = Bar;␊ });␊ ␊ - unwrapExports(commonjsBar);␊ - ␊ var commonjsFoo = createCommonjsModule(function (module, exports) {␊ /* eslint-disable no-underscore-dangle */␊ ␊ @@ -3594,10 +3587,9 @@ Generated by [AVA](https://ava.li). exports.Bar = commonjsBar.default;␊ });␊ ␊ - unwrapExports(commonjsFoo);␊ - var commonjsFoo_1 = commonjsFoo.Bar;␊ + var commonjsFoo$1 = /*@__PURE__*/unwrapExports(commonjsFoo);␊ ␊ - t.is(new commonjsFoo_1().x, 42);␊ + t.is(new commonjsFoo$1.Bar().x, 42);␊ `, } diff --git a/packages/commonjs/test/snapshots/function.js.snap b/packages/commonjs/test/snapshots/function.js.snap index c1fd38deebebcfab5695cdb1fc92438ef13e6c25..578c30a547bb032d24ccb456e2fac2c712c591fc 100644 GIT binary patch literal 7778 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 U9xFZFNPk^(l?JEiBM=e(2hn{q)c^nh