@module-federation/runtime 0.0.0-next-20240122033350 → 0.0.0-next-20240122072901
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/helpers.esm.js +1 -1
- package/dist/index.cjs.js +26 -86
- package/dist/index.esm.js +29 -87
- package/dist/share.cjs.js +34 -15
- package/dist/share.esm.js +35 -16
- package/dist/src/core.d.ts +0 -1
- package/dist/src/global.d.ts +4 -15
- package/dist/src/index.d.ts +0 -1
- package/dist/src/type/config.d.ts +2 -2
- package/dist/src/utils/index.d.ts +0 -1
- package/package.json +2 -2
package/dist/helpers.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { l as getRegisteredShare,
|
|
1
|
+
import { l as getRegisteredShare, u as getGlobalShareScope, G as Global, H as nativeGlobal, I as resetFederationGlobalInfo, B as getGlobalFederationInstance, E as setGlobalFederationInstance, C as getGlobalFederationConstructor, A as setGlobalFederationConstructor, m as getInfoWithoutType, t as getGlobalSnapshot, J as getTargetSnapshotInfoByModuleInfo, p as getGlobalSnapshotInfoByModuleInfo, r as setGlobalSnapshotInfoByModuleInfo, q as addGlobalSnapshot, c as getRemoteEntryExports, F as registerGlobalPlugins, g as getGlobalHostPlugins, n as getPreloaded, o as setPreloaded } from './share.esm.js';
|
|
2
2
|
|
|
3
3
|
const ShareUtils = {
|
|
4
4
|
getRegisteredShare,
|
package/dist/index.cjs.js
CHANGED
|
@@ -674,9 +674,9 @@ function splitId(id) {
|
|
|
674
674
|
}
|
|
675
675
|
}
|
|
676
676
|
// Traverse all nodes in moduleInfo and traverse the entire snapshot
|
|
677
|
-
function traverseModuleInfo(globalSnapshot, remoteInfo, traverse, isRoot, memo = {}, remoteSnapshot
|
|
677
|
+
function traverseModuleInfo(globalSnapshot, remoteInfo, traverse, isRoot, memo = {}, remoteSnapshot) {
|
|
678
678
|
const id = share.getFMId(remoteInfo);
|
|
679
|
-
const { value: snapshotValue } = share.getInfoWithoutType(globalSnapshot, id
|
|
679
|
+
const { value: snapshotValue } = share.getInfoWithoutType(globalSnapshot, id);
|
|
680
680
|
const effectiveRemoteSnapshot = remoteSnapshot || snapshotValue;
|
|
681
681
|
if (effectiveRemoteSnapshot && !sdk.isManifestProvider(effectiveRemoteSnapshot)) {
|
|
682
682
|
traverse(effectiveRemoteSnapshot, remoteInfo, isRoot);
|
|
@@ -692,7 +692,7 @@ function traverseModuleInfo(globalSnapshot, remoteInfo, traverse, isRoot, memo =
|
|
|
692
692
|
traverseModuleInfo(globalSnapshot, {
|
|
693
693
|
name: subRemoteInfo.name,
|
|
694
694
|
version: remoteValue.matchedVersion
|
|
695
|
-
}, traverse, false, memo, undefined
|
|
695
|
+
}, traverse, false, memo, undefined);
|
|
696
696
|
}
|
|
697
697
|
}
|
|
698
698
|
}
|
|
@@ -773,8 +773,7 @@ function generatePreloadAssets(origin, preloadOptions, remote, globalSnapshot, r
|
|
|
773
773
|
id: assetsInfo.moduleName === '.' ? remoteInfo.name : exposeFullPath,
|
|
774
774
|
name: remoteInfo.name,
|
|
775
775
|
remoteSnapshot: moduleInfoSnapshot,
|
|
776
|
-
preloadConfig
|
|
777
|
-
origin
|
|
776
|
+
preloadConfig
|
|
778
777
|
});
|
|
779
778
|
const preloaded = share.getPreloaded(exposeFullPath);
|
|
780
779
|
if (preloaded) {
|
|
@@ -793,16 +792,7 @@ function generatePreloadAssets(origin, preloadOptions, remote, globalSnapshot, r
|
|
|
793
792
|
share.setPreloaded(exposeFullPath);
|
|
794
793
|
}
|
|
795
794
|
}
|
|
796
|
-
}, true, memo, remoteSnapshot
|
|
797
|
-
const res = origin.loaderHook.lifecycle.getModuleInfo.emit({
|
|
798
|
-
target,
|
|
799
|
-
key
|
|
800
|
-
});
|
|
801
|
-
if (res && !(res instanceof Promise)) {
|
|
802
|
-
return res;
|
|
803
|
-
}
|
|
804
|
-
return;
|
|
805
|
-
});
|
|
795
|
+
}, true, memo, remoteSnapshot);
|
|
806
796
|
if (remoteSnapshot.shared) {
|
|
807
797
|
remoteSnapshot.shared.forEach((shared)=>{
|
|
808
798
|
var _options_shared;
|
|
@@ -895,37 +885,27 @@ class SnapshotHandler {
|
|
|
895
885
|
// eslint-disable-next-line max-lines-per-function
|
|
896
886
|
async loadRemoteSnapshotInfo(moduleInfo) {
|
|
897
887
|
const { options } = this.HostInstance;
|
|
898
|
-
const hostSnapshot = share.getGlobalSnapshotInfoByModuleInfo({
|
|
899
|
-
name: this.HostInstance.options.name,
|
|
900
|
-
version: this.HostInstance.options.version
|
|
901
|
-
}, {
|
|
902
|
-
getModuleInfoHook: (target, key)=>{
|
|
903
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
904
|
-
target,
|
|
905
|
-
key
|
|
906
|
-
});
|
|
907
|
-
if (res && !(res instanceof Promise)) {
|
|
908
|
-
return res;
|
|
909
|
-
}
|
|
910
|
-
return;
|
|
911
|
-
}
|
|
912
|
-
});
|
|
913
888
|
await this.hooks.lifecycle.beforeLoadRemoteSnapshot.emit({
|
|
914
889
|
options,
|
|
915
890
|
moduleInfo
|
|
916
891
|
});
|
|
892
|
+
let hostSnapshot = share.getGlobalSnapshotInfoByModuleInfo({
|
|
893
|
+
name: this.HostInstance.options.name,
|
|
894
|
+
version: this.HostInstance.options.version
|
|
895
|
+
});
|
|
896
|
+
if (!hostSnapshot) {
|
|
897
|
+
hostSnapshot = {
|
|
898
|
+
version: this.HostInstance.options.version || '',
|
|
899
|
+
remoteEntry: '',
|
|
900
|
+
remotesInfo: {}
|
|
901
|
+
};
|
|
902
|
+
share.addGlobalSnapshot({
|
|
903
|
+
[this.HostInstance.options.name]: hostSnapshot
|
|
904
|
+
});
|
|
905
|
+
}
|
|
917
906
|
// In dynamic loadRemote scenarios, incomplete remotesInfo delivery may occur. In such cases, the remotesInfo in the host needs to be completed in the snapshot at runtime.
|
|
918
907
|
// This ensures the snapshot's integrity and helps the chrome plugin correctly identify all producer modules, ensuring that proxyable producer modules will not be missing.
|
|
919
|
-
if (hostSnapshot && 'remotesInfo' in hostSnapshot && !share.getInfoWithoutType(hostSnapshot.remotesInfo, moduleInfo.name
|
|
920
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
921
|
-
target,
|
|
922
|
-
key
|
|
923
|
-
});
|
|
924
|
-
if (res && !(res instanceof Promise)) {
|
|
925
|
-
return res;
|
|
926
|
-
}
|
|
927
|
-
return;
|
|
928
|
-
}).value) {
|
|
908
|
+
if (hostSnapshot && 'remotesInfo' in hostSnapshot && !share.getInfoWithoutType(hostSnapshot.remotesInfo, moduleInfo.name).value) {
|
|
929
909
|
if ('version' in moduleInfo || 'entry' in moduleInfo) {
|
|
930
910
|
hostSnapshot.remotesInfo = _extends$1({}, hostSnapshot == null ? void 0 : hostSnapshot.remotesInfo, {
|
|
931
911
|
[moduleInfo.name]: {
|
|
@@ -947,7 +927,11 @@ class SnapshotHandler {
|
|
|
947
927
|
if (sdk.isManifestProvider(globalRemoteSnapshot)) {
|
|
948
928
|
const moduleSnapshot = await this.getManifestJson(globalRemoteSnapshot.remoteEntry, moduleInfo, {});
|
|
949
929
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
950
|
-
const globalSnapshotRes = share.setGlobalSnapshotInfoByModuleInfo(_extends$1({}, moduleInfo
|
|
930
|
+
const globalSnapshotRes = share.setGlobalSnapshotInfoByModuleInfo(_extends$1({}, moduleInfo, {
|
|
931
|
+
// The global remote may be overridden
|
|
932
|
+
// Therefore, set the snapshot key to the global address of the actual request
|
|
933
|
+
entry: globalRemoteSnapshot.remoteEntry
|
|
934
|
+
}), moduleSnapshot);
|
|
951
935
|
return {
|
|
952
936
|
remoteSnapshot: moduleSnapshot,
|
|
953
937
|
globalSnapshot: globalSnapshotRes
|
|
@@ -994,29 +978,9 @@ class SnapshotHandler {
|
|
|
994
978
|
const hostGlobalSnapshot = share.getGlobalSnapshotInfoByModuleInfo({
|
|
995
979
|
name: this.HostInstance.options.name,
|
|
996
980
|
version: this.HostInstance.options.version
|
|
997
|
-
}, {
|
|
998
|
-
getModuleInfoHook: (target, key)=>{
|
|
999
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
1000
|
-
target,
|
|
1001
|
-
key
|
|
1002
|
-
});
|
|
1003
|
-
if (res && !(res instanceof Promise)) {
|
|
1004
|
-
return res;
|
|
1005
|
-
}
|
|
1006
|
-
return;
|
|
1007
|
-
}
|
|
1008
981
|
});
|
|
1009
982
|
// get remote detail info from global
|
|
1010
|
-
const globalRemoteInfo = hostGlobalSnapshot && 'remotesInfo' in hostGlobalSnapshot && hostGlobalSnapshot.remotesInfo && share.getInfoWithoutType(hostGlobalSnapshot.remotesInfo, moduleInfo.name
|
|
1011
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
1012
|
-
target,
|
|
1013
|
-
key
|
|
1014
|
-
});
|
|
1015
|
-
if (res && !(res instanceof Promise)) {
|
|
1016
|
-
return res;
|
|
1017
|
-
}
|
|
1018
|
-
return;
|
|
1019
|
-
}).value;
|
|
983
|
+
const globalRemoteInfo = hostGlobalSnapshot && 'remotesInfo' in hostGlobalSnapshot && hostGlobalSnapshot.remotesInfo && share.getInfoWithoutType(hostGlobalSnapshot.remotesInfo, moduleInfo.name).value;
|
|
1020
984
|
if (globalRemoteInfo && globalRemoteInfo.matchedVersion) {
|
|
1021
985
|
return {
|
|
1022
986
|
hostGlobalSnapshot,
|
|
@@ -1024,17 +988,6 @@ class SnapshotHandler {
|
|
|
1024
988
|
remoteSnapshot: share.getGlobalSnapshotInfoByModuleInfo({
|
|
1025
989
|
name: moduleInfo.name,
|
|
1026
990
|
version: globalRemoteInfo.matchedVersion
|
|
1027
|
-
}, {
|
|
1028
|
-
getModuleInfoHook: (target, key)=>{
|
|
1029
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
1030
|
-
target,
|
|
1031
|
-
key
|
|
1032
|
-
});
|
|
1033
|
-
if (res && !(res instanceof Promise)) {
|
|
1034
|
-
return res;
|
|
1035
|
-
}
|
|
1036
|
-
return;
|
|
1037
|
-
}
|
|
1038
991
|
})
|
|
1039
992
|
};
|
|
1040
993
|
}
|
|
@@ -1044,17 +997,6 @@ class SnapshotHandler {
|
|
|
1044
997
|
remoteSnapshot: share.getGlobalSnapshotInfoByModuleInfo({
|
|
1045
998
|
name: moduleInfo.name,
|
|
1046
999
|
version: 'version' in moduleInfo ? moduleInfo.version : undefined
|
|
1047
|
-
}, {
|
|
1048
|
-
getModuleInfoHook: (target, key)=>{
|
|
1049
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
1050
|
-
target,
|
|
1051
|
-
key
|
|
1052
|
-
});
|
|
1053
|
-
if (res && !(res instanceof Promise)) {
|
|
1054
|
-
return res;
|
|
1055
|
-
}
|
|
1056
|
-
return;
|
|
1057
|
-
}
|
|
1058
1000
|
})
|
|
1059
1001
|
};
|
|
1060
1002
|
}
|
|
@@ -1720,8 +1662,6 @@ Object.defineProperty(exports, 'loadScript', {
|
|
|
1720
1662
|
get: function () { return sdk.loadScript; }
|
|
1721
1663
|
});
|
|
1722
1664
|
exports.FederationHost = FederationHost;
|
|
1723
|
-
exports.getRemoteEntry = getRemoteEntry;
|
|
1724
|
-
exports.getRemoteInfo = getRemoteInfo;
|
|
1725
1665
|
exports.init = init;
|
|
1726
1666
|
exports.loadRemote = loadRemote;
|
|
1727
1667
|
exports.loadShare = loadShare;
|
package/dist/index.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { g as getGlobalHostPlugins,
|
|
2
|
-
export {
|
|
1
|
+
import { g as getGlobalHostPlugins, D as DEFAULT_REMOTE_TYPE, a as DEFAULT_SCOPE, b as globalLoading, c as getRemoteEntryExports, d as assert, s as safeToString, e as getFMId, i as isObject, f as error, w as warn, h as isPlainObject, j as isRemoteInfoWithEntry, k as isPureRemoteEntry, l as getRegisteredShare, m as getInfoWithoutType, n as getPreloaded, o as setPreloaded, p as getGlobalSnapshotInfoByModuleInfo, q as addGlobalSnapshot, r as setGlobalSnapshotInfoByModuleInfo, t as getGlobalSnapshot, G as Global, u as getGlobalShareScope, v as formatShareConfigs, x as isBrowserEnv, y as getBuilderId, z as addUniqueItem, A as setGlobalFederationConstructor, B as getGlobalFederationInstance, C as getGlobalFederationConstructor, E as setGlobalFederationInstance } from './share.esm.js';
|
|
2
|
+
export { F as registerGlobalPlugins } from './share.esm.js';
|
|
3
3
|
import { composeKeyWithSeparator, loadScriptNode, loadScript, createScript, getResourceUrl, isManifestProvider, generateSnapshotFromManifest } from '@module-federation/sdk';
|
|
4
4
|
export { loadScript } from '@module-federation/sdk';
|
|
5
5
|
|
|
@@ -672,9 +672,9 @@ function splitId(id) {
|
|
|
672
672
|
}
|
|
673
673
|
}
|
|
674
674
|
// Traverse all nodes in moduleInfo and traverse the entire snapshot
|
|
675
|
-
function traverseModuleInfo(globalSnapshot, remoteInfo, traverse, isRoot, memo = {}, remoteSnapshot
|
|
675
|
+
function traverseModuleInfo(globalSnapshot, remoteInfo, traverse, isRoot, memo = {}, remoteSnapshot) {
|
|
676
676
|
const id = getFMId(remoteInfo);
|
|
677
|
-
const { value: snapshotValue } = getInfoWithoutType(globalSnapshot, id
|
|
677
|
+
const { value: snapshotValue } = getInfoWithoutType(globalSnapshot, id);
|
|
678
678
|
const effectiveRemoteSnapshot = remoteSnapshot || snapshotValue;
|
|
679
679
|
if (effectiveRemoteSnapshot && !isManifestProvider(effectiveRemoteSnapshot)) {
|
|
680
680
|
traverse(effectiveRemoteSnapshot, remoteInfo, isRoot);
|
|
@@ -690,7 +690,7 @@ function traverseModuleInfo(globalSnapshot, remoteInfo, traverse, isRoot, memo =
|
|
|
690
690
|
traverseModuleInfo(globalSnapshot, {
|
|
691
691
|
name: subRemoteInfo.name,
|
|
692
692
|
version: remoteValue.matchedVersion
|
|
693
|
-
}, traverse, false, memo, undefined
|
|
693
|
+
}, traverse, false, memo, undefined);
|
|
694
694
|
}
|
|
695
695
|
}
|
|
696
696
|
}
|
|
@@ -771,8 +771,7 @@ function generatePreloadAssets(origin, preloadOptions, remote, globalSnapshot, r
|
|
|
771
771
|
id: assetsInfo.moduleName === '.' ? remoteInfo.name : exposeFullPath,
|
|
772
772
|
name: remoteInfo.name,
|
|
773
773
|
remoteSnapshot: moduleInfoSnapshot,
|
|
774
|
-
preloadConfig
|
|
775
|
-
origin
|
|
774
|
+
preloadConfig
|
|
776
775
|
});
|
|
777
776
|
const preloaded = getPreloaded(exposeFullPath);
|
|
778
777
|
if (preloaded) {
|
|
@@ -791,16 +790,7 @@ function generatePreloadAssets(origin, preloadOptions, remote, globalSnapshot, r
|
|
|
791
790
|
setPreloaded(exposeFullPath);
|
|
792
791
|
}
|
|
793
792
|
}
|
|
794
|
-
}, true, memo, remoteSnapshot
|
|
795
|
-
const res = origin.loaderHook.lifecycle.getModuleInfo.emit({
|
|
796
|
-
target,
|
|
797
|
-
key
|
|
798
|
-
});
|
|
799
|
-
if (res && !(res instanceof Promise)) {
|
|
800
|
-
return res;
|
|
801
|
-
}
|
|
802
|
-
return;
|
|
803
|
-
});
|
|
793
|
+
}, true, memo, remoteSnapshot);
|
|
804
794
|
if (remoteSnapshot.shared) {
|
|
805
795
|
remoteSnapshot.shared.forEach((shared)=>{
|
|
806
796
|
var _options_shared;
|
|
@@ -893,37 +883,27 @@ class SnapshotHandler {
|
|
|
893
883
|
// eslint-disable-next-line max-lines-per-function
|
|
894
884
|
async loadRemoteSnapshotInfo(moduleInfo) {
|
|
895
885
|
const { options } = this.HostInstance;
|
|
896
|
-
const hostSnapshot = getGlobalSnapshotInfoByModuleInfo({
|
|
897
|
-
name: this.HostInstance.options.name,
|
|
898
|
-
version: this.HostInstance.options.version
|
|
899
|
-
}, {
|
|
900
|
-
getModuleInfoHook: (target, key)=>{
|
|
901
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
902
|
-
target,
|
|
903
|
-
key
|
|
904
|
-
});
|
|
905
|
-
if (res && !(res instanceof Promise)) {
|
|
906
|
-
return res;
|
|
907
|
-
}
|
|
908
|
-
return;
|
|
909
|
-
}
|
|
910
|
-
});
|
|
911
886
|
await this.hooks.lifecycle.beforeLoadRemoteSnapshot.emit({
|
|
912
887
|
options,
|
|
913
888
|
moduleInfo
|
|
914
889
|
});
|
|
890
|
+
let hostSnapshot = getGlobalSnapshotInfoByModuleInfo({
|
|
891
|
+
name: this.HostInstance.options.name,
|
|
892
|
+
version: this.HostInstance.options.version
|
|
893
|
+
});
|
|
894
|
+
if (!hostSnapshot) {
|
|
895
|
+
hostSnapshot = {
|
|
896
|
+
version: this.HostInstance.options.version || '',
|
|
897
|
+
remoteEntry: '',
|
|
898
|
+
remotesInfo: {}
|
|
899
|
+
};
|
|
900
|
+
addGlobalSnapshot({
|
|
901
|
+
[this.HostInstance.options.name]: hostSnapshot
|
|
902
|
+
});
|
|
903
|
+
}
|
|
915
904
|
// In dynamic loadRemote scenarios, incomplete remotesInfo delivery may occur. In such cases, the remotesInfo in the host needs to be completed in the snapshot at runtime.
|
|
916
905
|
// This ensures the snapshot's integrity and helps the chrome plugin correctly identify all producer modules, ensuring that proxyable producer modules will not be missing.
|
|
917
|
-
if (hostSnapshot && 'remotesInfo' in hostSnapshot && !getInfoWithoutType(hostSnapshot.remotesInfo, moduleInfo.name
|
|
918
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
919
|
-
target,
|
|
920
|
-
key
|
|
921
|
-
});
|
|
922
|
-
if (res && !(res instanceof Promise)) {
|
|
923
|
-
return res;
|
|
924
|
-
}
|
|
925
|
-
return;
|
|
926
|
-
}).value) {
|
|
906
|
+
if (hostSnapshot && 'remotesInfo' in hostSnapshot && !getInfoWithoutType(hostSnapshot.remotesInfo, moduleInfo.name).value) {
|
|
927
907
|
if ('version' in moduleInfo || 'entry' in moduleInfo) {
|
|
928
908
|
hostSnapshot.remotesInfo = _extends$1({}, hostSnapshot == null ? void 0 : hostSnapshot.remotesInfo, {
|
|
929
909
|
[moduleInfo.name]: {
|
|
@@ -945,7 +925,11 @@ class SnapshotHandler {
|
|
|
945
925
|
if (isManifestProvider(globalRemoteSnapshot)) {
|
|
946
926
|
const moduleSnapshot = await this.getManifestJson(globalRemoteSnapshot.remoteEntry, moduleInfo, {});
|
|
947
927
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
948
|
-
const globalSnapshotRes = setGlobalSnapshotInfoByModuleInfo(_extends$1({}, moduleInfo
|
|
928
|
+
const globalSnapshotRes = setGlobalSnapshotInfoByModuleInfo(_extends$1({}, moduleInfo, {
|
|
929
|
+
// The global remote may be overridden
|
|
930
|
+
// Therefore, set the snapshot key to the global address of the actual request
|
|
931
|
+
entry: globalRemoteSnapshot.remoteEntry
|
|
932
|
+
}), moduleSnapshot);
|
|
949
933
|
return {
|
|
950
934
|
remoteSnapshot: moduleSnapshot,
|
|
951
935
|
globalSnapshot: globalSnapshotRes
|
|
@@ -992,29 +976,9 @@ class SnapshotHandler {
|
|
|
992
976
|
const hostGlobalSnapshot = getGlobalSnapshotInfoByModuleInfo({
|
|
993
977
|
name: this.HostInstance.options.name,
|
|
994
978
|
version: this.HostInstance.options.version
|
|
995
|
-
}, {
|
|
996
|
-
getModuleInfoHook: (target, key)=>{
|
|
997
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
998
|
-
target,
|
|
999
|
-
key
|
|
1000
|
-
});
|
|
1001
|
-
if (res && !(res instanceof Promise)) {
|
|
1002
|
-
return res;
|
|
1003
|
-
}
|
|
1004
|
-
return;
|
|
1005
|
-
}
|
|
1006
979
|
});
|
|
1007
980
|
// get remote detail info from global
|
|
1008
|
-
const globalRemoteInfo = hostGlobalSnapshot && 'remotesInfo' in hostGlobalSnapshot && hostGlobalSnapshot.remotesInfo && getInfoWithoutType(hostGlobalSnapshot.remotesInfo, moduleInfo.name
|
|
1009
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
1010
|
-
target,
|
|
1011
|
-
key
|
|
1012
|
-
});
|
|
1013
|
-
if (res && !(res instanceof Promise)) {
|
|
1014
|
-
return res;
|
|
1015
|
-
}
|
|
1016
|
-
return;
|
|
1017
|
-
}).value;
|
|
981
|
+
const globalRemoteInfo = hostGlobalSnapshot && 'remotesInfo' in hostGlobalSnapshot && hostGlobalSnapshot.remotesInfo && getInfoWithoutType(hostGlobalSnapshot.remotesInfo, moduleInfo.name).value;
|
|
1018
982
|
if (globalRemoteInfo && globalRemoteInfo.matchedVersion) {
|
|
1019
983
|
return {
|
|
1020
984
|
hostGlobalSnapshot,
|
|
@@ -1022,17 +986,6 @@ class SnapshotHandler {
|
|
|
1022
986
|
remoteSnapshot: getGlobalSnapshotInfoByModuleInfo({
|
|
1023
987
|
name: moduleInfo.name,
|
|
1024
988
|
version: globalRemoteInfo.matchedVersion
|
|
1025
|
-
}, {
|
|
1026
|
-
getModuleInfoHook: (target, key)=>{
|
|
1027
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
1028
|
-
target,
|
|
1029
|
-
key
|
|
1030
|
-
});
|
|
1031
|
-
if (res && !(res instanceof Promise)) {
|
|
1032
|
-
return res;
|
|
1033
|
-
}
|
|
1034
|
-
return;
|
|
1035
|
-
}
|
|
1036
989
|
})
|
|
1037
990
|
};
|
|
1038
991
|
}
|
|
@@ -1042,17 +995,6 @@ class SnapshotHandler {
|
|
|
1042
995
|
remoteSnapshot: getGlobalSnapshotInfoByModuleInfo({
|
|
1043
996
|
name: moduleInfo.name,
|
|
1044
997
|
version: 'version' in moduleInfo ? moduleInfo.version : undefined
|
|
1045
|
-
}, {
|
|
1046
|
-
getModuleInfoHook: (target, key)=>{
|
|
1047
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
1048
|
-
target,
|
|
1049
|
-
key
|
|
1050
|
-
});
|
|
1051
|
-
if (res && !(res instanceof Promise)) {
|
|
1052
|
-
return res;
|
|
1053
|
-
}
|
|
1054
|
-
return;
|
|
1055
|
-
}
|
|
1056
998
|
})
|
|
1057
999
|
};
|
|
1058
1000
|
}
|
|
@@ -1712,4 +1654,4 @@ function preloadRemote(...args) {
|
|
|
1712
1654
|
// Inject for debug
|
|
1713
1655
|
setGlobalFederationConstructor(FederationHost);
|
|
1714
1656
|
|
|
1715
|
-
export { FederationHost,
|
|
1657
|
+
export { FederationHost, init, loadRemote, loadShare, loadShareSync, preloadRemote };
|
package/dist/share.cjs.js
CHANGED
|
@@ -168,29 +168,48 @@ function setGlobalFederationInstance(FederationInstance) {
|
|
|
168
168
|
function getGlobalFederationConstructor() {
|
|
169
169
|
return globalThis.__FEDERATION__.__DEBUG_CONSTRUCTOR__;
|
|
170
170
|
}
|
|
171
|
-
function setGlobalFederationConstructor(FederationConstructor) {
|
|
172
|
-
if (
|
|
171
|
+
function setGlobalFederationConstructor(FederationConstructor, isDebug = isDebugMode()) {
|
|
172
|
+
if (isDebug) {
|
|
173
173
|
globalThis.__FEDERATION__.__DEBUG_CONSTRUCTOR__ = FederationConstructor;
|
|
174
174
|
globalThis.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__ = "0.0.9";
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
177
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
178
|
-
function getInfoWithoutType(target, key
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
178
|
+
function getInfoWithoutType(target, key) {
|
|
179
|
+
if (typeof key === 'string') {
|
|
180
|
+
const keyRes = target[key];
|
|
181
|
+
if (keyRes) {
|
|
182
|
+
return {
|
|
183
|
+
value: target[key],
|
|
184
|
+
key: key
|
|
185
|
+
};
|
|
186
|
+
} else {
|
|
187
|
+
const targetKeys = Object.keys(target);
|
|
188
|
+
for (const targetKey of targetKeys){
|
|
189
|
+
const [targetTypeOrName, _] = targetKey.split(':');
|
|
190
|
+
const nKey = `${targetTypeOrName}:${key}`;
|
|
191
|
+
const typeWithKeyRes = target[nKey];
|
|
192
|
+
if (typeWithKeyRes) {
|
|
193
|
+
return {
|
|
194
|
+
value: typeWithKeyRes,
|
|
195
|
+
key: nKey
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
return {
|
|
200
|
+
value: undefined,
|
|
201
|
+
key: key
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
} else {
|
|
205
|
+
throw new Error('key must be string');
|
|
186
206
|
}
|
|
187
|
-
return res;
|
|
188
207
|
}
|
|
189
208
|
const getGlobalSnapshot = ()=>nativeGlobal.__FEDERATION__.moduleInfo;
|
|
190
|
-
const getTargetSnapshotInfoByModuleInfo = (moduleInfo, snapshot
|
|
209
|
+
const getTargetSnapshotInfoByModuleInfo = (moduleInfo, snapshot)=>{
|
|
191
210
|
// Check if the remote is included in the hostSnapshot
|
|
192
211
|
const moduleKey = getFMId(moduleInfo);
|
|
193
|
-
const getModuleInfo = getInfoWithoutType(snapshot, moduleKey
|
|
212
|
+
const getModuleInfo = getInfoWithoutType(snapshot, moduleKey).value;
|
|
194
213
|
// The remoteSnapshot might not include a version
|
|
195
214
|
if (getModuleInfo && !getModuleInfo.version && 'version' in moduleInfo && moduleInfo['version']) {
|
|
196
215
|
getModuleInfo.version = moduleInfo['version'];
|
|
@@ -204,14 +223,14 @@ const getTargetSnapshotInfoByModuleInfo = (moduleInfo, snapshot, getModuleInfoHo
|
|
|
204
223
|
"version"
|
|
205
224
|
]);
|
|
206
225
|
const moduleKeyWithoutVersion = getFMId(resModuleInfo);
|
|
207
|
-
const getModuleInfoWithoutVersion = getInfoWithoutType(nativeGlobal.__FEDERATION__.moduleInfo, moduleKeyWithoutVersion
|
|
226
|
+
const getModuleInfoWithoutVersion = getInfoWithoutType(nativeGlobal.__FEDERATION__.moduleInfo, moduleKeyWithoutVersion).value;
|
|
208
227
|
if ((getModuleInfoWithoutVersion == null ? void 0 : getModuleInfoWithoutVersion.version) === version) {
|
|
209
228
|
return getModuleInfoWithoutVersion;
|
|
210
229
|
}
|
|
211
230
|
}
|
|
212
231
|
return;
|
|
213
232
|
};
|
|
214
|
-
const getGlobalSnapshotInfoByModuleInfo = (moduleInfo
|
|
233
|
+
const getGlobalSnapshotInfoByModuleInfo = (moduleInfo)=>getTargetSnapshotInfoByModuleInfo(moduleInfo, nativeGlobal.__FEDERATION__.moduleInfo);
|
|
215
234
|
const setGlobalSnapshotInfoByModuleInfo = (remoteInfo, moduleDetailInfo)=>{
|
|
216
235
|
const moduleKey = getFMId(remoteInfo);
|
|
217
236
|
nativeGlobal.__FEDERATION__.moduleInfo[moduleKey] = moduleDetailInfo;
|
package/dist/share.esm.js
CHANGED
|
@@ -166,29 +166,48 @@ function setGlobalFederationInstance(FederationInstance) {
|
|
|
166
166
|
function getGlobalFederationConstructor() {
|
|
167
167
|
return globalThis.__FEDERATION__.__DEBUG_CONSTRUCTOR__;
|
|
168
168
|
}
|
|
169
|
-
function setGlobalFederationConstructor(FederationConstructor) {
|
|
170
|
-
if (
|
|
169
|
+
function setGlobalFederationConstructor(FederationConstructor, isDebug = isDebugMode()) {
|
|
170
|
+
if (isDebug) {
|
|
171
171
|
globalThis.__FEDERATION__.__DEBUG_CONSTRUCTOR__ = FederationConstructor;
|
|
172
172
|
globalThis.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__ = "0.0.9";
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
175
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
176
|
-
function getInfoWithoutType(target, key
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
176
|
+
function getInfoWithoutType(target, key) {
|
|
177
|
+
if (typeof key === 'string') {
|
|
178
|
+
const keyRes = target[key];
|
|
179
|
+
if (keyRes) {
|
|
180
|
+
return {
|
|
181
|
+
value: target[key],
|
|
182
|
+
key: key
|
|
183
|
+
};
|
|
184
|
+
} else {
|
|
185
|
+
const targetKeys = Object.keys(target);
|
|
186
|
+
for (const targetKey of targetKeys){
|
|
187
|
+
const [targetTypeOrName, _] = targetKey.split(':');
|
|
188
|
+
const nKey = `${targetTypeOrName}:${key}`;
|
|
189
|
+
const typeWithKeyRes = target[nKey];
|
|
190
|
+
if (typeWithKeyRes) {
|
|
191
|
+
return {
|
|
192
|
+
value: typeWithKeyRes,
|
|
193
|
+
key: nKey
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return {
|
|
198
|
+
value: undefined,
|
|
199
|
+
key: key
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
} else {
|
|
203
|
+
throw new Error('key must be string');
|
|
184
204
|
}
|
|
185
|
-
return res;
|
|
186
205
|
}
|
|
187
206
|
const getGlobalSnapshot = ()=>nativeGlobal.__FEDERATION__.moduleInfo;
|
|
188
|
-
const getTargetSnapshotInfoByModuleInfo = (moduleInfo, snapshot
|
|
207
|
+
const getTargetSnapshotInfoByModuleInfo = (moduleInfo, snapshot)=>{
|
|
189
208
|
// Check if the remote is included in the hostSnapshot
|
|
190
209
|
const moduleKey = getFMId(moduleInfo);
|
|
191
|
-
const getModuleInfo = getInfoWithoutType(snapshot, moduleKey
|
|
210
|
+
const getModuleInfo = getInfoWithoutType(snapshot, moduleKey).value;
|
|
192
211
|
// The remoteSnapshot might not include a version
|
|
193
212
|
if (getModuleInfo && !getModuleInfo.version && 'version' in moduleInfo && moduleInfo['version']) {
|
|
194
213
|
getModuleInfo.version = moduleInfo['version'];
|
|
@@ -202,14 +221,14 @@ const getTargetSnapshotInfoByModuleInfo = (moduleInfo, snapshot, getModuleInfoHo
|
|
|
202
221
|
"version"
|
|
203
222
|
]);
|
|
204
223
|
const moduleKeyWithoutVersion = getFMId(resModuleInfo);
|
|
205
|
-
const getModuleInfoWithoutVersion = getInfoWithoutType(nativeGlobal.__FEDERATION__.moduleInfo, moduleKeyWithoutVersion
|
|
224
|
+
const getModuleInfoWithoutVersion = getInfoWithoutType(nativeGlobal.__FEDERATION__.moduleInfo, moduleKeyWithoutVersion).value;
|
|
206
225
|
if ((getModuleInfoWithoutVersion == null ? void 0 : getModuleInfoWithoutVersion.version) === version) {
|
|
207
226
|
return getModuleInfoWithoutVersion;
|
|
208
227
|
}
|
|
209
228
|
}
|
|
210
229
|
return;
|
|
211
230
|
};
|
|
212
|
-
const getGlobalSnapshotInfoByModuleInfo = (moduleInfo
|
|
231
|
+
const getGlobalSnapshotInfoByModuleInfo = (moduleInfo)=>getTargetSnapshotInfoByModuleInfo(moduleInfo, nativeGlobal.__FEDERATION__.moduleInfo);
|
|
213
232
|
const setGlobalSnapshotInfoByModuleInfo = (remoteInfo, moduleDetailInfo)=>{
|
|
214
233
|
const moduleKey = getFMId(remoteInfo);
|
|
215
234
|
nativeGlobal.__FEDERATION__.moduleInfo[moduleKey] = moduleDetailInfo;
|
|
@@ -770,4 +789,4 @@ function getGlobalShareScope() {
|
|
|
770
789
|
return Global.__FEDERATION__.__SHARE__;
|
|
771
790
|
}
|
|
772
791
|
|
|
773
|
-
export {
|
|
792
|
+
export { setGlobalFederationConstructor as A, getGlobalFederationInstance as B, getGlobalFederationConstructor as C, DEFAULT_REMOTE_TYPE as D, setGlobalFederationInstance as E, registerGlobalPlugins as F, Global as G, nativeGlobal as H, resetFederationGlobalInfo as I, getTargetSnapshotInfoByModuleInfo as J, DEFAULT_SCOPE as a, globalLoading as b, getRemoteEntryExports as c, assert as d, getFMId as e, error as f, getGlobalHostPlugins as g, isPlainObject as h, isObject as i, isRemoteInfoWithEntry as j, isPureRemoteEntry as k, getRegisteredShare as l, getInfoWithoutType as m, getPreloaded as n, setPreloaded as o, getGlobalSnapshotInfoByModuleInfo as p, addGlobalSnapshot as q, setGlobalSnapshotInfoByModuleInfo as r, safeToString as s, getGlobalSnapshot as t, getGlobalShareScope as u, formatShareConfigs as v, warn as w, isBrowserEnv as x, getBuilderId as y, addUniqueItem as z };
|
package/dist/src/core.d.ts
CHANGED
package/dist/src/global.d.ts
CHANGED
|
@@ -23,25 +23,14 @@ export declare function resetFederationGlobalInfo(): void;
|
|
|
23
23
|
export declare function getGlobalFederationInstance(name: string, version: string | undefined): FederationHost | undefined;
|
|
24
24
|
export declare function setGlobalFederationInstance(FederationInstance: FederationHost): void;
|
|
25
25
|
export declare function getGlobalFederationConstructor(): typeof FederationHost | undefined;
|
|
26
|
-
export declare function setGlobalFederationConstructor(FederationConstructor: typeof FederationHost): void;
|
|
27
|
-
export declare function getInfoWithoutType<T extends object>(target: T, key: keyof T
|
|
28
|
-
value: any | undefined;
|
|
29
|
-
key: string;
|
|
30
|
-
} | void): {
|
|
26
|
+
export declare function setGlobalFederationConstructor(FederationConstructor: typeof FederationHost | undefined, isDebug?: boolean): void;
|
|
27
|
+
export declare function getInfoWithoutType<T extends object>(target: T, key: keyof T): {
|
|
31
28
|
value: T[keyof T] | undefined;
|
|
32
29
|
key: string;
|
|
33
30
|
};
|
|
34
31
|
export declare const getGlobalSnapshot: () => GlobalModuleInfo;
|
|
35
|
-
export declare const getTargetSnapshotInfoByModuleInfo: (moduleInfo: Optional<Remote, 'alias'>, snapshot: GlobalModuleInfo
|
|
36
|
-
|
|
37
|
-
key: string;
|
|
38
|
-
}) | undefined) => GlobalModuleInfo[string] | undefined;
|
|
39
|
-
export declare const getGlobalSnapshotInfoByModuleInfo: (moduleInfo: Optional<Remote, 'alias'>, extraOptions?: {
|
|
40
|
-
getModuleInfoHook?: ((target: any, key: string | number | symbol) => void | {
|
|
41
|
-
value: any | undefined;
|
|
42
|
-
key: string;
|
|
43
|
-
}) | undefined;
|
|
44
|
-
} | undefined) => GlobalModuleInfo[string] | undefined;
|
|
32
|
+
export declare const getTargetSnapshotInfoByModuleInfo: (moduleInfo: Optional<Remote, 'alias'>, snapshot: GlobalModuleInfo) => GlobalModuleInfo[string] | undefined;
|
|
33
|
+
export declare const getGlobalSnapshotInfoByModuleInfo: (moduleInfo: Optional<Remote, 'alias'>) => GlobalModuleInfo[string] | undefined;
|
|
45
34
|
export declare const setGlobalSnapshotInfoByModuleInfo: (remoteInfo: Remote, moduleDetailInfo: GlobalModuleInfo[string]) => GlobalModuleInfo;
|
|
46
35
|
export declare const addGlobalSnapshot: (moduleInfos: GlobalModuleInfo) => (() => void);
|
|
47
36
|
export declare const getRemoteEntryExports: (name: string, globalName: string | undefined) => {
|
package/dist/src/index.d.ts
CHANGED
|
@@ -2,7 +2,6 @@ import { FederationHost } from './core';
|
|
|
2
2
|
import { UserOptions, FederationRuntimePlugin } from './type';
|
|
3
3
|
export { FederationHost } from './core';
|
|
4
4
|
export { registerGlobalPlugins } from './global';
|
|
5
|
-
export { getRemoteEntry, getRemoteInfo } from './utils';
|
|
6
5
|
export { loadScript } from '@module-federation/sdk';
|
|
7
6
|
export type { Federation } from './global';
|
|
8
7
|
export type { FederationRuntimePlugin };
|
|
@@ -38,12 +38,12 @@ type SharedBaseArgs = {
|
|
|
38
38
|
deps?: Array<string>;
|
|
39
39
|
strategy?: 'version-first' | 'loaded-first';
|
|
40
40
|
};
|
|
41
|
+
export type SharedGetter = (() => () => Module) | (() => Promise<() => Module>);
|
|
41
42
|
export type ShareArgs = (SharedBaseArgs & {
|
|
42
|
-
get:
|
|
43
|
+
get: SharedGetter;
|
|
43
44
|
}) | (SharedBaseArgs & {
|
|
44
45
|
lib: () => Module;
|
|
45
46
|
});
|
|
46
|
-
export type SharedGetter = () => () => Promise<() => Module> | Module;
|
|
47
47
|
export type Shared = {
|
|
48
48
|
version: string;
|
|
49
49
|
get: SharedGetter;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@module-federation/runtime",
|
|
3
|
-
"version": "0.0.0-next-
|
|
3
|
+
"version": "0.0.0-next-20240122072901",
|
|
4
4
|
"author": "zhouxiao <codingzx@gmail.com>",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.esm.js",
|
|
@@ -45,6 +45,6 @@
|
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@module-federation/sdk": "0.0.0-next-
|
|
48
|
+
"@module-federation/sdk": "0.0.0-next-20240122072901"
|
|
49
49
|
}
|
|
50
50
|
}
|