@module-federation/enhanced
Version:
This package provides enhanced features for module federation.
42 lines (40 loc) • 2.53 kB
JavaScript
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
const require_lib_container_runtime_getFederationGlobal = require('./getFederationGlobal.js');
let _module_federation_sdk_normalize_webpack_path = require("@module-federation/sdk/normalize-webpack-path");
//#region src/lib/container/runtime/FederationRuntimeModule.ts
const compileBooleanMatcher = require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack/lib/util/compileBooleanMatcher"));
const { getUndoPath } = require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack/lib/util/identifier"));
const { RuntimeModule, RuntimeGlobals, Template } = require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack"));
var FederationRuntimeModule = class extends RuntimeModule {
constructor(runtimeRequirements, containerName, initOptionsWithoutShared) {
super("federation runtime", RuntimeModule.STAGE_NORMAL - 1);
this.runtimeRequirements = runtimeRequirements;
this.containerName = containerName;
this.initOptionsWithoutShared = initOptionsWithoutShared;
}
/**
* @returns {string | null} runtime code
*/
generate() {
let matcher = false;
let rootOutputDir;
if (this.compilation && this.chunk) {
const jsModulePlugin = this.compilation.compiler.webpack?.javascript?.JavascriptModulesPlugin || require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack/lib/javascript/JavascriptModulesPlugin"));
const { chunkHasJs } = jsModulePlugin;
if (this.runtimeRequirements.has(RuntimeGlobals.ensureChunkHandlers)) {
const hasJsMatcher = compileBooleanMatcher(this.compilation.chunkGraph.getChunkConditionMap(this.chunk, chunkHasJs));
if (typeof hasJsMatcher === "boolean") matcher = hasJsMatcher;
else matcher = hasJsMatcher("chunkId");
rootOutputDir = getUndoPath(this.compilation.getPath(jsModulePlugin.getChunkFilenameTemplate(this.chunk, this.compilation.outputOptions), {
chunk: this.chunk,
contentHashType: "javascript"
}), this.compilation.outputOptions.path || "", false);
}
}
return Template.asString([require_lib_container_runtime_getFederationGlobal.default(Template, RuntimeGlobals, matcher, rootOutputDir, this.initOptionsWithoutShared)]);
}
};
//#endregion
exports.default = FederationRuntimeModule;
//# sourceMappingURL=FederationRuntimeModule.js.map