@module-federation/enhanced
Version:
This package provides enhanced features for module federation.
28 lines (26 loc) • 1.46 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_utils = require('../../container/runtime/utils.js');
let _module_federation_sdk_normalize_webpack_path = require("@module-federation/sdk/normalize-webpack-path");
//#region src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerRuntimeModule.ts
const { Template, RuntimeGlobals, RuntimeModule } = require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack"));
var SharedUsedExportsOptimizerRuntimeModule = class extends RuntimeModule {
constructor(sharedUsedExports) {
super("shared-used-exports", RuntimeModule.STAGE_ATTACH);
this.sharedUsedExports = sharedUsedExports;
}
/**
* @returns {string | null} runtime code
*/
generate() {
if (!this.sharedUsedExports) return null;
const federationGlobal = require_lib_container_runtime_utils.getFederationGlobalScope(RuntimeGlobals);
return Template.asString([`if(!${federationGlobal}) {return;}`, `${federationGlobal}.usedExports = ${JSON.stringify(Array.from(this.sharedUsedExports.entries()).reduce((acc, [pkg, moduleMap]) => {
acc[pkg] = Array.from(moduleMap);
return acc;
}, {}))};`]);
}
};
//#endregion
exports.default = SharedUsedExportsOptimizerRuntimeModule;
//# sourceMappingURL=SharedUsedExportsOptimizerRuntimeModule.js.map