Merge pull request #11060 from webpack/rename/module-federation

rename module federation classes for be more specific
This commit is contained in:
Tobias Koppers 2020-06-22 09:21:25 +02:00 committed by GitHub
commit d3eb0d95aa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 87 additions and 51 deletions

View File

@ -34,6 +34,10 @@ class ContainerEntryDependency extends Dependency {
get type() {
return "container entry";
}
get category() {
return "esm";
}
}
makeSerializable(

View File

@ -22,7 +22,11 @@ class FallbackDependency extends Dependency {
}
get type() {
return "fallbacks";
return "fallback";
}
get category() {
return "esm";
}
serialize(context) {

View File

@ -8,13 +8,13 @@
const ModuleDependency = require("../dependencies/ModuleDependency");
const makeSerializable = require("../util/makeSerializable");
class ConsumeFallbackDependency extends ModuleDependency {
class ConsumeSharedFallbackDependency extends ModuleDependency {
constructor(request) {
super(request);
}
get type() {
return "consume fallback";
return "consume shared fallback";
}
get category() {
@ -23,8 +23,8 @@ class ConsumeFallbackDependency extends ModuleDependency {
}
makeSerializable(
ConsumeFallbackDependency,
"webpack/lib/sharing/ConsumeFallbackDependency"
ConsumeSharedFallbackDependency,
"webpack/lib/sharing/ConsumeSharedFallbackDependency"
);
module.exports = ConsumeFallbackDependency;
module.exports = ConsumeSharedFallbackDependency;

View File

@ -10,7 +10,7 @@ const AsyncDependenciesBlock = require("../AsyncDependenciesBlock");
const Module = require("../Module");
const RuntimeGlobals = require("../RuntimeGlobals");
const makeSerializable = require("../util/makeSerializable");
const ConsumeFallbackDependency = require("./ConsumeFallbackDependency");
const ConsumeSharedFallbackDependency = require("./ConsumeSharedFallbackDependency");
const { versionToString } = require("./utils");
/** @typedef {import("../../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptions */
@ -125,7 +125,7 @@ class ConsumeSharedModule extends Module {
this.buildMeta = {};
this.buildInfo = {};
if (this.options.import) {
const dep = new ConsumeFallbackDependency(this.options.import);
const dep = new ConsumeSharedFallbackDependency(this.options.import);
if (this.options.eager) {
this.addDependency(dep);
} else {

View File

@ -12,10 +12,10 @@ const RuntimeGlobals = require("../RuntimeGlobals");
const WebpackError = require("../WebpackError");
const { parseOptions } = require("../container/options");
const LazySet = require("../util/LazySet");
const ConsumeFallbackDependency = require("./ConsumeFallbackDependency");
const ConsumeSharedFallbackDependency = require("./ConsumeSharedFallbackDependency");
const ConsumeSharedModule = require("./ConsumeSharedModule");
const ConsumeSharedRuntimeModule = require("./ConsumeSharedRuntimeModule");
const ProvidedDependency = require("./ProvidedDependency");
const ProvideForSharedDependency = require("./ProvideForSharedDependency");
const { resolveMatchedConfigs } = require("./resolveMatchedConfigs");
const {
parseRequiredVersion,
@ -106,7 +106,7 @@ class ConsumeSharedPlugin {
PLUGIN_NAME,
(compilation, { normalModuleFactory }) => {
compilation.dependencyFactories.set(
ConsumeFallbackDependency,
ConsumeSharedFallbackDependency,
normalModuleFactory
);
@ -256,8 +256,8 @@ class ConsumeSharedPlugin {
// wait for resolving to be complete
promise.then(() => {
if (
dependencies[0] instanceof ConsumeFallbackDependency ||
dependencies[0] instanceof ProvidedDependency
dependencies[0] instanceof ConsumeSharedFallbackDependency ||
dependencies[0] instanceof ProvideForSharedDependency
) {
return;
}
@ -283,8 +283,8 @@ class ConsumeSharedPlugin {
PLUGIN_NAME,
({ resource }, { context, dependencies }) => {
if (
dependencies[0] instanceof ConsumeFallbackDependency ||
dependencies[0] instanceof ProvidedDependency
dependencies[0] instanceof ConsumeSharedFallbackDependency ||
dependencies[0] instanceof ProvideForSharedDependency
) {
return Promise.resolve();
}

View File

@ -8,7 +8,7 @@
const ModuleDependency = require("../dependencies/ModuleDependency");
const makeSerializable = require("../util/makeSerializable");
class ProvidedDependency extends ModuleDependency {
class ProvideForSharedDependency extends ModuleDependency {
/**
*
* @param {string} request request string
@ -18,7 +18,7 @@ class ProvidedDependency extends ModuleDependency {
}
get type() {
return "provide shared";
return "provide module for shared";
}
get category() {
@ -26,6 +26,9 @@ class ProvidedDependency extends ModuleDependency {
}
}
makeSerializable(ProvidedDependency, "webpack/lib/sharing/ProvidedDependency");
makeSerializable(
ProvideForSharedDependency,
"webpack/lib/sharing/ProvideForSharedDependency"
);
module.exports = ProvidedDependency;
module.exports = ProvideForSharedDependency;

View File

@ -8,7 +8,7 @@
const Dependency = require("../Dependency");
const makeSerializable = require("../util/makeSerializable");
class ProvideDependency extends Dependency {
class ProvideSharedDependency extends Dependency {
constructor(shareScope, name, version, request, eager) {
super();
this.shareScope = shareScope;
@ -19,7 +19,7 @@ class ProvideDependency extends Dependency {
}
get type() {
return "provide module";
return "provide shared module";
}
/**
@ -42,13 +42,22 @@ class ProvideDependency extends Dependency {
static deserialize(context) {
const { read } = context;
const obj = new ProvideDependency(read(), read(), read(), read(), read());
const obj = new ProvideSharedDependency(
read(),
read(),
read(),
read(),
read()
);
this.shareScope = context.read();
obj.deserialize(context);
return obj;
}
}
makeSerializable(ProvideDependency, "webpack/lib/sharing/ProvideDependency");
makeSerializable(
ProvideSharedDependency,
"webpack/lib/sharing/ProvideSharedDependency"
);
module.exports = ProvideDependency;
module.exports = ProvideSharedDependency;

View File

@ -9,7 +9,7 @@ const AsyncDependenciesBlock = require("../AsyncDependenciesBlock");
const Module = require("../Module");
const RuntimeGlobals = require("../RuntimeGlobals");
const makeSerializable = require("../util/makeSerializable");
const ProvidedDependency = require("./ProvidedDependency");
const ProvideForSharedDependency = require("./ProvideForSharedDependency");
/** @typedef {import("../../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptions */
/** @typedef {import("../Chunk")} Chunk */
@ -28,7 +28,7 @@ const ProvidedDependency = require("./ProvidedDependency");
const TYPES = new Set(["share-init"]);
class ProvideModule extends Module {
class ProvideSharedModule extends Module {
/**
* @param {string} shareScope shared scope name
* @param {string} name shared key
@ -96,7 +96,7 @@ class ProvideModule extends Module {
};
this.clearDependenciesAndBlocks();
const dep = new ProvidedDependency(this._request);
const dep = new ProvideForSharedDependency(this._request);
if (this._eager) {
this.addDependency(dep);
} else {
@ -170,12 +170,15 @@ class ProvideModule extends Module {
static deserialize(context) {
const { read } = context;
const obj = new ProvideModule(read(), read(), read(), read(), read());
const obj = new ProvideSharedModule(read(), read(), read(), read(), read());
obj.deserialize(context);
return obj;
}
}
makeSerializable(ProvideModule, "webpack/lib/sharing/ProvideModule");
makeSerializable(
ProvideSharedModule,
"webpack/lib/sharing/ProvideSharedModule"
);
module.exports = ProvideModule;
module.exports = ProvideSharedModule;

View File

@ -6,22 +6,22 @@
"use strict";
const ModuleFactory = require("../ModuleFactory");
const ProvideModule = require("./ProvideModule");
const ProvideSharedModule = require("./ProvideSharedModule");
/** @typedef {import("../ModuleFactory").ModuleFactoryCreateData} ModuleFactoryCreateData */
/** @typedef {import("../ModuleFactory").ModuleFactoryResult} ModuleFactoryResult */
/** @typedef {import("./ProvideDependency")} ProvideDependency */
/** @typedef {import("./ProvideSharedDependency")} ProvideSharedDependency */
class ProvideModuleFactory extends ModuleFactory {
class ProvideSharedModuleFactory extends ModuleFactory {
/**
* @param {ModuleFactoryCreateData} data data object
* @param {function(Error=, ModuleFactoryResult=): void} callback callback
* @returns {void}
*/
create(data, callback) {
const dep = /** @type {ProvideDependency} */ (data.dependencies[0]);
const dep = /** @type {ProvideSharedDependency} */ (data.dependencies[0]);
callback(null, {
module: new ProvideModule(
module: new ProvideSharedModule(
dep.shareScope,
dep.name,
dep.version,
@ -32,4 +32,4 @@ class ProvideModuleFactory extends ModuleFactory {
}
}
module.exports = ProvideModuleFactory;
module.exports = ProvideSharedModuleFactory;

View File

@ -9,9 +9,9 @@ const validateOptions = require("schema-utils");
const schema = require("../../schemas/plugins/sharing/ProvideSharedPlugin.json");
const WebpackError = require("../WebpackError");
const { parseOptions } = require("../container/options");
const ProvideDependency = require("./ProvideDependency");
const ProvideModuleFactory = require("./ProvideModuleFactory");
const ProvidedDependency = require("./ProvidedDependency");
const ProvideForSharedDependency = require("./ProvideForSharedDependency");
const ProvideSharedDependency = require("./ProvideSharedDependency");
const ProvideSharedModuleFactory = require("./ProvideSharedModuleFactory");
const { parseVersion } = require("./utils");
/** @typedef {import("../../declarations/plugins/sharing/ProvideSharedPlugin").ProvideSharedPluginOptions} ProvideSharedPluginOptions */
@ -107,7 +107,12 @@ class ProvideSharedPlugin {
}
}
compilationData.set(compilation, resolvedProvideMap);
const provideModule = (key, config, resource, resourceResolveData) => {
const ProvideSharedModule = (
key,
config,
resource,
resourceResolveData
) => {
let version = config.version;
if (version === undefined) {
let details = "";
@ -148,13 +153,18 @@ class ProvideSharedPlugin {
{
const config = matchProvides.get(request);
if (config !== undefined) {
provideModule(request, config, resource, resourceResolveData);
ProvideSharedModule(
request,
config,
resource,
resourceResolveData
);
}
}
for (const [prefix, config] of prefixMatchProvides) {
if (request.startsWith(prefix)) {
const remainder = request.slice(prefix.length);
provideModule(
ProvideSharedModule(
resource,
{
...config,
@ -180,7 +190,7 @@ class ProvideSharedPlugin {
new Promise((resolve, reject) => {
compilation.addInclude(
compiler.context,
new ProvideDependency(
new ProvideSharedDependency(
config.shareScope,
config.shareKey,
version || false,
@ -204,13 +214,13 @@ class ProvideSharedPlugin {
"ProvideSharedPlugin",
(compilation, { normalModuleFactory }) => {
compilation.dependencyFactories.set(
ProvidedDependency,
ProvideForSharedDependency,
normalModuleFactory
);
compilation.dependencyFactories.set(
ProvideDependency,
new ProvideModuleFactory()
ProvideSharedDependency,
new ProvideSharedModuleFactory()
);
}
);

View File

@ -160,11 +160,14 @@ module.exports = {
RawModule: () => require("../RawModule"),
"sharing/ConsumeSharedModule": () =>
require("../sharing/ConsumeSharedModule"),
"sharing/ConsumeFallbackDependency": () =>
require("../sharing/ConsumeFallbackDependency"),
"sharing/ProvideModule": () => require("../sharing/ProvideModule"),
"sharing/ProvideDependency": () => require("../sharing/ProvideDependency"),
"sharing/ProvidedDependency": () => require("../sharing/ProvidedDependency"),
"sharing/ConsumeSharedFallbackDependency": () =>
require("../sharing/ConsumeSharedFallbackDependency"),
"sharing/ProvideSharedModule": () =>
require("../sharing/ProvideSharedModule"),
"sharing/ProvideSharedDependency": () =>
require("../sharing/ProvideSharedDependency"),
"sharing/ProvideForSharedDependency": () =>
require("../sharing/ProvideForSharedDependency"),
UnsupportedFeatureWarning: () => require("../UnsupportedFeatureWarning"),
"util/LazySet": () => require("../util/LazySet"),
WebpackError: () => require("../WebpackError"),