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() { get type() {
return "container entry"; return "container entry";
} }
get category() {
return "esm";
}
} }
makeSerializable( makeSerializable(

View File

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

View File

@ -8,13 +8,13 @@
const ModuleDependency = require("../dependencies/ModuleDependency"); const ModuleDependency = require("../dependencies/ModuleDependency");
const makeSerializable = require("../util/makeSerializable"); const makeSerializable = require("../util/makeSerializable");
class ConsumeFallbackDependency extends ModuleDependency { class ConsumeSharedFallbackDependency extends ModuleDependency {
constructor(request) { constructor(request) {
super(request); super(request);
} }
get type() { get type() {
return "consume fallback"; return "consume shared fallback";
} }
get category() { get category() {
@ -23,8 +23,8 @@ class ConsumeFallbackDependency extends ModuleDependency {
} }
makeSerializable( makeSerializable(
ConsumeFallbackDependency, ConsumeSharedFallbackDependency,
"webpack/lib/sharing/ConsumeFallbackDependency" "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 Module = require("../Module");
const RuntimeGlobals = require("../RuntimeGlobals"); const RuntimeGlobals = require("../RuntimeGlobals");
const makeSerializable = require("../util/makeSerializable"); const makeSerializable = require("../util/makeSerializable");
const ConsumeFallbackDependency = require("./ConsumeFallbackDependency"); const ConsumeSharedFallbackDependency = require("./ConsumeSharedFallbackDependency");
const { versionToString } = require("./utils"); const { versionToString } = require("./utils");
/** @typedef {import("../../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptions */ /** @typedef {import("../../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptions */
@ -125,7 +125,7 @@ class ConsumeSharedModule extends Module {
this.buildMeta = {}; this.buildMeta = {};
this.buildInfo = {}; this.buildInfo = {};
if (this.options.import) { if (this.options.import) {
const dep = new ConsumeFallbackDependency(this.options.import); const dep = new ConsumeSharedFallbackDependency(this.options.import);
if (this.options.eager) { if (this.options.eager) {
this.addDependency(dep); this.addDependency(dep);
} else { } else {

View File

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

View File

@ -8,7 +8,7 @@
const ModuleDependency = require("../dependencies/ModuleDependency"); const ModuleDependency = require("../dependencies/ModuleDependency");
const makeSerializable = require("../util/makeSerializable"); const makeSerializable = require("../util/makeSerializable");
class ProvidedDependency extends ModuleDependency { class ProvideForSharedDependency extends ModuleDependency {
/** /**
* *
* @param {string} request request string * @param {string} request request string
@ -18,7 +18,7 @@ class ProvidedDependency extends ModuleDependency {
} }
get type() { get type() {
return "provide shared"; return "provide module for shared";
} }
get category() { 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 Dependency = require("../Dependency");
const makeSerializable = require("../util/makeSerializable"); const makeSerializable = require("../util/makeSerializable");
class ProvideDependency extends Dependency { class ProvideSharedDependency extends Dependency {
constructor(shareScope, name, version, request, eager) { constructor(shareScope, name, version, request, eager) {
super(); super();
this.shareScope = shareScope; this.shareScope = shareScope;
@ -19,7 +19,7 @@ class ProvideDependency extends Dependency {
} }
get type() { get type() {
return "provide module"; return "provide shared module";
} }
/** /**
@ -42,13 +42,22 @@ class ProvideDependency extends Dependency {
static deserialize(context) { static deserialize(context) {
const { read } = 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(); this.shareScope = context.read();
obj.deserialize(context); obj.deserialize(context);
return obj; 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 Module = require("../Module");
const RuntimeGlobals = require("../RuntimeGlobals"); const RuntimeGlobals = require("../RuntimeGlobals");
const makeSerializable = require("../util/makeSerializable"); const makeSerializable = require("../util/makeSerializable");
const ProvidedDependency = require("./ProvidedDependency"); const ProvideForSharedDependency = require("./ProvideForSharedDependency");
/** @typedef {import("../../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptions */ /** @typedef {import("../../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptions */
/** @typedef {import("../Chunk")} Chunk */ /** @typedef {import("../Chunk")} Chunk */
@ -28,7 +28,7 @@ const ProvidedDependency = require("./ProvidedDependency");
const TYPES = new Set(["share-init"]); const TYPES = new Set(["share-init"]);
class ProvideModule extends Module { class ProvideSharedModule extends Module {
/** /**
* @param {string} shareScope shared scope name * @param {string} shareScope shared scope name
* @param {string} name shared key * @param {string} name shared key
@ -96,7 +96,7 @@ class ProvideModule extends Module {
}; };
this.clearDependenciesAndBlocks(); this.clearDependenciesAndBlocks();
const dep = new ProvidedDependency(this._request); const dep = new ProvideForSharedDependency(this._request);
if (this._eager) { if (this._eager) {
this.addDependency(dep); this.addDependency(dep);
} else { } else {
@ -170,12 +170,15 @@ class ProvideModule extends Module {
static deserialize(context) { static deserialize(context) {
const { read } = 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); obj.deserialize(context);
return obj; 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"; "use strict";
const ModuleFactory = require("../ModuleFactory"); const ModuleFactory = require("../ModuleFactory");
const ProvideModule = require("./ProvideModule"); const ProvideSharedModule = require("./ProvideSharedModule");
/** @typedef {import("../ModuleFactory").ModuleFactoryCreateData} ModuleFactoryCreateData */ /** @typedef {import("../ModuleFactory").ModuleFactoryCreateData} ModuleFactoryCreateData */
/** @typedef {import("../ModuleFactory").ModuleFactoryResult} ModuleFactoryResult */ /** @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 {ModuleFactoryCreateData} data data object
* @param {function(Error=, ModuleFactoryResult=): void} callback callback * @param {function(Error=, ModuleFactoryResult=): void} callback callback
* @returns {void} * @returns {void}
*/ */
create(data, callback) { create(data, callback) {
const dep = /** @type {ProvideDependency} */ (data.dependencies[0]); const dep = /** @type {ProvideSharedDependency} */ (data.dependencies[0]);
callback(null, { callback(null, {
module: new ProvideModule( module: new ProvideSharedModule(
dep.shareScope, dep.shareScope,
dep.name, dep.name,
dep.version, 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 schema = require("../../schemas/plugins/sharing/ProvideSharedPlugin.json");
const WebpackError = require("../WebpackError"); const WebpackError = require("../WebpackError");
const { parseOptions } = require("../container/options"); const { parseOptions } = require("../container/options");
const ProvideDependency = require("./ProvideDependency"); const ProvideForSharedDependency = require("./ProvideForSharedDependency");
const ProvideModuleFactory = require("./ProvideModuleFactory"); const ProvideSharedDependency = require("./ProvideSharedDependency");
const ProvidedDependency = require("./ProvidedDependency"); const ProvideSharedModuleFactory = require("./ProvideSharedModuleFactory");
const { parseVersion } = require("./utils"); const { parseVersion } = require("./utils");
/** @typedef {import("../../declarations/plugins/sharing/ProvideSharedPlugin").ProvideSharedPluginOptions} ProvideSharedPluginOptions */ /** @typedef {import("../../declarations/plugins/sharing/ProvideSharedPlugin").ProvideSharedPluginOptions} ProvideSharedPluginOptions */
@ -107,7 +107,12 @@ class ProvideSharedPlugin {
} }
} }
compilationData.set(compilation, resolvedProvideMap); compilationData.set(compilation, resolvedProvideMap);
const provideModule = (key, config, resource, resourceResolveData) => { const ProvideSharedModule = (
key,
config,
resource,
resourceResolveData
) => {
let version = config.version; let version = config.version;
if (version === undefined) { if (version === undefined) {
let details = ""; let details = "";
@ -148,13 +153,18 @@ class ProvideSharedPlugin {
{ {
const config = matchProvides.get(request); const config = matchProvides.get(request);
if (config !== undefined) { if (config !== undefined) {
provideModule(request, config, resource, resourceResolveData); ProvideSharedModule(
request,
config,
resource,
resourceResolveData
);
} }
} }
for (const [prefix, config] of prefixMatchProvides) { for (const [prefix, config] of prefixMatchProvides) {
if (request.startsWith(prefix)) { if (request.startsWith(prefix)) {
const remainder = request.slice(prefix.length); const remainder = request.slice(prefix.length);
provideModule( ProvideSharedModule(
resource, resource,
{ {
...config, ...config,
@ -180,7 +190,7 @@ class ProvideSharedPlugin {
new Promise((resolve, reject) => { new Promise((resolve, reject) => {
compilation.addInclude( compilation.addInclude(
compiler.context, compiler.context,
new ProvideDependency( new ProvideSharedDependency(
config.shareScope, config.shareScope,
config.shareKey, config.shareKey,
version || false, version || false,
@ -204,13 +214,13 @@ class ProvideSharedPlugin {
"ProvideSharedPlugin", "ProvideSharedPlugin",
(compilation, { normalModuleFactory }) => { (compilation, { normalModuleFactory }) => {
compilation.dependencyFactories.set( compilation.dependencyFactories.set(
ProvidedDependency, ProvideForSharedDependency,
normalModuleFactory normalModuleFactory
); );
compilation.dependencyFactories.set( compilation.dependencyFactories.set(
ProvideDependency, ProvideSharedDependency,
new ProvideModuleFactory() new ProvideSharedModuleFactory()
); );
} }
); );

View File

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