@rollup/plugin-commonjs 17.1.0 → 18.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -135,18 +135,20 @@ export function getAugmentedNamespace(n) {
135
135
  }
136
136
  `;
137
137
 
138
+ const FAILED_REQUIRE_ERROR = `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.');`;
139
+
138
140
  const HELPER_NON_DYNAMIC = `
139
141
  export function createCommonjsModule(fn) {
140
142
  var module = { exports: {} }
141
143
  return fn(module, module.exports), module.exports;
142
144
  }
143
145
 
144
- export function commonjsRequire (target) {
145
- throw new Error('Could not dynamically require "' + target + '". Please configure the dynamicRequireTargets option of @rollup/plugin-commonjs appropriately for this require call to behave properly.');
146
+ export function commonjsRequire (path) {
147
+ ${FAILED_REQUIRE_ERROR}
146
148
  }
147
149
  `;
148
150
 
149
- const HELPERS_DYNAMIC = `
151
+ const getDynamicHelpers = (ignoreDynamicRequires) => `
150
152
  export function createCommonjsModule(fn, basedir, module) {
151
153
  return module = {
152
154
  path: basedir,
@@ -318,15 +320,17 @@ export function commonjsRequire (path, originalModuleDir) {
318
320
  return cachedModule.exports;
319
321
  };
320
322
  }
321
- return require(path);
323
+ ${ignoreDynamicRequires ? 'return require(path);' : FAILED_REQUIRE_ERROR}
322
324
  }
323
325
 
324
326
  commonjsRequire.cache = DYNAMIC_REQUIRE_CACHE;
325
327
  commonjsRequire.resolve = commonjsResolve;
326
328
  `;
327
329
 
328
- function getHelpersModule(isDynamicRequireModulesEnabled) {
329
- return `${HELPERS}${isDynamicRequireModulesEnabled ? HELPERS_DYNAMIC : HELPER_NON_DYNAMIC}`;
330
+ function getHelpersModule(isDynamicRequireModulesEnabled, ignoreDynamicRequires) {
331
+ return `${HELPERS}${
332
+ isDynamicRequireModulesEnabled ? getDynamicHelpers(ignoreDynamicRequires) : HELPER_NON_DYNAMIC
333
+ }`;
330
334
  }
331
335
 
332
336
  /* eslint-disable import/prefer-default-export */
@@ -456,9 +460,7 @@ function getDynamicRequirePaths(patterns) {
456
460
  return { dynamicRequireModuleSet, dynamicRequireModuleDirPaths };
457
461
  }
458
462
 
459
- const isCjsPromises = new Map();
460
-
461
- function getIsCjsPromise(id) {
463
+ function getIsCjsPromise(isCjsPromises, id) {
462
464
  let isCjsPromise = isCjsPromises.get(id);
463
465
  if (isCjsPromise) return isCjsPromise.promise;
464
466
 
@@ -474,7 +476,7 @@ function getIsCjsPromise(id) {
474
476
  return promise;
475
477
  }
476
478
 
477
- function setIsCjsPromise(id, resolution) {
479
+ function setIsCjsPromise(isCjsPromises, id, resolution) {
478
480
  const isCjsPromise = isCjsPromises.get(id);
479
481
  if (isCjsPromise) {
480
482
  if (isCjsPromise.resolve) {
@@ -528,10 +530,11 @@ async function getStaticRequireProxy(
528
530
  id,
529
531
  requireReturnsDefault,
530
532
  esModulesWithDefaultExport,
531
- esModulesWithNamedExports
533
+ esModulesWithNamedExports,
534
+ isCjsPromises
532
535
  ) {
533
536
  const name = getName(id);
534
- const isCjs = await getIsCjsPromise(id);
537
+ const isCjs = await getIsCjsPromise(isCjsPromises, id);
535
538
  if (isCjs) {
536
539
  return `import { __moduleExports } from ${JSON.stringify(id)}; export default __moduleExports;`;
537
540
  } else if (isCjs === null) {
@@ -805,7 +808,8 @@ function rewriteExportsAndGetExportsBlock(
805
808
  isRestorableCompiledEsm,
806
809
  code,
807
810
  uses,
808
- HELPERS_NAME
811
+ HELPERS_NAME,
812
+ defaultIsModuleExports
809
813
  ) {
810
814
  const namedExportDeclarations = [`export { ${moduleName} as __moduleExports };`];
811
815
  const moduleExportsPropertyAssignments = [];
@@ -860,19 +864,29 @@ function rewriteExportsAndGetExportsBlock(
860
864
 
861
865
  // Generate default export
862
866
  const defaultExport = [];
863
- if (isRestorableCompiledEsm) {
864
- defaultExport.push(`export default ${deconflictedDefaultExportName || moduleName};`);
865
- } else if (
866
- (wrapped || deconflictedDefaultExportName) &&
867
- (defineCompiledEsmExpressions.length > 0 || code.indexOf('__esModule') >= 0)
868
- ) {
869
- // eslint-disable-next-line no-param-reassign
870
- uses.commonjsHelpers = true;
871
- defaultExport.push(
872
- `export default /*@__PURE__*/${HELPERS_NAME}.getDefaultExportFromCjs(${moduleName});`
873
- );
874
- } else {
867
+ if (defaultIsModuleExports === 'auto') {
868
+ if (isRestorableCompiledEsm) {
869
+ defaultExport.push(`export default ${deconflictedDefaultExportName || moduleName};`);
870
+ } else if (
871
+ (wrapped || deconflictedDefaultExportName) &&
872
+ (defineCompiledEsmExpressions.length > 0 || code.includes('__esModule'))
873
+ ) {
874
+ // eslint-disable-next-line no-param-reassign
875
+ uses.commonjsHelpers = true;
876
+ defaultExport.push(
877
+ `export default /*@__PURE__*/${HELPERS_NAME}.getDefaultExportFromCjs(${moduleName});`
878
+ );
879
+ } else {
880
+ defaultExport.push(`export default ${moduleName};`);
881
+ }
882
+ } else if (defaultIsModuleExports === true) {
875
883
  defaultExport.push(`export default ${moduleName};`);
884
+ } else if (defaultIsModuleExports === false) {
885
+ if (deconflictedDefaultExportName) {
886
+ defaultExport.push(`export default ${deconflictedDefaultExportName};`);
887
+ } else {
888
+ defaultExport.push(`export default ${moduleName}.default;`);
889
+ }
876
890
  }
877
891
 
878
892
  return `\n\n${defaultExport
@@ -1120,13 +1134,15 @@ function transformCommonjs(
1120
1134
  isEsModule,
1121
1135
  ignoreGlobal,
1122
1136
  ignoreRequire,
1137
+ ignoreDynamicRequires,
1123
1138
  getIgnoreTryCatchRequireStatementMode,
1124
1139
  sourceMap,
1125
1140
  isDynamicRequireModulesEnabled,
1126
1141
  dynamicRequireModuleSet,
1127
1142
  disableWrap,
1128
1143
  commonDir,
1129
- astCache
1144
+ astCache,
1145
+ defaultIsModuleExports
1130
1146
  ) {
1131
1147
  const ast = astCache || tryParse(parse, code, id);
1132
1148
  const magicString = new MagicString__default['default'](code);
@@ -1394,12 +1410,14 @@ function transformCommonjs(
1394
1410
  )}`
1395
1411
  );
1396
1412
  }
1397
- if (isShorthandProperty(parent)) {
1398
- magicString.appendRight(node.end, `: ${HELPERS_NAME}.commonjsRequire`);
1399
- } else {
1400
- magicString.overwrite(node.start, node.end, `${HELPERS_NAME}.commonjsRequire`, {
1401
- storeName: true
1402
- });
1413
+ if (!ignoreDynamicRequires) {
1414
+ if (isShorthandProperty(parent)) {
1415
+ magicString.appendRight(node.end, `: ${HELPERS_NAME}.commonjsRequire`);
1416
+ } else {
1417
+ magicString.overwrite(node.start, node.end, `${HELPERS_NAME}.commonjsRequire`, {
1418
+ storeName: true
1419
+ });
1420
+ }
1403
1421
  }
1404
1422
 
1405
1423
  uses.commonjsHelpers = true;
@@ -1511,7 +1529,8 @@ function transformCommonjs(
1511
1529
  uses.exports ||
1512
1530
  uses.require ||
1513
1531
  uses.commonjsHelpers ||
1514
- hasRemovedRequire
1532
+ hasRemovedRequire ||
1533
+ isRestorableCompiledEsm
1515
1534
  ) &&
1516
1535
  (ignoreGlobal || !uses.global)
1517
1536
  ) {
@@ -1540,7 +1559,8 @@ function transformCommonjs(
1540
1559
  isRestorableCompiledEsm,
1541
1560
  code,
1542
1561
  uses,
1543
- HELPERS_NAME
1562
+ HELPERS_NAME,
1563
+ defaultIsModuleExports
1544
1564
  );
1545
1565
 
1546
1566
  const importBlock = rewriteRequireExpressionsAndGetImportBlock(
@@ -1574,6 +1594,7 @@ function commonjs(options = {}) {
1574
1594
  const filter = pluginutils.createFilter(options.include, options.exclude);
1575
1595
  const {
1576
1596
  ignoreGlobal,
1597
+ ignoreDynamicRequires,
1577
1598
  requireReturnsDefault: requireReturnsDefaultOption,
1578
1599
  esmExternals
1579
1600
  } = options;
@@ -1588,6 +1609,8 @@ function commonjs(options = {}) {
1588
1609
  : Array.isArray(esmExternals)
1589
1610
  ? ((esmExternalIds = new Set(esmExternals)), (id) => esmExternalIds.has(id))
1590
1611
  : () => esmExternals;
1612
+ const defaultIsModuleExports =
1613
+ typeof options.defaultIsModuleExports === 'boolean' ? options.defaultIsModuleExports : 'auto';
1591
1614
 
1592
1615
  const { dynamicRequireModuleSet, dynamicRequireModuleDirPaths } = getDynamicRequirePaths(
1593
1616
  options.dynamicRequireTargets
@@ -1599,6 +1622,7 @@ function commonjs(options = {}) {
1599
1622
 
1600
1623
  const esModulesWithDefaultExport = new Set();
1601
1624
  const esModulesWithNamedExports = new Set();
1625
+ const isCjsPromises = new Map();
1602
1626
 
1603
1627
  const ignoreRequire =
1604
1628
  typeof options.ignore === 'function'
@@ -1627,6 +1651,7 @@ function commonjs(options = {}) {
1627
1651
 
1628
1652
  function transformAndCheckExports(code, id) {
1629
1653
  if (isDynamicRequireModulesEnabled && this.getModuleInfo(id).isEntry) {
1654
+ // eslint-disable-next-line no-param-reassign
1630
1655
  code =
1631
1656
  getDynamicPackagesEntryIntro(dynamicRequireModuleDirPaths, dynamicRequireModuleSet) + code;
1632
1657
  }
@@ -1655,6 +1680,7 @@ function commonjs(options = {}) {
1655
1680
  // avoid wrapping in createCommonjsModule, as this is a commonjsRegister call
1656
1681
  if (isModuleRegisterProxy(id)) {
1657
1682
  disableWrap = true;
1683
+ // eslint-disable-next-line no-param-reassign
1658
1684
  id = unwrapModuleRegisterProxy(id);
1659
1685
  }
1660
1686
 
@@ -1665,13 +1691,15 @@ function commonjs(options = {}) {
1665
1691
  isEsModule,
1666
1692
  ignoreGlobal || isEsModule,
1667
1693
  ignoreRequire,
1694
+ ignoreDynamicRequires && !isDynamicRequireModulesEnabled,
1668
1695
  getIgnoreTryCatchRequireStatementMode,
1669
1696
  sourceMap,
1670
1697
  isDynamicRequireModulesEnabled,
1671
1698
  dynamicRequireModuleSet,
1672
1699
  disableWrap,
1673
1700
  commonDir,
1674
- ast
1701
+ ast,
1702
+ defaultIsModuleExports
1675
1703
  );
1676
1704
  }
1677
1705
 
@@ -1691,7 +1719,7 @@ function commonjs(options = {}) {
1691
1719
 
1692
1720
  load(id) {
1693
1721
  if (id === HELPERS_ID) {
1694
- return getHelpersModule(isDynamicRequireModulesEnabled);
1722
+ return getHelpersModule(isDynamicRequireModulesEnabled, ignoreDynamicRequires);
1695
1723
  }
1696
1724
 
1697
1725
  if (id.startsWith(HELPERS_ID)) {
@@ -1731,7 +1759,8 @@ function commonjs(options = {}) {
1731
1759
  actualId,
1732
1760
  getRequireReturnsDefault(actualId),
1733
1761
  esModulesWithDefaultExport,
1734
- esModulesWithNamedExports
1762
+ esModulesWithNamedExports,
1763
+ isCjsPromises
1735
1764
  );
1736
1765
  }
1737
1766
 
@@ -1762,15 +1791,16 @@ function commonjs(options = {}) {
1762
1791
  }
1763
1792
  },
1764
1793
 
1794
+ // eslint-disable-next-line no-shadow
1765
1795
  moduleParsed({ id, meta: { commonjs } }) {
1766
1796
  if (commonjs) {
1767
1797
  const isCjs = commonjs.isCommonJS;
1768
1798
  if (isCjs != null) {
1769
- setIsCjsPromise(id, isCjs);
1799
+ setIsCjsPromise(isCjsPromises, id, isCjs);
1770
1800
  return;
1771
1801
  }
1772
1802
  }
1773
- setIsCjsPromise(id, null);
1803
+ setIsCjsPromise(isCjsPromises, id, null);
1774
1804
  }
1775
1805
  };
1776
1806
  }