From 1d788e0267c0b4e8d0e21b2cf03f8322b38906c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Thu, 18 Mar 2021 12:20:26 +0100 Subject: [PATCH 1/4] [commonjs] Add `nodeDefaultImport` option to match Node.js behavior --- packages/commonjs/README.md | 7 +++++++ packages/commonjs/src/generate-exports.js | 6 ++++-- packages/commonjs/src/index.js | 3 ++- packages/commonjs/src/transform-commonjs.js | 8 +++++--- .../nodeDefaultImport-__esModule/_config.js | 5 +++++ .../nodeDefaultImport-__esModule/input.js | 3 +++ .../nodeDefaultImport-__esModule/output.js | 14 ++++++++++++++ .../_config.js | 5 +++++ .../nodeDefaultImport-no-__esModule/input.js | 2 ++ .../nodeDefaultImport-no-__esModule/output.js | 11 +++++++++++ packages/commonjs/test/form.js | 19 ++++++++++++++++++- 11 files changed, 76 insertions(+), 7 deletions(-) create mode 100755 packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/_config.js create mode 100755 packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/input.js create mode 100755 packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/output.js create mode 100755 packages/commonjs/test/fixtures/form/nodeDefaultImport-no-__esModule/_config.js create mode 100755 packages/commonjs/test/fixtures/form/nodeDefaultImport-no-__esModule/input.js create mode 100755 packages/commonjs/test/fixtures/form/nodeDefaultImport-no-__esModule/output.js diff --git a/packages/commonjs/README.md b/packages/commonjs/README.md index 6aff1ee2e..707bc4dce 100644 --- a/packages/commonjs/README.md +++ b/packages/commonjs/README.md @@ -174,6 +174,13 @@ If you set `esmExternals` to `true`, this plugins assumes that all external depe You can also supply an array of ids to be treated as ES modules, or a function that will be passed each external id to determine if it is an ES module. +### `nodeDefaultImport` + +Type: `boolean`
+Default: `false` + +When `true`, match the Node.js behavior when importing the `default` import from a CommonJS module, making it return the value of `module.exports`. + ### `requireReturnsDefault` Type: `boolean | "namespace" | "auto" | "preferred" | ((id: string) => boolean | "auto" | "preferred")`
diff --git a/packages/commonjs/src/generate-exports.js b/packages/commonjs/src/generate-exports.js index 2818c65ed..e229f937c 100644 --- a/packages/commonjs/src/generate-exports.js +++ b/packages/commonjs/src/generate-exports.js @@ -20,7 +20,8 @@ export function rewriteExportsAndGetExportsBlock( isRestorableCompiledEsm, code, uses, - HELPERS_NAME + HELPERS_NAME, + nodeDefaultImport ) { const namedExportDeclarations = [`export { ${moduleName} as __moduleExports };`]; const moduleExportsPropertyAssignments = []; @@ -79,7 +80,8 @@ export function rewriteExportsAndGetExportsBlock( defaultExport.push(`export default ${deconflictedDefaultExportName || moduleName};`); } else if ( (wrapped || deconflictedDefaultExportName) && - (defineCompiledEsmExpressions.length > 0 || code.indexOf('__esModule') >= 0) + (defineCompiledEsmExpressions.length > 0 || + (!nodeDefaultImport && code.indexOf('__esModule') >= 0)) ) { // eslint-disable-next-line no-param-reassign uses.commonjsHelpers = true; diff --git a/packages/commonjs/src/index.js b/packages/commonjs/src/index.js index 79015294b..79475c176 100644 --- a/packages/commonjs/src/index.js +++ b/packages/commonjs/src/index.js @@ -145,7 +145,8 @@ export default function commonjs(options = {}) { dynamicRequireModuleSet, disableWrap, commonDir, - ast + ast, + options.nodeDefaultImport ); } diff --git a/packages/commonjs/src/transform-commonjs.js b/packages/commonjs/src/transform-commonjs.js index ccb32a565..74b25c31a 100644 --- a/packages/commonjs/src/transform-commonjs.js +++ b/packages/commonjs/src/transform-commonjs.js @@ -53,7 +53,8 @@ export default function transformCommonjs( dynamicRequireModuleSet, disableWrap, commonDir, - astCache + astCache, + nodeDefaultImport ) { const ast = astCache || tryParse(parse, code, id); const magicString = new MagicString(code); @@ -137,7 +138,7 @@ export default function transformCommonjs( // we're dealing with `module.exports = ...` or `[module.]exports.foo = ...` – if (programDepth > 3) { shouldWrap = true; - } else if (exportName === KEY_COMPILED_ESM) { + } else if (!nodeDefaultImport && exportName === KEY_COMPILED_ESM) { defineCompiledEsmExpressions.push(parent); } else if (flattened.keypath === 'module.exports') { topLevelModuleExportsAssignments.push(node); @@ -470,7 +471,8 @@ export default function transformCommonjs( isRestorableCompiledEsm, code, uses, - HELPERS_NAME + HELPERS_NAME, + nodeDefaultImport ); const importBlock = rewriteRequireExpressionsAndGetImportBlock( diff --git a/packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/_config.js b/packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/_config.js new file mode 100755 index 000000000..de2668c29 --- /dev/null +++ b/packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/_config.js @@ -0,0 +1,5 @@ +module.exports = { + options: { + nodeDefaultImport: true + } +}; diff --git a/packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/input.js b/packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/input.js new file mode 100755 index 000000000..d4efb165b --- /dev/null +++ b/packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/input.js @@ -0,0 +1,3 @@ +exports.__esModule = true; +exports.default = 2; +exports.named = 3; diff --git a/packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/output.js b/packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/output.js new file mode 100755 index 000000000..bd78bf3c5 --- /dev/null +++ b/packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/output.js @@ -0,0 +1,14 @@ +const __esModule = true; +const _default = 2; +const named = 3; + +const input = { + __esModule, + default: _default, + named +}; + +export default input; +export { input as __moduleExports }; +export { __esModule }; +export { named }; diff --git a/packages/commonjs/test/fixtures/form/nodeDefaultImport-no-__esModule/_config.js b/packages/commonjs/test/fixtures/form/nodeDefaultImport-no-__esModule/_config.js new file mode 100755 index 000000000..de2668c29 --- /dev/null +++ b/packages/commonjs/test/fixtures/form/nodeDefaultImport-no-__esModule/_config.js @@ -0,0 +1,5 @@ +module.exports = { + options: { + nodeDefaultImport: true + } +}; diff --git a/packages/commonjs/test/fixtures/form/nodeDefaultImport-no-__esModule/input.js b/packages/commonjs/test/fixtures/form/nodeDefaultImport-no-__esModule/input.js new file mode 100755 index 000000000..562cc1abe --- /dev/null +++ b/packages/commonjs/test/fixtures/form/nodeDefaultImport-no-__esModule/input.js @@ -0,0 +1,2 @@ +exports.default = 2; +exports.named = 3; diff --git a/packages/commonjs/test/fixtures/form/nodeDefaultImport-no-__esModule/output.js b/packages/commonjs/test/fixtures/form/nodeDefaultImport-no-__esModule/output.js new file mode 100755 index 000000000..ea0abef42 --- /dev/null +++ b/packages/commonjs/test/fixtures/form/nodeDefaultImport-no-__esModule/output.js @@ -0,0 +1,11 @@ +const _default = 2; +const named = 3; + +const input = { + default: _default, + named +}; + +export default input; +export { input as __moduleExports }; +export { named }; diff --git a/packages/commonjs/test/form.js b/packages/commonjs/test/form.js index ae245863a..6238bac05 100644 --- a/packages/commonjs/test/form.js +++ b/packages/commonjs/test/form.js @@ -1,6 +1,6 @@ /* eslint-disable global-require, import/no-dynamic-require, no-console */ -import { existsSync, readdirSync, readFileSync } from 'fs'; +import { existsSync, readdirSync, readFileSync, writeFileSync } from 'fs'; import * as acorn from 'acorn'; import test from 'ava'; @@ -70,6 +70,23 @@ readdirSync('./fixtures/form').forEach((dir) => { const transformed = transform.call(transformContext, input, id); const actual = (transformed ? transformed.code : input).trim().replace(/\0/g, '_'); + if ( + process.env.OVERWRITE && + actual + .split('\n') + .map((x) => x.trimEnd()) + .join('\n') !== + expected + .split('\n') + .map((x) => x.trimEnd()) + .join('\n') + ) { + writeFileSync(outputFile, actual); + console.log('UPDATED', outputFile); + t.true(true); + return; + } + // trim whitespace from line endings, // this will benefit issues like `form/try-catch-remove` where whitespace is left in the line, // and testing on windows (\r\n) From 773a457d11692e54d3b376b200d4c3f955703414 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Thu, 18 Mar 2021 12:23:13 +0100 Subject: [PATCH 2/4] Undo unrelated changes --- packages/commonjs/test/form.js | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/packages/commonjs/test/form.js b/packages/commonjs/test/form.js index 6238bac05..ae245863a 100644 --- a/packages/commonjs/test/form.js +++ b/packages/commonjs/test/form.js @@ -1,6 +1,6 @@ /* eslint-disable global-require, import/no-dynamic-require, no-console */ -import { existsSync, readdirSync, readFileSync, writeFileSync } from 'fs'; +import { existsSync, readdirSync, readFileSync } from 'fs'; import * as acorn from 'acorn'; import test from 'ava'; @@ -70,23 +70,6 @@ readdirSync('./fixtures/form').forEach((dir) => { const transformed = transform.call(transformContext, input, id); const actual = (transformed ? transformed.code : input).trim().replace(/\0/g, '_'); - if ( - process.env.OVERWRITE && - actual - .split('\n') - .map((x) => x.trimEnd()) - .join('\n') !== - expected - .split('\n') - .map((x) => x.trimEnd()) - .join('\n') - ) { - writeFileSync(outputFile, actual); - console.log('UPDATED', outputFile); - t.true(true); - return; - } - // trim whitespace from line endings, // this will benefit issues like `form/try-catch-remove` where whitespace is left in the line, // and testing on windows (\r\n) From 599c8b9f2a2a384392d01878d287768dc85c1c4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Thu, 18 Mar 2021 12:40:06 +0100 Subject: [PATCH 3/4] Undo editor autoformatter --- .../form/nodeDefaultImport-__esModule/output.js | 16 ++++++++-------- .../nodeDefaultImport-no-__esModule/output.js | 12 ++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/output.js b/packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/output.js index bd78bf3c5..54f3861fc 100755 --- a/packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/output.js +++ b/packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/output.js @@ -1,14 +1,14 @@ -const __esModule = true; -const _default = 2; -const named = 3; +var __esModule = true; +var _default = 2; +var named = 3; -const input = { - __esModule, - default: _default, - named +var input = { + __esModule: __esModule, + default: _default, + named: named }; export default input; export { input as __moduleExports }; export { __esModule }; -export { named }; +export { named }; \ No newline at end of file diff --git a/packages/commonjs/test/fixtures/form/nodeDefaultImport-no-__esModule/output.js b/packages/commonjs/test/fixtures/form/nodeDefaultImport-no-__esModule/output.js index ea0abef42..9e4a115e8 100755 --- a/packages/commonjs/test/fixtures/form/nodeDefaultImport-no-__esModule/output.js +++ b/packages/commonjs/test/fixtures/form/nodeDefaultImport-no-__esModule/output.js @@ -1,11 +1,11 @@ -const _default = 2; -const named = 3; +var _default = 2; +var named = 3; -const input = { - default: _default, - named +var input = { + default: _default, + named: named }; export default input; export { input as __moduleExports }; -export { named }; +export { named }; \ No newline at end of file From fc735723f9ecb650779ea05862b4d6d10f38e51b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Fri, 19 Mar 2021 12:33:08 +0100 Subject: [PATCH 4/4] Change option --- packages/commonjs/README.md | 44 +++++++++++++++++-- packages/commonjs/src/generate-exports.js | 37 ++++++++++------ packages/commonjs/src/index.js | 4 +- packages/commonjs/src/transform-commonjs.js | 6 +-- .../_config.js | 5 +++ .../input.js | 0 .../output.js | 11 +++++ .../_config.js | 5 +++ .../input.js | 0 .../output.js | 0 .../_config.js | 5 +++ .../input.js | 3 ++ .../output.js | 11 +++++ .../_config.js | 5 +++ .../input.js | 2 + .../output.js | 11 +++++ .../_config.js | 5 +++ .../input.js | 1 + .../output.js | 9 ++++ .../_config.js | 2 +- .../input.js | 3 ++ .../output.js | 11 +++++ .../_config.js | 2 +- .../input.js | 2 + .../output.js | 3 -- 25 files changed, 160 insertions(+), 27 deletions(-) create mode 100755 packages/commonjs/test/fixtures/form/defaultIsModuleExports-auto-__esModule/_config.js rename packages/commonjs/test/fixtures/form/{nodeDefaultImport-__esModule => defaultIsModuleExports-auto-__esModule}/input.js (100%) create mode 100755 packages/commonjs/test/fixtures/form/defaultIsModuleExports-auto-__esModule/output.js create mode 100755 packages/commonjs/test/fixtures/form/defaultIsModuleExports-auto-no-__esModule/_config.js rename packages/commonjs/test/fixtures/form/{nodeDefaultImport-no-__esModule => defaultIsModuleExports-auto-no-__esModule}/input.js (100%) rename packages/commonjs/test/fixtures/form/{nodeDefaultImport-no-__esModule => defaultIsModuleExports-auto-no-__esModule}/output.js (100%) create mode 100755 packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-__esModule/_config.js create mode 100755 packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-__esModule/input.js create mode 100755 packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-__esModule/output.js create mode 100755 packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-__esModule/_config.js create mode 100755 packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-__esModule/input.js create mode 100755 packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-__esModule/output.js create mode 100755 packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-default/_config.js create mode 100755 packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-default/input.js create mode 100755 packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-default/output.js rename packages/commonjs/test/fixtures/form/{nodeDefaultImport-__esModule => defaultIsModuleExports-true-__esModule}/_config.js (54%) create mode 100755 packages/commonjs/test/fixtures/form/defaultIsModuleExports-true-__esModule/input.js create mode 100755 packages/commonjs/test/fixtures/form/defaultIsModuleExports-true-__esModule/output.js rename packages/commonjs/test/fixtures/form/{nodeDefaultImport-no-__esModule => defaultIsModuleExports-true-no-__esModule}/_config.js (54%) create mode 100755 packages/commonjs/test/fixtures/form/defaultIsModuleExports-true-no-__esModule/input.js rename packages/commonjs/test/fixtures/form/{nodeDefaultImport-__esModule => defaultIsModuleExports-true-no-__esModule}/output.js (62%) diff --git a/packages/commonjs/README.md b/packages/commonjs/README.md index 707bc4dce..66432e503 100644 --- a/packages/commonjs/README.md +++ b/packages/commonjs/README.md @@ -174,12 +174,48 @@ If you set `esmExternals` to `true`, this plugins assumes that all external depe You can also supply an array of ids to be treated as ES modules, or a function that will be passed each external id to determine if it is an ES module. -### `nodeDefaultImport` +### `defaultIsModuleExports` -Type: `boolean`
-Default: `false` +Type: `boolean | "auto"`
+Default: `"auto"` + +Controls what is the default export when importing a CommonJS file from an ES module. -When `true`, match the Node.js behavior when importing the `default` import from a CommonJS module, making it return the value of `module.exports`. +- `true`: The value of the default export is `module.exports`. This currently matches the behavior of Node.js when importing a CommonJS file. + ```js + // mod.cjs + exports.default = 3; + ``` + ```js + import foo from './mod.cjs'; + console.log(foo); // { default: 3 } + ``` +- `false`: The value of the default export is `exports.default`. + ```js + // mod.cjs + exports.default = 3; + ``` + ```js + import foo from './mod.cjs'; + console.log(foo); // 3 + ``` +- `"auto"`: The value of the default export is `exports.default` if the CommonJS file has an `exports.__esModule === true` property; otherwise it's `module.exports`. This makes it possible to import + the default export of ES modules compiled to CommonJS as if they were not compiled. + ```js + // mod.cjs + exports.default = 3; + ``` + ```js + // mod-compiled.cjs + exports.__esModule = true; + exports.default = 3; + ``` + ```js + import foo from './mod.cjs'; + import bar from './mod-compiled.cjs'; + console.log(foo); // { default: 3 } + console.log(bar); // 3 + ``` ### `requireReturnsDefault` diff --git a/packages/commonjs/src/generate-exports.js b/packages/commonjs/src/generate-exports.js index e229f937c..4a30cb5ff 100644 --- a/packages/commonjs/src/generate-exports.js +++ b/packages/commonjs/src/generate-exports.js @@ -21,7 +21,7 @@ export function rewriteExportsAndGetExportsBlock( code, uses, HELPERS_NAME, - nodeDefaultImport + defaultIsModuleExports ) { const namedExportDeclarations = [`export { ${moduleName} as __moduleExports };`]; const moduleExportsPropertyAssignments = []; @@ -76,20 +76,29 @@ export function rewriteExportsAndGetExportsBlock( // Generate default export const defaultExport = []; - if (isRestorableCompiledEsm) { - defaultExport.push(`export default ${deconflictedDefaultExportName || moduleName};`); - } else if ( - (wrapped || deconflictedDefaultExportName) && - (defineCompiledEsmExpressions.length > 0 || - (!nodeDefaultImport && code.indexOf('__esModule') >= 0)) - ) { - // eslint-disable-next-line no-param-reassign - uses.commonjsHelpers = true; - defaultExport.push( - `export default /*@__PURE__*/${HELPERS_NAME}.getDefaultExportFromCjs(${moduleName});` - ); - } else { + if (defaultIsModuleExports === 'auto') { + if (isRestorableCompiledEsm) { + defaultExport.push(`export default ${deconflictedDefaultExportName || moduleName};`); + } else if ( + (wrapped || deconflictedDefaultExportName) && + (defineCompiledEsmExpressions.length > 0 || code.includes('__esModule')) + ) { + // eslint-disable-next-line no-param-reassign + uses.commonjsHelpers = true; + defaultExport.push( + `export default /*@__PURE__*/${HELPERS_NAME}.getDefaultExportFromCjs(${moduleName});` + ); + } else { + defaultExport.push(`export default ${moduleName};`); + } + } else if (defaultIsModuleExports === true) { defaultExport.push(`export default ${moduleName};`); + } else if (defaultIsModuleExports === false) { + if (deconflictedDefaultExportName) { + defaultExport.push(`export default ${deconflictedDefaultExportName};`); + } else { + defaultExport.push(`export default ${moduleName}.default;`); + } } return `\n\n${defaultExport diff --git a/packages/commonjs/src/index.js b/packages/commonjs/src/index.js index 79475c176..bdb92bcdc 100644 --- a/packages/commonjs/src/index.js +++ b/packages/commonjs/src/index.js @@ -59,6 +59,8 @@ export default function commonjs(options = {}) { : Array.isArray(esmExternals) ? ((esmExternalIds = new Set(esmExternals)), (id) => esmExternalIds.has(id)) : () => esmExternals; + const defaultIsModuleExports = + typeof options.defaultIsModuleExports === 'boolean' ? options.defaultIsModuleExports : 'auto'; const { dynamicRequireModuleSet, dynamicRequireModuleDirPaths } = getDynamicRequirePaths( options.dynamicRequireTargets @@ -146,7 +148,7 @@ export default function commonjs(options = {}) { disableWrap, commonDir, ast, - options.nodeDefaultImport + defaultIsModuleExports ); } diff --git a/packages/commonjs/src/transform-commonjs.js b/packages/commonjs/src/transform-commonjs.js index 74b25c31a..e37271a8e 100644 --- a/packages/commonjs/src/transform-commonjs.js +++ b/packages/commonjs/src/transform-commonjs.js @@ -54,7 +54,7 @@ export default function transformCommonjs( disableWrap, commonDir, astCache, - nodeDefaultImport + defaultIsModuleExports ) { const ast = astCache || tryParse(parse, code, id); const magicString = new MagicString(code); @@ -138,7 +138,7 @@ export default function transformCommonjs( // we're dealing with `module.exports = ...` or `[module.]exports.foo = ...` – if (programDepth > 3) { shouldWrap = true; - } else if (!nodeDefaultImport && exportName === KEY_COMPILED_ESM) { + } else if (exportName === KEY_COMPILED_ESM) { defineCompiledEsmExpressions.push(parent); } else if (flattened.keypath === 'module.exports') { topLevelModuleExportsAssignments.push(node); @@ -472,7 +472,7 @@ export default function transformCommonjs( code, uses, HELPERS_NAME, - nodeDefaultImport + defaultIsModuleExports ); const importBlock = rewriteRequireExpressionsAndGetImportBlock( diff --git a/packages/commonjs/test/fixtures/form/defaultIsModuleExports-auto-__esModule/_config.js b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-auto-__esModule/_config.js new file mode 100755 index 000000000..466f62535 --- /dev/null +++ b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-auto-__esModule/_config.js @@ -0,0 +1,5 @@ +module.exports = { + options: { + defaultIsModuleExports: 'auto' + } +}; diff --git a/packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/input.js b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-auto-__esModule/input.js similarity index 100% rename from packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/input.js rename to packages/commonjs/test/fixtures/form/defaultIsModuleExports-auto-__esModule/input.js diff --git a/packages/commonjs/test/fixtures/form/defaultIsModuleExports-auto-__esModule/output.js b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-auto-__esModule/output.js new file mode 100755 index 000000000..29b4b47c3 --- /dev/null +++ b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-auto-__esModule/output.js @@ -0,0 +1,11 @@ +var _default = 2; +var named = 3; + +var input = /*#__PURE__*/Object.defineProperty({ + default: _default, + named: named +}, '__esModule', {value: true}); + +export default _default; +export { input as __moduleExports }; +export { named }; \ No newline at end of file diff --git a/packages/commonjs/test/fixtures/form/defaultIsModuleExports-auto-no-__esModule/_config.js b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-auto-no-__esModule/_config.js new file mode 100755 index 000000000..466f62535 --- /dev/null +++ b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-auto-no-__esModule/_config.js @@ -0,0 +1,5 @@ +module.exports = { + options: { + defaultIsModuleExports: 'auto' + } +}; diff --git a/packages/commonjs/test/fixtures/form/nodeDefaultImport-no-__esModule/input.js b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-auto-no-__esModule/input.js similarity index 100% rename from packages/commonjs/test/fixtures/form/nodeDefaultImport-no-__esModule/input.js rename to packages/commonjs/test/fixtures/form/defaultIsModuleExports-auto-no-__esModule/input.js diff --git a/packages/commonjs/test/fixtures/form/nodeDefaultImport-no-__esModule/output.js b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-auto-no-__esModule/output.js similarity index 100% rename from packages/commonjs/test/fixtures/form/nodeDefaultImport-no-__esModule/output.js rename to packages/commonjs/test/fixtures/form/defaultIsModuleExports-auto-no-__esModule/output.js diff --git a/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-__esModule/_config.js b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-__esModule/_config.js new file mode 100755 index 000000000..d4402a7ee --- /dev/null +++ b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-__esModule/_config.js @@ -0,0 +1,5 @@ +module.exports = { + options: { + defaultIsModuleExports: false + } +}; diff --git a/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-__esModule/input.js b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-__esModule/input.js new file mode 100755 index 000000000..d4efb165b --- /dev/null +++ b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-__esModule/input.js @@ -0,0 +1,3 @@ +exports.__esModule = true; +exports.default = 2; +exports.named = 3; diff --git a/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-__esModule/output.js b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-__esModule/output.js new file mode 100755 index 000000000..29b4b47c3 --- /dev/null +++ b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-__esModule/output.js @@ -0,0 +1,11 @@ +var _default = 2; +var named = 3; + +var input = /*#__PURE__*/Object.defineProperty({ + default: _default, + named: named +}, '__esModule', {value: true}); + +export default _default; +export { input as __moduleExports }; +export { named }; \ No newline at end of file diff --git a/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-__esModule/_config.js b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-__esModule/_config.js new file mode 100755 index 000000000..d4402a7ee --- /dev/null +++ b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-__esModule/_config.js @@ -0,0 +1,5 @@ +module.exports = { + options: { + defaultIsModuleExports: false + } +}; diff --git a/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-__esModule/input.js b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-__esModule/input.js new file mode 100755 index 000000000..562cc1abe --- /dev/null +++ b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-__esModule/input.js @@ -0,0 +1,2 @@ +exports.default = 2; +exports.named = 3; diff --git a/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-__esModule/output.js b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-__esModule/output.js new file mode 100755 index 000000000..de8e0862a --- /dev/null +++ b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-__esModule/output.js @@ -0,0 +1,11 @@ +var _default = 2; +var named = 3; + +var input = { + default: _default, + named: named +}; + +export default _default; +export { input as __moduleExports }; +export { named }; \ No newline at end of file diff --git a/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-default/_config.js b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-default/_config.js new file mode 100755 index 000000000..d4402a7ee --- /dev/null +++ b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-default/_config.js @@ -0,0 +1,5 @@ +module.exports = { + options: { + defaultIsModuleExports: false + } +}; diff --git a/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-default/input.js b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-default/input.js new file mode 100755 index 000000000..fd2304246 --- /dev/null +++ b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-default/input.js @@ -0,0 +1 @@ +exports.named = 3; diff --git a/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-default/output.js b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-default/output.js new file mode 100755 index 000000000..81484f1e4 --- /dev/null +++ b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-false-no-default/output.js @@ -0,0 +1,9 @@ +var named = 3; + +var input = { + named: named +}; + +export default input.default; +export { input as __moduleExports }; +export { named }; \ No newline at end of file diff --git a/packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/_config.js b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-true-__esModule/_config.js similarity index 54% rename from packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/_config.js rename to packages/commonjs/test/fixtures/form/defaultIsModuleExports-true-__esModule/_config.js index de2668c29..a57f02831 100755 --- a/packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/_config.js +++ b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-true-__esModule/_config.js @@ -1,5 +1,5 @@ module.exports = { options: { - nodeDefaultImport: true + defaultIsModuleExports: true } }; diff --git a/packages/commonjs/test/fixtures/form/defaultIsModuleExports-true-__esModule/input.js b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-true-__esModule/input.js new file mode 100755 index 000000000..d4efb165b --- /dev/null +++ b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-true-__esModule/input.js @@ -0,0 +1,3 @@ +exports.__esModule = true; +exports.default = 2; +exports.named = 3; diff --git a/packages/commonjs/test/fixtures/form/defaultIsModuleExports-true-__esModule/output.js b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-true-__esModule/output.js new file mode 100755 index 000000000..f997b9eaf --- /dev/null +++ b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-true-__esModule/output.js @@ -0,0 +1,11 @@ +var _default = 2; +var named = 3; + +var input = /*#__PURE__*/Object.defineProperty({ + default: _default, + named: named +}, '__esModule', {value: true}); + +export default input; +export { input as __moduleExports }; +export { named }; \ No newline at end of file diff --git a/packages/commonjs/test/fixtures/form/nodeDefaultImport-no-__esModule/_config.js b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-true-no-__esModule/_config.js similarity index 54% rename from packages/commonjs/test/fixtures/form/nodeDefaultImport-no-__esModule/_config.js rename to packages/commonjs/test/fixtures/form/defaultIsModuleExports-true-no-__esModule/_config.js index de2668c29..a57f02831 100755 --- a/packages/commonjs/test/fixtures/form/nodeDefaultImport-no-__esModule/_config.js +++ b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-true-no-__esModule/_config.js @@ -1,5 +1,5 @@ module.exports = { options: { - nodeDefaultImport: true + defaultIsModuleExports: true } }; diff --git a/packages/commonjs/test/fixtures/form/defaultIsModuleExports-true-no-__esModule/input.js b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-true-no-__esModule/input.js new file mode 100755 index 000000000..562cc1abe --- /dev/null +++ b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-true-no-__esModule/input.js @@ -0,0 +1,2 @@ +exports.default = 2; +exports.named = 3; diff --git a/packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/output.js b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-true-no-__esModule/output.js similarity index 62% rename from packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/output.js rename to packages/commonjs/test/fixtures/form/defaultIsModuleExports-true-no-__esModule/output.js index 54f3861fc..9e4a115e8 100755 --- a/packages/commonjs/test/fixtures/form/nodeDefaultImport-__esModule/output.js +++ b/packages/commonjs/test/fixtures/form/defaultIsModuleExports-true-no-__esModule/output.js @@ -1,14 +1,11 @@ -var __esModule = true; var _default = 2; var named = 3; var input = { - __esModule: __esModule, default: _default, named: named }; export default input; export { input as __moduleExports }; -export { __esModule }; export { named }; \ No newline at end of file