rename exportsType named to default
exportsType default doesn't include named exports in strict esm
This commit is contained in:
parent
ce70102a8f
commit
5a01ed8121
|
@ -485,8 +485,8 @@ class ContextModule extends Module {
|
|||
} else if (exportsType === "namespace") {
|
||||
map[id] = 9;
|
||||
hasNamespace = true;
|
||||
} else if (exportsType === "named") {
|
||||
map[id] = 3;
|
||||
} else if (exportsType === "default") {
|
||||
map[id] = this.options.namespaceObject === "strict" ? 1 : 3;
|
||||
hasNamed = true;
|
||||
}
|
||||
return map;
|
||||
|
@ -498,7 +498,7 @@ class ContextModule extends Module {
|
|||
return 9;
|
||||
}
|
||||
if (!hasNamespace && !hasNonHarmony && hasNamed) {
|
||||
return 3;
|
||||
return this.options.namespaceObject === "strict" ? 1 : 3;
|
||||
}
|
||||
if (!hasNamespace && !hasNonHarmony && !hasNamed) {
|
||||
return 9;
|
||||
|
|
|
@ -65,7 +65,7 @@ const makeSerializable = require("./util/makeSerializable");
|
|||
* @property {string=} exportsArgument
|
||||
* @property {boolean=} strict
|
||||
* @property {string=} moduleConcatenationBailout
|
||||
* @property {("named" | "namespace")=} exportsType
|
||||
* @property {("default" | "namespace")=} exportsType
|
||||
* @property {boolean=} strictHarmonyModule
|
||||
* @property {boolean=} async
|
||||
*/
|
||||
|
|
|
@ -957,7 +957,7 @@ class ModuleGraph {
|
|||
* @returns {void}
|
||||
*/
|
||||
finishModule(module) {
|
||||
if (module.buildMeta.exportsType === "named") {
|
||||
if (module.buildMeta.exportsType === "default") {
|
||||
this.getExportsInfo(module).setRedirectToDefaultObject();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -329,12 +329,12 @@ class RuntimeTemplate {
|
|||
runtimeRequirements
|
||||
});
|
||||
return rawModule;
|
||||
} else if (exportsType === "named") {
|
||||
runtimeRequirements.add(RuntimeGlobals.createFakeNamespaceObject);
|
||||
return `${RuntimeGlobals.createFakeNamespaceObject}(${moduleId}, 3)`;
|
||||
} else if (strict) {
|
||||
runtimeRequirements.add(RuntimeGlobals.createFakeNamespaceObject);
|
||||
return `${RuntimeGlobals.createFakeNamespaceObject}(${moduleId}, 1)`;
|
||||
} else if (exportsType === "default") {
|
||||
runtimeRequirements.add(RuntimeGlobals.createFakeNamespaceObject);
|
||||
return `${RuntimeGlobals.createFakeNamespaceObject}(${moduleId}, 3)`;
|
||||
} else {
|
||||
runtimeRequirements.add(RuntimeGlobals.createFakeNamespaceObject);
|
||||
return `${RuntimeGlobals.createFakeNamespaceObject}(${moduleId}, 7)`;
|
||||
|
@ -435,13 +435,6 @@ class RuntimeTemplate {
|
|||
runtimeRequirements.add(RuntimeGlobals.require);
|
||||
getModuleFunction = `__webpack_require__.bind(null, ${comment}${idExpr})`;
|
||||
}
|
||||
} else if (exportsType === "named") {
|
||||
runtimeRequirements.add(RuntimeGlobals.createFakeNamespaceObject);
|
||||
if (header) {
|
||||
getModuleFunction = `function() { ${header}return ${RuntimeGlobals.createFakeNamespaceObject}(${moduleIdExpr}, 3); }`;
|
||||
} else {
|
||||
getModuleFunction = `${RuntimeGlobals.createFakeNamespaceObject}.bind(__webpack_require__, ${comment}${idExpr}, 3)`;
|
||||
}
|
||||
} else if (strict) {
|
||||
runtimeRequirements.add(RuntimeGlobals.createFakeNamespaceObject);
|
||||
if (header) {
|
||||
|
@ -449,6 +442,13 @@ class RuntimeTemplate {
|
|||
} else {
|
||||
getModuleFunction = `${RuntimeGlobals.createFakeNamespaceObject}.bind(__webpack_require__, ${comment}${idExpr}, 1)`;
|
||||
}
|
||||
} else if (exportsType === "default") {
|
||||
runtimeRequirements.add(RuntimeGlobals.createFakeNamespaceObject);
|
||||
if (header) {
|
||||
getModuleFunction = `function() { ${header}return ${RuntimeGlobals.createFakeNamespaceObject}(${moduleIdExpr}, 3); }`;
|
||||
} else {
|
||||
getModuleFunction = `${RuntimeGlobals.createFakeNamespaceObject}.bind(__webpack_require__, ${comment}${idExpr}, 3)`;
|
||||
}
|
||||
} else {
|
||||
runtimeRequirements.add(RuntimeGlobals.createFakeNamespaceObject);
|
||||
if (header) {
|
||||
|
@ -595,7 +595,7 @@ class RuntimeTemplate {
|
|||
}
|
||||
}
|
||||
|
||||
if (exportsType === "named") {
|
||||
if (exportsType === "default") {
|
||||
if (exportName.length === 0) {
|
||||
runtimeRequirements.add(RuntimeGlobals.createFakeNamespaceObject);
|
||||
initFragments.push(
|
||||
|
@ -606,7 +606,11 @@ class RuntimeTemplate {
|
|||
`${importVar}_namespace_cache`
|
||||
)
|
||||
);
|
||||
return `/*#__PURE__*/ (${importVar}_namespace_cache || (${importVar}_namespace_cache = ${RuntimeGlobals.createFakeNamespaceObject}(${importVar}, 2)))`;
|
||||
return `/*#__PURE__*/ (${importVar}_namespace_cache || (${importVar}_namespace_cache = ${
|
||||
RuntimeGlobals.createFakeNamespaceObject
|
||||
}(${importVar}, ${
|
||||
originModule.buildMeta.strictHarmonyModule ? 0 : 2
|
||||
})))`;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -196,7 +196,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|||
importedModule.buildMeta && !importedModule.buildMeta.exportsType;
|
||||
const isNamedModule =
|
||||
importedModule.buildMeta &&
|
||||
importedModule.buildMeta.exportsType === "named";
|
||||
importedModule.buildMeta.exportsType === "default";
|
||||
|
||||
// Special handling for reexporting the default export
|
||||
// from non-harmony modules
|
||||
|
@ -225,7 +225,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|||
|
||||
if (ids.length > 0) {
|
||||
// export { name as name }
|
||||
if (isNotAHarmonyModule && strictHarmonyModule) {
|
||||
if ((isNotAHarmonyModule || isNamedModule) && strictHarmonyModule) {
|
||||
mode = new ExportMode("reexport-non-harmony-undefined");
|
||||
mode.name = name;
|
||||
} else {
|
||||
|
@ -242,7 +242,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|||
mode = new ExportMode("reexport-fake-named-namespace-object");
|
||||
mode.name = name;
|
||||
mode.partialNamespaceExportInfo = exportInfo;
|
||||
mode.fakeType = 2;
|
||||
mode.fakeType = strictHarmonyModule ? 0 : 2;
|
||||
} else {
|
||||
mode = new ExportMode("reexport-namespace-object");
|
||||
mode.name = name;
|
||||
|
|
|
@ -115,7 +115,7 @@ class HarmonyImportDependency extends ModuleDependency {
|
|||
];
|
||||
}
|
||||
return;
|
||||
} else if (exportsType === "named") {
|
||||
} else if (exportsType === "default") {
|
||||
if (ids.length > 0 && ids[0] !== "default") {
|
||||
// For these modules only the default export is supported
|
||||
return [
|
||||
|
|
|
@ -19,7 +19,7 @@ class JsonParser {
|
|||
parse(source, state) {
|
||||
const data = parseJson(source[0] === "\ufeff" ? source.slice(1) : source);
|
||||
state.module.buildInfo.jsonData = data;
|
||||
state.module.buildMeta.exportsType = "named";
|
||||
state.module.buildMeta.exportsType = "default";
|
||||
state.module.addDependency(
|
||||
new JsonExportsDependency(JsonExportsDependency.getExportsFromData(data))
|
||||
);
|
||||
|
|
|
@ -234,7 +234,7 @@ const getExternalImport = (
|
|||
let exprStart;
|
||||
if (exportName.length === 0) {
|
||||
switch (importedModule.buildMeta.exportsType) {
|
||||
case "named":
|
||||
case "default":
|
||||
info.interopNamespaceObjectUsed = true;
|
||||
exprStart = info.interopNamespaceObjectName;
|
||||
break;
|
||||
|
@ -253,7 +253,7 @@ const getExternalImport = (
|
|||
}
|
||||
} else {
|
||||
switch (importedModule.buildMeta.exportsType) {
|
||||
case "named":
|
||||
case "default":
|
||||
case "namespace":
|
||||
break;
|
||||
default:
|
||||
|
@ -977,7 +977,7 @@ class ConcatenatedModule extends Module {
|
|||
allUsedNames.add(externalName);
|
||||
info.name = externalName;
|
||||
if (
|
||||
info.module.buildMeta.exportsType === "named" ||
|
||||
info.module.buildMeta.exportsType === "default" ||
|
||||
!info.module.buildMeta.exportsType
|
||||
) {
|
||||
const externalNameInterop = this.findNewName(
|
||||
|
@ -1085,7 +1085,7 @@ class ConcatenatedModule extends Module {
|
|||
)});\n`
|
||||
);
|
||||
if (info.interopNamespaceObjectUsed) {
|
||||
if (info.module.buildMeta.exportsType === "named") {
|
||||
if (info.module.buildMeta.exportsType === "default") {
|
||||
runtimeRequirements.add(RuntimeGlobals.createFakeNamespaceObject);
|
||||
result.add(
|
||||
`var ${info.interopNamespaceObjectName} = /*#__PURE__*/${RuntimeGlobals.createFakeNamespaceObject}(${info.name}, 2);\n`
|
||||
|
|
|
@ -81,6 +81,6 @@ it("should receive a namespace object when importing mixed content via context",
|
|||
promiseTest(contextMixed("two"), nsObj({ default: { __esModule: true, named: "named", default: "default" } })),
|
||||
promiseTest(contextMixed("three"), nsObj({ named: "named", default: "default" })),
|
||||
promiseTest(contextMixed("null"), nsObj({ default: null })),
|
||||
promiseTest(contextMixed("json.json"), nsObj({ named: "named", default: { named: "named", default: "default" } }))
|
||||
promiseTest(contextMixed("json.json"), nsObj({ default: { named: "named", default: "default" } }))
|
||||
]);
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue