Skip to content

Commit

Permalink
refactor(commonjs): add early exit for namespace augmentation
Browse files Browse the repository at this point in the history
  • Loading branch information
lukastaegert committed Sep 21, 2020
1 parent 9bb9808 commit 848958b
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 17 deletions.
1 change: 1 addition & 0 deletions packages/commonjs/src/helpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ export function getDefaultExportFromNamespaceIfNotNamed (n) {
}
export function getAugmentedNamespace(n) {
if (n.__esModule) return n;
var a = Object.defineProperty({}, '__esModule', {value: true});
Object.keys(n).forEach(function (k) {
var d = Object.getOwnPropertyDescriptor(n, k);
Expand Down
12 changes: 12 additions & 0 deletions packages/commonjs/test/snapshots/function.js.md
Original file line number Diff line number Diff line change
Expand Up @@ -2824,6 +2824,7 @@ Generated by [AVA](https://avajs.dev).
var externalEsmDefault = require('external-esm-default');␊
function getAugmentedNamespace(n) {␊
if (n.__esModule) return n;␊
var a = Object.defineProperty({}, '__esModule', {value: true});␊
Object.keys(n).forEach(function (k) {␊
var d = Object.getOwnPropertyDescriptor(n, k);␊
Expand Down Expand Up @@ -2869,6 +2870,7 @@ Generated by [AVA](https://avajs.dev).
var externalEsmDefault = require('external-esm-default');␊
function getAugmentedNamespace(n) {␊
if (n.__esModule) return n;␊
var a = Object.defineProperty({}, '__esModule', {value: true});␊
Object.keys(n).forEach(function (k) {␊
var d = Object.getOwnPropertyDescriptor(n, k);␊
Expand Down Expand Up @@ -2910,6 +2912,7 @@ Generated by [AVA](https://avajs.dev).
var externalEsmDefault = require('external-esm-default');␊
function getAugmentedNamespace(n) {␊
if (n.__esModule) return n;␊
var a = Object.defineProperty({}, '__esModule', {value: true});␊
Object.keys(n).forEach(function (k) {␊
var d = Object.getOwnPropertyDescriptor(n, k);␊
Expand Down Expand Up @@ -3049,6 +3052,7 @@ Generated by [AVA](https://avajs.dev).
});␊
function getAugmentedNamespace(n) {␊
if (n.__esModule) return n;␊
var a = Object.defineProperty({}, '__esModule', {value: true});␊
Object.keys(n).forEach(function (k) {␊
var d = Object.getOwnPropertyDescriptor(n, k);␊
Expand Down Expand Up @@ -3246,6 +3250,7 @@ Generated by [AVA](https://avajs.dev).
});␊
function getAugmentedNamespace(n) {␊
if (n.__esModule) return n;␊
var a = Object.defineProperty({}, '__esModule', {value: true});␊
Object.keys(n).forEach(function (k) {␊
var d = Object.getOwnPropertyDescriptor(n, k);␊
Expand Down Expand Up @@ -3351,6 +3356,7 @@ Generated by [AVA](https://avajs.dev).
var trueMixed = 'default';␊
function getAugmentedNamespace(n) {␊
if (n.__esModule) return n;␊
var a = Object.defineProperty({}, '__esModule', {value: true});␊
Object.keys(n).forEach(function (k) {␊
var d = Object.getOwnPropertyDescriptor(n, k);␊
Expand Down Expand Up @@ -3438,6 +3444,7 @@ Generated by [AVA](https://avajs.dev).
}␊
function getAugmentedNamespace(n) {␊
if (n.__esModule) return n;␊
var a = Object.defineProperty({}, '__esModule', {value: true});␊
Object.keys(n).forEach(function (k) {␊
var d = Object.getOwnPropertyDescriptor(n, k);␊
Expand Down Expand Up @@ -3643,6 +3650,7 @@ Generated by [AVA](https://avajs.dev).
});␊
function getAugmentedNamespace(n) {␊
if (n.__esModule) return n;␊
var a = Object.defineProperty({}, '__esModule', {value: true});␊
Object.keys(n).forEach(function (k) {␊
var d = Object.getOwnPropertyDescriptor(n, k);␊
Expand Down Expand Up @@ -3708,6 +3716,7 @@ Generated by [AVA](https://avajs.dev).
}␊
function getAugmentedNamespace(n) {␊
if (n.__esModule) return n;␊
var a = Object.defineProperty({}, '__esModule', {value: true});␊
Object.keys(n).forEach(function (k) {␊
var d = Object.getOwnPropertyDescriptor(n, k);␊
Expand Down Expand Up @@ -4262,6 +4271,7 @@ Generated by [AVA](https://avajs.dev).
});␊
function getAugmentedNamespace(n) {␊
if (n.__esModule) return n;␊
var a = Object.defineProperty({}, '__esModule', {value: true});␊
Object.keys(n).forEach(function (k) {␊
var d = Object.getOwnPropertyDescriptor(n, k);␊
Expand Down Expand Up @@ -4302,6 +4312,7 @@ Generated by [AVA](https://avajs.dev).
});␊
function getAugmentedNamespace(n) {␊
if (n.__esModule) return n;␊
var a = Object.defineProperty({}, '__esModule', {value: true});␊
Object.keys(n).forEach(function (k) {␊
var d = Object.getOwnPropertyDescriptor(n, k);␊
Expand Down Expand Up @@ -4479,6 +4490,7 @@ Generated by [AVA](https://avajs.dev).
});␊
function getAugmentedNamespace(n) {␊
if (n.__esModule) return n;␊
var a = Object.defineProperty({}, '__esModule', {value: true});␊
Object.keys(n).forEach(function (k) {␊
var d = Object.getOwnPropertyDescriptor(n, k);␊
Expand Down
Binary file modified packages/commonjs/test/snapshots/function.js.snap
Binary file not shown.
1 change: 1 addition & 0 deletions packages/commonjs/test/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -575,6 +575,7 @@ var esm = /*#__PURE__*/Object.freeze({
});
function getAugmentedNamespace(n) {
if (n.__esModule) return n;
var a = Object.defineProperty({}, '__esModule', {value: true});
Object.keys(n).forEach(function (k) {
var d = Object.getOwnPropertyDescriptor(n, k);
Expand Down
28 changes: 11 additions & 17 deletions packages/commonjs/types/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,17 @@ interface RollupCommonJSOptions {
* Controls what is returned when requiring an ES module from a CommonJS file.
* When using the `esmExternals` option, this will also apply to external
* modules. By default, this plugin will render those imports as namespace
* imports. However there are some situations where this may not be desired.
* imports i.e.
*
* ```js
* // input
* const foo = require('foo');
*
* // output
* import * as foo from 'foo';
* ```
*
* However there are some situations where this may not be desired.
* For these situations, you can change Rollup's behaviour either globally or
* per module. To change it globally, set the `requireReturnsDefault` option
* to one of the following values:
Expand Down Expand Up @@ -132,22 +142,6 @@ interface RollupCommonJSOptions {
* replacing strings like `"/Users/John/Desktop/foo-project/"` -> `"/"`.
*/
dynamicRequireTargets?: string | ReadonlyArray<string>;
/**
* Controls what is returned when requiring an ES module or external dependency
* from a CommonJS file. By default, this plugin will render it as a namespace
* import, i.e.
*
* ```js
* // input
* const foo = require('foo');
*
* // output
* import * as foo from 'foo';
* ```
*
* @default false
*/
requireReturnsDefault?: boolean | 'auto' | 'preferred' | ((id: string) => boolean | 'auto' | 'preferred');
}

/**
Expand Down

0 comments on commit 848958b

Please sign in to comment.