diff --git a/packages/commonjs/src/transform-commonjs.js b/packages/commonjs/src/transform-commonjs.js index 88b13b7c5..45507aa23 100644 --- a/packages/commonjs/src/transform-commonjs.js +++ b/packages/commonjs/src/transform-commonjs.js @@ -71,6 +71,7 @@ export default async function transformCommonjs( let programDepth = 0; let currentTryBlockEnd = null; let shouldWrap = false; + let reexports = false; const globals = new Set(); // A conditionalNode is a node for which execution is not guaranteed. If such a node is a require @@ -151,8 +152,9 @@ export default async function transformCommonjs( if (hasDefineEsmProperty(node.right)) { shouldWrap = true; } - } else if (defaultIsModuleExports === false) { + } else if (isRequireExpression(node.right, scope)) { shouldWrap = true; + reexports = true; } } } else if (exportName === KEY_COMPILED_ESM) { @@ -444,7 +446,9 @@ export default async function transformCommonjs( shouldWrap = !isEsModule && (shouldWrap || (uses.exports && moduleExportsAssignments.length > 0)); const detectWrappedDefault = shouldWrap && - (topLevelDefineCompiledEsmExpressions.length > 0 || code.indexOf('__esModule') >= 0); + (reexports || + topLevelDefineCompiledEsmExpressions.length > 0 || + code.indexOf('__esModule') >= 0); if ( !( diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-default/_config.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-default/_config.js new file mode 100644 index 000000000..8f05f508a --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-default/_config.js @@ -0,0 +1,3 @@ +module.exports = { + description: 'creates the correct exports from CJS module re-exporting a transpiled ES module', +}; diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-default/dep.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-default/dep.js new file mode 100644 index 000000000..fb5eac450 --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-default/dep.js @@ -0,0 +1,2 @@ +Object.defineProperty(exports, '__esModule', { value: true }); +exports.default = 'default'; diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-default/main.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-default/main.js new file mode 100644 index 000000000..b84f4f5e7 --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-default/main.js @@ -0,0 +1,3 @@ +import dep from './proxy'; + +t.is(dep, 'default'); diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-default/proxy.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-default/proxy.js new file mode 100644 index 000000000..4e05226db --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-default/proxy.js @@ -0,0 +1 @@ +module.exports = require('./dep'); diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-default/_config.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-default/_config.js new file mode 100644 index 000000000..8f05f508a --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-default/_config.js @@ -0,0 +1,3 @@ +module.exports = { + description: 'creates the correct exports from CJS module re-exporting a transpiled ES module', +}; diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-default/entry.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-default/entry.js new file mode 100644 index 000000000..fb5eac450 --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-default/entry.js @@ -0,0 +1,2 @@ +Object.defineProperty(exports, '__esModule', { value: true }); +exports.default = 'default'; diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-default/main.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-default/main.js new file mode 100644 index 000000000..0e8346288 --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-default/main.js @@ -0,0 +1,3 @@ +import * as entry from './proxy'; + +t.deepEqual(entry, { default: 'default' }); diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-default/proxy.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-default/proxy.js new file mode 100644 index 000000000..e9fb5b056 --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-default/proxy.js @@ -0,0 +1 @@ +module.exports = require('./entry'); diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-mixed/_config.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-mixed/_config.js new file mode 100644 index 000000000..8f05f508a --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-mixed/_config.js @@ -0,0 +1,3 @@ +module.exports = { + description: 'creates the correct exports from CJS module re-exporting a transpiled ES module', +}; diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-mixed/entry.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-mixed/entry.js new file mode 100644 index 000000000..8b154e2ff --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-mixed/entry.js @@ -0,0 +1,3 @@ +Object.defineProperty(exports, '__esModule', { value: true }); +exports.default = 'default'; +exports.named = 'named'; diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-mixed/main.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-mixed/main.js new file mode 100644 index 000000000..c89f3ba76 --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-mixed/main.js @@ -0,0 +1,3 @@ +import * as entry from './proxy'; + +t.deepEqual(entry, { default: 'default', named: 'named' }); diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-mixed/proxy.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-mixed/proxy.js new file mode 100644 index 000000000..e9fb5b056 --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-mixed/proxy.js @@ -0,0 +1 @@ +module.exports = require('./entry'); diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-named/_config.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-named/_config.js new file mode 100644 index 000000000..8f05f508a --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-named/_config.js @@ -0,0 +1,3 @@ +module.exports = { + description: 'creates the correct exports from CJS module re-exporting a transpiled ES module', +}; diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-named/entry.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-named/entry.js new file mode 100644 index 000000000..51016a8e7 --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-named/entry.js @@ -0,0 +1,2 @@ +Object.defineProperty(exports, '__esModule', { value: true }); +exports.named = 'named'; diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-named/main.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-named/main.js new file mode 100644 index 000000000..70f090348 --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-named/main.js @@ -0,0 +1,8 @@ +import * as entry from './proxy'; + +t.deepEqual(entry, { + default: { + named: 'named', + }, + named: 'named' +}); diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-named/proxy.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-named/proxy.js new file mode 100644 index 000000000..e9fb5b056 --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-entry-named/proxy.js @@ -0,0 +1 @@ +module.exports = require('./entry'); diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-mixed/_config.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-mixed/_config.js new file mode 100644 index 000000000..8f05f508a --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-mixed/_config.js @@ -0,0 +1,3 @@ +module.exports = { + description: 'creates the correct exports from CJS module re-exporting a transpiled ES module', +}; diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-mixed/dep.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-mixed/dep.js new file mode 100644 index 000000000..1522ddc2b --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-mixed/dep.js @@ -0,0 +1,3 @@ +Object.defineProperty(exports, '__esModule', { value: true }); +exports.named = 'named'; +exports.default = 'default'; diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-mixed/main.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-mixed/main.js new file mode 100644 index 000000000..3209dd8a0 --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-mixed/main.js @@ -0,0 +1,4 @@ +import dep, { named } from './proxy'; + +t.is(dep, 'default'); +t.is(named, 'named'); diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-mixed/proxy.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-mixed/proxy.js new file mode 100644 index 000000000..4e05226db --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-mixed/proxy.js @@ -0,0 +1 @@ +module.exports = require('./dep'); diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-named/_config.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-named/_config.js new file mode 100644 index 000000000..8f05f508a --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-named/_config.js @@ -0,0 +1,3 @@ +module.exports = { + description: 'creates the correct exports from CJS module re-exporting a transpiled ES module', +}; diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-named/dep.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-named/dep.js new file mode 100644 index 000000000..51016a8e7 --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-named/dep.js @@ -0,0 +1,2 @@ +Object.defineProperty(exports, '__esModule', { value: true }); +exports.named = 'named'; diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-named/main.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-named/main.js new file mode 100644 index 000000000..070b383ed --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-named/main.js @@ -0,0 +1,3 @@ +import { named } from './proxy'; + +t.is(named, 'named'); diff --git a/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-named/proxy.js b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-named/proxy.js new file mode 100644 index 000000000..4e05226db --- /dev/null +++ b/packages/commonjs/test/fixtures/function/transpiled-esm-reexported-named/proxy.js @@ -0,0 +1 @@ +module.exports = require('./dep'); diff --git a/packages/commonjs/test/snapshots/function.js.md b/packages/commonjs/test/snapshots/function.js.md index f34b58c15..8f39e945e 100644 --- a/packages/commonjs/test/snapshots/function.js.md +++ b/packages/commonjs/test/snapshots/function.js.md @@ -1199,6 +1199,130 @@ Generated by [AVA](https://avajs.dev). `, } +## dynamic-require-empty + +> Snapshot 1 + + { + 'main.js': `'use strict';␊ + ␊ + var submodule = {};␊ + ␊ + var hasRequiredSubmodule;␊ + ␊ + function requireSubmodule () {␊ + if (hasRequiredSubmodule) return submodule;␊ + hasRequiredSubmodule = 1;␊ + ␊ + return submodule;␊ + }␊ + ␊ + var dynamicModules;␊ + ␊ + function getDynamicModules() {␊ + return dynamicModules || (dynamicModules = {␊ + "/fixtures/function/dynamic-require-empty/submodule.js": requireSubmodule␊ + });␊ + }␊ + ␊ + function createCommonjsRequire(originalModuleDir) {␊ + function handleRequire(path) {␊ + var resolvedPath = commonjsResolve(path, originalModuleDir);␊ + if (resolvedPath !== null) {␊ + return getDynamicModules()[resolvedPath]();␊ + }␊ + throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');␊ + }␊ + handleRequire.resolve = function (path) {␊ + var resolvedPath = commonjsResolve(path, originalModuleDir);␊ + if (resolvedPath !== null) {␊ + return resolvedPath;␊ + }␊ + return require.resolve(path);␊ + };␊ + return handleRequire;␊ + }␊ + ␊ + function commonjsResolve (path, originalModuleDir) {␊ + var shouldTryNodeModules = isPossibleNodeModulesPath(path);␊ + path = normalize(path);␊ + var relPath;␊ + if (path[0] === '/') {␊ + originalModuleDir = '';␊ + }␊ + var modules = getDynamicModules();␊ + var checkedExtensions = ['', '.js', '.json'];␊ + while (true) {␊ + if (!shouldTryNodeModules) {␊ + relPath = normalize(originalModuleDir + '/' + path);␊ + } else {␊ + relPath = normalize(originalModuleDir + '/node_modules/' + path);␊ + }␊ + ␊ + if (relPath.endsWith('/..')) {␊ + break; // Travelled too far up, avoid infinite loop␊ + }␊ + ␊ + for (var extensionIndex = 0; extensionIndex < checkedExtensions.length; extensionIndex++) {␊ + var resolvedPath = relPath + checkedExtensions[extensionIndex];␊ + if (modules[resolvedPath]) {␊ + return resolvedPath;␊ + }␊ + }␊ + if (!shouldTryNodeModules) break;␊ + var nextDir = normalize(originalModuleDir + '/..');␊ + if (nextDir === originalModuleDir) break;␊ + originalModuleDir = nextDir;␊ + }␊ + return null;␊ + }␊ + ␊ + function isPossibleNodeModulesPath (modulePath) {␊ + var c0 = modulePath[0];␊ + if (c0 === '/' || c0 === '\\\\') return false;␊ + var c1 = modulePath[1], c2 = modulePath[2];␊ + if ((c0 === '.' && (!c1 || c1 === '/' || c1 === '\\\\')) ||␊ + (c0 === '.' && c1 === '.' && (!c2 || c2 === '/' || c2 === '\\\\'))) return false;␊ + if (c1 === ':' && (c2 === '/' || c2 === '\\\\')) return false;␊ + return true;␊ + }␊ + ␊ + function normalize (path) {␊ + path = path.replace(/\\\\/g, '/');␊ + var parts = path.split('/');␊ + var slashed = parts[0] === '';␊ + for (var i = 1; i < parts.length; i++) {␊ + if (parts[i] === '.' || parts[i] === '') {␊ + parts.splice(i--, 1);␊ + }␊ + }␊ + for (var i = 1; i < parts.length; i++) {␊ + if (parts[i] !== '..') continue;␊ + if (i > 0 && parts[i - 1] !== '..' && parts[i - 1] !== '.') {␊ + parts.splice(--i, 2);␊ + i--;␊ + }␊ + }␊ + path = parts.join('/');␊ + if (slashed && path[0] !== '/') path = '/' + path;␊ + else if (path.length === 0) path = '.';␊ + return path;␊ + }␊ + ␊ + var main = {};␊ + ␊ + /* eslint-disable import/no-dynamic-require, global-require */␊ + ␊ + function takeModule(withName) {␊ + return createCommonjsRequire("/fixtures/function/dynamic-require-empty")(`./${withName}`);␊ + }␊ + ␊ + t.deepEqual(takeModule('submodule'), {});␊ + ␊ + module.exports = main;␊ + `, + } + ## dynamic-require-es-entry > Snapshot 1 @@ -5127,13 +5251,17 @@ Generated by [AVA](https://avajs.dev). { 'main.js': `'use strict';␊ ␊ + var reexport = {exports: {}};␊ + ␊ var _export = {};␊ ␊ _export.named = 2;␊ ␊ - var reexport = _export;␊ + (function (module) {␊ + module.exports = _export;␊ + } (reexport));␊ ␊ - t.is(reexport.named, 2);␊ + t.is(reexport.exports.named, 2);␊ `, } @@ -5413,11 +5541,21 @@ Generated by [AVA](https://avajs.dev). ␊ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};␊ ␊ + function getDefaultExportFromCjs (x) {␊ + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊ + }␊ + ␊ + var main$1 = {exports: {}};␊ + ␊ t.is(commonjsGlobal.entryDetected, true);␊ var dep = 'dep';␊ ␊ - t.is(commonjsGlobal.entryDetected, true);␊ - var main = dep;␊ + (function (module) {␊ + t.is(commonjsGlobal.entryDetected, true);␊ + module.exports = dep;␊ + } (main$1));␊ + ␊ + var main = /*@__PURE__*/getDefaultExportFromCjs(main$1.exports);␊ ␊ module.exports = main;␊ `, @@ -7340,6 +7478,236 @@ Generated by [AVA](https://avajs.dev). `, } +## transpiled-esm-reexported-default + +> Snapshot 1 + + { + 'main.js': `'use strict';␊ + ␊ + function getDefaultExportFromCjs (x) {␊ + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊ + }␊ + ␊ + var proxy = {exports: {}};␊ + ␊ + var dep$1 = {};␊ + ␊ + Object.defineProperty(dep$1, '__esModule', { value: true });␊ + dep$1.default = 'default';␊ + ␊ + (function (module) {␊ + module.exports = dep$1;␊ + } (proxy));␊ + ␊ + var dep = /*@__PURE__*/getDefaultExportFromCjs(proxy.exports);␊ + ␊ + t.is(dep, 'default');␊ + `, + } + +## transpiled-esm-reexported-entry-default + +> Snapshot 1 + + { + 'main.js': `'use strict';␊ + ␊ + function _mergeNamespaces(n, m) {␊ + m.forEach(function (e) {␊ + e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {␊ + if (k !== 'default' && !(k in n)) {␊ + var d = Object.getOwnPropertyDescriptor(e, k);␊ + Object.defineProperty(n, k, d.get ? d : {␊ + enumerable: true,␊ + get: function () { return e[k]; }␊ + });␊ + }␊ + });␊ + });␊ + return Object.freeze(n);␊ + }␊ + ␊ + function getDefaultExportFromCjs (x) {␊ + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊ + }␊ + ␊ + var proxy$1 = {exports: {}};␊ + ␊ + var entry$1 = {};␊ + ␊ + Object.defineProperty(entry$1, '__esModule', { value: true });␊ + entry$1.default = 'default';␊ + ␊ + (function (module) {␊ + module.exports = entry$1;␊ + } (proxy$1));␊ + ␊ + var proxy = /*@__PURE__*/getDefaultExportFromCjs(proxy$1.exports);␊ + ␊ + var entry = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({␊ + __proto__: null,␊ + 'default': proxy␊ + }, [proxy$1.exports]));␊ + ␊ + t.deepEqual(entry, { default: 'default' });␊ + `, + } + +## transpiled-esm-reexported-entry-mixed + +> Snapshot 1 + + { + 'main.js': `'use strict';␊ + ␊ + function _mergeNamespaces(n, m) {␊ + m.forEach(function (e) {␊ + e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {␊ + if (k !== 'default' && !(k in n)) {␊ + var d = Object.getOwnPropertyDescriptor(e, k);␊ + Object.defineProperty(n, k, d.get ? d : {␊ + enumerable: true,␊ + get: function () { return e[k]; }␊ + });␊ + }␊ + });␊ + });␊ + return Object.freeze(n);␊ + }␊ + ␊ + function getDefaultExportFromCjs (x) {␊ + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊ + }␊ + ␊ + var proxy$1 = {exports: {}};␊ + ␊ + var entry$1 = {};␊ + ␊ + Object.defineProperty(entry$1, '__esModule', { value: true });␊ + entry$1.default = 'default';␊ + entry$1.named = 'named';␊ + ␊ + (function (module) {␊ + module.exports = entry$1;␊ + } (proxy$1));␊ + ␊ + var proxy = /*@__PURE__*/getDefaultExportFromCjs(proxy$1.exports);␊ + ␊ + var entry = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({␊ + __proto__: null,␊ + 'default': proxy␊ + }, [proxy$1.exports]));␊ + ␊ + t.deepEqual(entry, { default: 'default', named: 'named' });␊ + `, + } + +## transpiled-esm-reexported-entry-named + +> Snapshot 1 + + { + 'main.js': `'use strict';␊ + ␊ + function _mergeNamespaces(n, m) {␊ + m.forEach(function (e) {␊ + e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {␊ + if (k !== 'default' && !(k in n)) {␊ + var d = Object.getOwnPropertyDescriptor(e, k);␊ + Object.defineProperty(n, k, d.get ? d : {␊ + enumerable: true,␊ + get: function () { return e[k]; }␊ + });␊ + }␊ + });␊ + });␊ + return Object.freeze(n);␊ + }␊ + ␊ + function getDefaultExportFromCjs (x) {␊ + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊ + }␊ + ␊ + var proxy$1 = {exports: {}};␊ + ␊ + var entry$1 = {};␊ + ␊ + Object.defineProperty(entry$1, '__esModule', { value: true });␊ + entry$1.named = 'named';␊ + ␊ + (function (module) {␊ + module.exports = entry$1;␊ + } (proxy$1));␊ + ␊ + var proxy = /*@__PURE__*/getDefaultExportFromCjs(proxy$1.exports);␊ + ␊ + var entry = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({␊ + __proto__: null,␊ + 'default': proxy␊ + }, [proxy$1.exports]));␊ + ␊ + t.deepEqual(entry, {␊ + default: {␊ + named: 'named',␊ + },␊ + named: 'named'␊ + });␊ + `, + } + +## transpiled-esm-reexported-mixed + +> Snapshot 1 + + { + 'main.js': `'use strict';␊ + ␊ + function getDefaultExportFromCjs (x) {␊ + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊ + }␊ + ␊ + var proxy = {exports: {}};␊ + ␊ + var dep$1 = {};␊ + ␊ + Object.defineProperty(dep$1, '__esModule', { value: true });␊ + dep$1.named = 'named';␊ + dep$1.default = 'default';␊ + ␊ + (function (module) {␊ + module.exports = dep$1;␊ + } (proxy));␊ + ␊ + var dep = /*@__PURE__*/getDefaultExportFromCjs(proxy.exports);␊ + ␊ + t.is(dep, 'default');␊ + t.is(proxy.exports.named, 'named');␊ + `, + } + +## transpiled-esm-reexported-named + +> Snapshot 1 + + { + 'main.js': `'use strict';␊ + ␊ + var proxy = {exports: {}};␊ + ␊ + var dep = {};␊ + ␊ + Object.defineProperty(dep, '__esModule', { value: true });␊ + dep.named = 'named';␊ + ␊ + (function (module) {␊ + module.exports = dep;␊ + } (proxy));␊ + ␊ + t.is(proxy.exports.named, 'named');␊ + `, + } + ## transpiled-esm-required > Snapshot 1 @@ -7590,130 +7958,6 @@ Generated by [AVA](https://avajs.dev). `, } -## dynamic-require-empty - -> Snapshot 1 - - { - 'main.js': `'use strict';␊ - ␊ - var submodule = {};␊ - ␊ - var hasRequiredSubmodule;␊ - ␊ - function requireSubmodule () {␊ - if (hasRequiredSubmodule) return submodule;␊ - hasRequiredSubmodule = 1;␊ - ␊ - return submodule;␊ - }␊ - ␊ - var dynamicModules;␊ - ␊ - function getDynamicModules() {␊ - return dynamicModules || (dynamicModules = {␊ - "/fixtures/function/dynamic-require-empty/submodule.js": requireSubmodule␊ - });␊ - }␊ - ␊ - function createCommonjsRequire(originalModuleDir) {␊ - function handleRequire(path) {␊ - var resolvedPath = commonjsResolve(path, originalModuleDir);␊ - if (resolvedPath !== null) {␊ - return getDynamicModules()[resolvedPath]();␊ - }␊ - throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');␊ - }␊ - handleRequire.resolve = function (path) {␊ - var resolvedPath = commonjsResolve(path, originalModuleDir);␊ - if (resolvedPath !== null) {␊ - return resolvedPath;␊ - }␊ - return require.resolve(path);␊ - };␊ - return handleRequire;␊ - }␊ - ␊ - function commonjsResolve (path, originalModuleDir) {␊ - var shouldTryNodeModules = isPossibleNodeModulesPath(path);␊ - path = normalize(path);␊ - var relPath;␊ - if (path[0] === '/') {␊ - originalModuleDir = '';␊ - }␊ - var modules = getDynamicModules();␊ - var checkedExtensions = ['', '.js', '.json'];␊ - while (true) {␊ - if (!shouldTryNodeModules) {␊ - relPath = normalize(originalModuleDir + '/' + path);␊ - } else {␊ - relPath = normalize(originalModuleDir + '/node_modules/' + path);␊ - }␊ - ␊ - if (relPath.endsWith('/..')) {␊ - break; // Travelled too far up, avoid infinite loop␊ - }␊ - ␊ - for (var extensionIndex = 0; extensionIndex < checkedExtensions.length; extensionIndex++) {␊ - var resolvedPath = relPath + checkedExtensions[extensionIndex];␊ - if (modules[resolvedPath]) {␊ - return resolvedPath;␊ - }␊ - }␊ - if (!shouldTryNodeModules) break;␊ - var nextDir = normalize(originalModuleDir + '/..');␊ - if (nextDir === originalModuleDir) break;␊ - originalModuleDir = nextDir;␊ - }␊ - return null;␊ - }␊ - ␊ - function isPossibleNodeModulesPath (modulePath) {␊ - var c0 = modulePath[0];␊ - if (c0 === '/' || c0 === '\\\\') return false;␊ - var c1 = modulePath[1], c2 = modulePath[2];␊ - if ((c0 === '.' && (!c1 || c1 === '/' || c1 === '\\\\')) ||␊ - (c0 === '.' && c1 === '.' && (!c2 || c2 === '/' || c2 === '\\\\'))) return false;␊ - if (c1 === ':' && (c2 === '/' || c2 === '\\\\')) return false;␊ - return true;␊ - }␊ - ␊ - function normalize (path) {␊ - path = path.replace(/\\\\/g, '/');␊ - var parts = path.split('/');␊ - var slashed = parts[0] === '';␊ - for (var i = 1; i < parts.length; i++) {␊ - if (parts[i] === '.' || parts[i] === '') {␊ - parts.splice(i--, 1);␊ - }␊ - }␊ - for (var i = 1; i < parts.length; i++) {␊ - if (parts[i] !== '..') continue;␊ - if (i > 0 && parts[i - 1] !== '..' && parts[i - 1] !== '.') {␊ - parts.splice(--i, 2);␊ - i--;␊ - }␊ - }␊ - path = parts.join('/');␊ - if (slashed && path[0] !== '/') path = '/' + path;␊ - else if (path.length === 0) path = '.';␊ - return path;␊ - }␊ - ␊ - var main = {};␊ - ␊ - /* eslint-disable import/no-dynamic-require, global-require */␊ - ␊ - function takeModule(withName) {␊ - return createCommonjsRequire("/fixtures/function/dynamic-require-empty")(`./${withName}`);␊ - }␊ - ␊ - t.deepEqual(takeModule('submodule'), {});␊ - ␊ - module.exports = main;␊ - `, - } - ## warn-this-resolve-without-options > Snapshot 1 diff --git a/packages/commonjs/test/snapshots/function.js.snap b/packages/commonjs/test/snapshots/function.js.snap index e9e8b3c33..4d687e69a 100644 Binary files a/packages/commonjs/test/snapshots/function.js.snap and b/packages/commonjs/test/snapshots/function.js.snap differ diff --git a/packages/commonjs/test/snapshots/test.js.md b/packages/commonjs/test/snapshots/test.js.md index 63fc433c8..a3a119159 100644 --- a/packages/commonjs/test/snapshots/test.js.md +++ b/packages/commonjs/test/snapshots/test.js.md @@ -10,9 +10,19 @@ Generated by [AVA](https://avajs.dev). `'use strict';␊ ␊ + function getDefaultExportFromCjs (x) {␊ + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊ + }␊ + ␊ + var main$1 = {exports: {}};␊ + ␊ var require$$0 = "default";␊ ␊ - var main = require$$0;␊ + (function (module) {␊ + module.exports = require$$0;␊ + } (main$1));␊ + ␊ + var main = /*@__PURE__*/getDefaultExportFromCjs(main$1.exports);␊ ␊ module.exports = main;␊ ` @@ -23,6 +33,10 @@ Generated by [AVA](https://avajs.dev). `'use strict';␊ ␊ + function getDefaultExportFromCjs (x) {␊ + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊ + }␊ + ␊ function getAugmentedNamespace(n) {␊ var f = n.default;␊ if (typeof f == "function") {␊ @@ -44,6 +58,8 @@ Generated by [AVA](https://avajs.dev). return a;␊ }␊ ␊ + var main$1 = {exports: {}};␊ + ␊ const value = "value";␊ ␊ var esm = /*#__PURE__*/Object.freeze({␊ @@ -53,7 +69,11 @@ Generated by [AVA](https://avajs.dev). ␊ var require$$0 = /*@__PURE__*/getAugmentedNamespace(esm);␊ ␊ - var main = require$$0;␊ + (function (module) {␊ + module.exports = require$$0;␊ + } (main$1));␊ + ␊ + var main = /*@__PURE__*/getDefaultExportFromCjs(main$1.exports);␊ ␊ module.exports = main;␊ ` diff --git a/packages/commonjs/test/snapshots/test.js.snap b/packages/commonjs/test/snapshots/test.js.snap index dbca1b612..925f06c48 100644 Binary files a/packages/commonjs/test/snapshots/test.js.snap and b/packages/commonjs/test/snapshots/test.js.snap differ