Skip to content

Commit

Permalink
Align named imports behavior in .mjs and .js files (#14366)
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolo-ribaudo committed Mar 22, 2022
1 parent 8855e4c commit 71a003a
Show file tree
Hide file tree
Showing 18 changed files with 34 additions and 31 deletions.
Expand Up @@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
});
exports["default"] = void 0;

var _react = babelHelpers.interopRequireDefault(require("react"));
var _react = babelHelpers.interopRequireWildcard(require("react"));

var RandomComponent = /*#__PURE__*/function (_Component) {
babelHelpers.inherits(RandomComponent, _Component);
Expand Down
11 changes: 6 additions & 5 deletions packages/babel-plugin-transform-modules-commonjs/src/index.ts
Expand Up @@ -19,13 +19,14 @@ export default declare((api, options) => {
const transformImportCall = createDynamicImportTransform(api);

const {
// 'true' for non-mjs files to strictly have .default, instead of having
// destructuring-like behavior for their properties.
// 'true' for imports to strictly have .default, instead of having
// destructuring-like behavior for their properties. This matches the behavior
// of the initial Node.js (v12) behavior when importing a CommonJS without
// the __esMoule property.
// .strictNamespace is for non-mjs files, mjsStrictNamespace if for mjs files.
strictNamespace = false,
mjsStrictNamespace = strictNamespace,

// 'true' for mjs files to strictly have .default, instead of having
// destructuring-like behavior for their properties.
mjsStrictNamespace = true,
allowTopLevelThis,
strict,
strictMode,
Expand Down
Expand Up @@ -31,7 +31,7 @@ _foo2 = babelHelpers.interopRequireDefault(require("foo2"))

var
/*before*/
foo2 = babelHelpers.interopRequireDefault(require("foo3"))
foo2 = babelHelpers.interopRequireWildcard(require("foo3"))
/*after*/
;

Expand Down
@@ -1,7 +1,7 @@
"use strict";

function foo() {
const data = babelHelpers.interopRequireDefault(require("foo"));
const data = babelHelpers.interopRequireWildcard(require("foo"));

foo = function () {
return data;
Expand Down
Expand Up @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
exports.namespace = void 0;

function namespace() {
const data = babelHelpers.interopRequireDefault(require("foo"));
const data = babelHelpers.interopRequireWildcard(require("foo"));

namespace = function () {
return data;
Expand Down
@@ -1,4 +1,4 @@
"use strict";

var foo = babelHelpers.interopRequireDefault(require("./foo"));
var foo = babelHelpers.interopRequireWildcard(require("./foo"));
console.log(foo);
Expand Up @@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
value: true
});
exports.namespace = void 0;
var namespace = babelHelpers.interopRequireDefault(require("./foo"));
var namespace = babelHelpers.interopRequireWildcard(require("./foo"));
exports.namespace = namespace;
@@ -1,7 +1,7 @@
"use strict";

function foo1() {
const data = babelHelpers.interopRequireDefault(require("white"));
const data = babelHelpers.interopRequireWildcard(require("white"));

foo1 = function () {
return data;
Expand All @@ -10,6 +10,6 @@ function foo1() {
return data;
}

var foo2 = babelHelpers.interopRequireDefault(require("black"));
var foo2 = babelHelpers.interopRequireWildcard(require("black"));
console.log(foo1());
console.log(foo2);
Expand Up @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
exports.namespace2 = exports.namespace1 = void 0;

function namespace1() {
const data = babelHelpers.interopRequireDefault(require("white"));
const data = babelHelpers.interopRequireWildcard(require("white"));

namespace1 = function () {
return data;
Expand All @@ -21,5 +21,5 @@ Object.defineProperty(exports, "namespace1", {
return namespace1();
}
});
var namespace2 = babelHelpers.interopRequireDefault(require("black"));
var namespace2 = babelHelpers.interopRequireWildcard(require("black"));
exports.namespace2 = namespace2;
@@ -1,5 +1,5 @@
// No exception should be thrown
import * as foo from "./moduleWithGetter";

expect(foo.baz).toBe(123);
expect(() => foo.boo).toThrow();

// No exception should be thrown
@@ -1,3 +1,3 @@
{
"plugins": [["transform-modules-commonjs", { "mjsStrictNamespace": false }]]
"plugins": ["transform-modules-commonjs"]
}
@@ -1,3 +1,4 @@
// No exception should be thrown
import Foo, { baz } from "./moduleWithGetter";

// No exception should be thrown
expect(baz).toBe(123);
Expand Up @@ -16,6 +16,8 @@ Object.defineProperty(exports, "baz", {
}
});

var _moduleWithGetter = _interopRequireDefault(require("./moduleWithGetter"));
var _moduleWithGetter = _interopRequireWildcard(require("./moduleWithGetter"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }

function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
Expand Up @@ -2,10 +2,14 @@

var _foo = _interopRequireDefault(require("foo"));

var Bar = _interopRequireDefault(require("bar"));
var Bar = _interopRequireWildcard(require("bar"));

var _baz = require("baz");

function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }

function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

_foo.default = (42, function () {
Expand Down
Expand Up @@ -6,7 +6,7 @@ var _two = require("two");

var _three = require("three");

var aNamespace = babelHelpers.interopRequireDefault(require("four"));
var aNamespace = babelHelpers.interopRequireWildcard(require("four"));
console.log(_one.default);
console.log(_two.aNamed);
console.log(_three.orig);
Expand Down
@@ -1,7 +1,7 @@
"use strict";

function mod() {
const data = babelHelpers.interopRequireDefault(require("mod"));
const data = babelHelpers.interopRequireWildcard(require("mod"));

mod = function () {
return data;
Expand Down
@@ -1,8 +1,3 @@
{
"plugins": [
[
"transform-modules-commonjs",
{ "strict": true, "mjsStrictNamespace": false }
]
]
"plugins": [["transform-modules-commonjs", { "strict": true }]]
}
Expand Up @@ -5,6 +5,6 @@ Object.defineProperty(exports, "__esModule", {
});
exports.foo = void 0;

var _foo = babelHelpers.interopRequireDefault(require("./foo.mjs"));
var _foo = babelHelpers.interopRequireWildcard(require("./foo.mjs"));

exports.foo = _foo;

0 comments on commit 71a003a

Please sign in to comment.