UNPKG

@module-federation/enhanced

Version:

This package provides enhanced features for module federation.

41 lines (39 loc) 1.88 kB
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); const require_runtime = require('../../../_virtual/_rolldown/runtime.js'); let _module_federation_sdk_normalize_webpack_path = require("@module-federation/sdk/normalize-webpack-path"); let tapable = require("tapable"); //#region src/lib/container/runtime/FederationModulesPlugin.ts require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack/lib/Compilation")); /** @type {WeakMap<import("webpack").Compilation, CompilationHooks>} */ const compilationHooksMap = /* @__PURE__ */ new WeakMap(); const PLUGIN_NAME = "FederationModulesPlugin"; var FederationModulesPlugin = class FederationModulesPlugin { /** * @param {Compilation} compilation the compilation * @returns {CompilationHooks} the attached hooks */ static getCompilationHooks(compilation) { if (!(compilation && typeof compilation === "object" && typeof compilation.hooks === "object" && typeof compilation.hooks.processAssets?.tap === "function")) throw new TypeError("Invalid 'compilation' argument: expected a Webpack Compilation-like object"); let hooks = compilationHooksMap.get(compilation); if (hooks === void 0) { hooks = { addContainerEntryDependency: new tapable.SyncHook(["dependency"]), addFederationRuntimeDependency: new tapable.SyncHook(["dependency"]), addRemoteDependency: new tapable.SyncHook(["dependency"]) }; compilationHooksMap.set(compilation, hooks); } return hooks; } constructor(options = {}) { this.options = options; } apply(compiler) { compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation, { normalModuleFactory }) => { FederationModulesPlugin.getCompilationHooks(compilation); }); } }; //#endregion exports.default = FederationModulesPlugin; //# sourceMappingURL=FederationModulesPlugin.js.map