'use strict'; var runtimeCore = require('@module-federation/runtime-core'); var utils = require('./utils.cjs.cjs'); let FederationInstance = null; function init(options) { // Retrieve the same instance with the same name const instance = utils.getGlobalFederationInstance(options.name, options.version); if (!instance) { // Retrieve debug constructor const FederationConstructor = runtimeCore.getGlobalFederationConstructor() || runtimeCore.FederationHost; FederationInstance = new FederationConstructor(options); runtimeCore.setGlobalFederationInstance(FederationInstance); return FederationInstance; } else { // Merge options instance.initOptions(options); if (!FederationInstance) { FederationInstance = instance; } return instance; } } function loadRemote(...args) { runtimeCore.assert(FederationInstance, 'Please call init first'); const loadRemote1 = FederationInstance.loadRemote; // eslint-disable-next-line prefer-spread return loadRemote1.apply(FederationInstance, args); } function loadShare(...args) { runtimeCore.assert(FederationInstance, 'Please call init first'); // eslint-disable-next-line prefer-spread const loadShare1 = FederationInstance.loadShare; return loadShare1.apply(FederationInstance, args); } function loadShareSync(...args) { runtimeCore.assert(FederationInstance, 'Please call init first'); const loadShareSync1 = FederationInstance.loadShareSync; // eslint-disable-next-line prefer-spread return loadShareSync1.apply(FederationInstance, args); } function preloadRemote(...args) { runtimeCore.assert(FederationInstance, 'Please call init first'); // eslint-disable-next-line prefer-spread return FederationInstance.preloadRemote.apply(FederationInstance, args); } function registerRemotes(...args) { runtimeCore.assert(FederationInstance, 'Please call init first'); // eslint-disable-next-line prefer-spread return FederationInstance.registerRemotes.apply(FederationInstance, args); } function registerPlugins(...args) { runtimeCore.assert(FederationInstance, 'Please call init first'); // eslint-disable-next-line prefer-spread return FederationInstance.registerPlugins.apply(FederationInstance, args); } function getInstance() { return FederationInstance; } // Inject for debug runtimeCore.setGlobalFederationConstructor(runtimeCore.FederationHost); exports.FederationHost = runtimeCore.FederationHost; exports.Module = runtimeCore.Module; exports.getRemoteEntry = runtimeCore.getRemoteEntry; exports.getRemoteInfo = runtimeCore.getRemoteInfo; exports.loadScript = runtimeCore.loadScript; exports.loadScriptNode = runtimeCore.loadScriptNode; exports.registerGlobalPlugins = runtimeCore.registerGlobalPlugins; exports.getInstance = getInstance; exports.init = init; exports.loadRemote = loadRemote; exports.loadShare = loadShare; exports.loadShareSync = loadShareSync; exports.preloadRemote = preloadRemote; exports.registerPlugins = registerPlugins; exports.registerRemotes = registerRemotes;