Implement assumptions defined in the babel/rfcs#5 RFC
- `mutableTemplateObject` and `ignoreToPrimitiveHint` (#12408) - `setClassMethods` (#12407) - `setComputedProperties` (#12490) - `ignoreFunctionLength` (#12491) - `noDocumentAll` (#12481) - `iterableIsArray` and `arrayLikeIsIterable` (#12489) - `pureGetters` (#12504) - `skipForOfIteratorClosing` (#12496) - `objectRestNoSymbols`, `setSpreadProperties` and `pureGetters` (#12505) - `noNewArrows` (#12613, #12793) - `setPublicClassFields` and `privateFieldsAsProperties` (#12497) - `constantReexports` and `enumerableModuleMeta` (#12618) - `constantSuper`, `superIsCallableConstructor` and `noClassCalls` (#12726) Co-authored-by: Justin Ridgewell <justin@ridgewell.name> Co-authored-by: Huáng Jùnliàng <JLHwung@users.noreply.github.com>
This commit is contained in:
@@ -19,8 +19,6 @@ export default declare((api, options) => {
|
||||
const transformImportCall = createDynamicImportTransform(api);
|
||||
|
||||
const {
|
||||
loose,
|
||||
|
||||
// 'true' for non-mjs files to strictly have .default, instead of having
|
||||
// destructuring-like behavior for their properties.
|
||||
strictNamespace = false,
|
||||
@@ -37,6 +35,11 @@ export default declare((api, options) => {
|
||||
allowCommonJSExports = true,
|
||||
} = options;
|
||||
|
||||
const constantReexports =
|
||||
api.assumption("constantReexports") ?? options.loose;
|
||||
const enumerableModuleMeta =
|
||||
api.assumption("enumerableModuleMeta") ?? options.loose;
|
||||
|
||||
if (
|
||||
typeof lazy !== "boolean" &&
|
||||
typeof lazy !== "function" &&
|
||||
@@ -169,7 +172,8 @@ export default declare((api, options) => {
|
||||
path,
|
||||
{
|
||||
exportName: "exports",
|
||||
loose,
|
||||
constantReexports,
|
||||
enumerableModuleMeta,
|
||||
strict,
|
||||
strictMode,
|
||||
allowTopLevelThis,
|
||||
@@ -215,7 +219,11 @@ export default declare((api, options) => {
|
||||
|
||||
headers.push(header);
|
||||
headers.push(
|
||||
...buildNamespaceInitStatements(meta, metadata, loose),
|
||||
...buildNamespaceInitStatements(
|
||||
meta,
|
||||
metadata,
|
||||
constantReexports,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
export {foo as default} from "foo";
|
||||
@@ -0,0 +1,10 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
|
||||
var _foo = require("foo");
|
||||
|
||||
exports.default = _foo.foo;
|
||||
@@ -0,0 +1 @@
|
||||
export {foo as default, bar} from "foo";
|
||||
@@ -0,0 +1,11 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.bar = exports.default = void 0;
|
||||
|
||||
var _foo = require("foo");
|
||||
|
||||
exports.default = _foo.foo;
|
||||
exports.bar = _foo.bar;
|
||||
@@ -0,0 +1 @@
|
||||
export {foo as bar} from "foo";
|
||||
@@ -0,0 +1,10 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.bar = void 0;
|
||||
|
||||
var _foo = require("foo");
|
||||
|
||||
exports.bar = _foo.foo;
|
||||
@@ -0,0 +1 @@
|
||||
export {foo, bar} from "foo";
|
||||
@@ -0,0 +1,11 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.bar = exports.foo = void 0;
|
||||
|
||||
var _foo = require("foo");
|
||||
|
||||
exports.foo = _foo.foo;
|
||||
exports.bar = _foo.bar;
|
||||
@@ -0,0 +1 @@
|
||||
export * from "foo";
|
||||
@@ -0,0 +1,13 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
var _foo = require("foo");
|
||||
|
||||
Object.keys(_foo).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (key in exports && exports[key] === _foo[key]) return;
|
||||
exports[key] = _foo[key];
|
||||
});
|
||||
@@ -0,0 +1 @@
|
||||
export {foo} from "foo";
|
||||
@@ -0,0 +1,10 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.foo = void 0;
|
||||
|
||||
var _foo = require("foo");
|
||||
|
||||
exports.foo = _foo.foo;
|
||||
@@ -0,0 +1,3 @@
|
||||
import { foo } from "./foo";
|
||||
|
||||
export { foo };
|
||||
@@ -0,0 +1,9 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
var _foo = require("./foo");
|
||||
|
||||
exports.foo = _foo.foo;
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"assumptions": {
|
||||
"constantReexports": true
|
||||
},
|
||||
"plugins": ["external-helpers", "transform-modules-commonjs"]
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export var foo = 2;
|
||||
@@ -0,0 +1,6 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.foo = void 0;
|
||||
var foo = 2;
|
||||
exports.foo = foo;
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"assumptions": {
|
||||
"enumerableModuleMeta": true
|
||||
},
|
||||
"plugins": ["external-helpers", "transform-modules-commonjs"]
|
||||
}
|
||||
Reference in New Issue
Block a user