@module-federation/runtime 0.0.0-next-20240115064607 → 0.0.0-next-20240117121934
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 +21 -82
- package/dist/index.esm.js +23 -84
- package/dist/share.cjs.js +38 -22
- package/dist/share.esm.js +39 -23
- package/dist/src/global.d.ts +4 -15
- package/dist/src/type/config.d.ts +2 -2
- 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
|
}
|
|
@@ -792,16 +792,7 @@ function generatePreloadAssets(origin, preloadOptions, remote, globalSnapshot, r
|
|
|
792
792
|
share.setPreloaded(exposeFullPath);
|
|
793
793
|
}
|
|
794
794
|
}
|
|
795
|
-
}, true, memo, remoteSnapshot
|
|
796
|
-
const res = origin.loaderHook.lifecycle.getModuleInfo.emit({
|
|
797
|
-
target,
|
|
798
|
-
key
|
|
799
|
-
});
|
|
800
|
-
if (res && !(res instanceof Promise)) {
|
|
801
|
-
return res;
|
|
802
|
-
}
|
|
803
|
-
return;
|
|
804
|
-
});
|
|
795
|
+
}, true, memo, remoteSnapshot);
|
|
805
796
|
if (remoteSnapshot.shared) {
|
|
806
797
|
remoteSnapshot.shared.forEach((shared)=>{
|
|
807
798
|
var _options_shared;
|
|
@@ -894,37 +885,27 @@ class SnapshotHandler {
|
|
|
894
885
|
// eslint-disable-next-line max-lines-per-function
|
|
895
886
|
async loadRemoteSnapshotInfo(moduleInfo) {
|
|
896
887
|
const { options } = this.HostInstance;
|
|
897
|
-
const hostSnapshot = share.getGlobalSnapshotInfoByModuleInfo({
|
|
898
|
-
name: this.HostInstance.options.name,
|
|
899
|
-
version: this.HostInstance.options.version
|
|
900
|
-
}, {
|
|
901
|
-
getModuleInfoHook: (target, key)=>{
|
|
902
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
903
|
-
target,
|
|
904
|
-
key
|
|
905
|
-
});
|
|
906
|
-
if (res && !(res instanceof Promise)) {
|
|
907
|
-
return res;
|
|
908
|
-
}
|
|
909
|
-
return;
|
|
910
|
-
}
|
|
911
|
-
});
|
|
912
888
|
await this.hooks.lifecycle.beforeLoadRemoteSnapshot.emit({
|
|
913
889
|
options,
|
|
914
890
|
moduleInfo
|
|
915
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
|
+
}
|
|
916
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.
|
|
917
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.
|
|
918
|
-
if (hostSnapshot && 'remotesInfo' in hostSnapshot && !share.getInfoWithoutType(hostSnapshot.remotesInfo, moduleInfo.name
|
|
919
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
920
|
-
target,
|
|
921
|
-
key
|
|
922
|
-
});
|
|
923
|
-
if (res && !(res instanceof Promise)) {
|
|
924
|
-
return res;
|
|
925
|
-
}
|
|
926
|
-
return;
|
|
927
|
-
}).value) {
|
|
908
|
+
if (hostSnapshot && 'remotesInfo' in hostSnapshot && !share.getInfoWithoutType(hostSnapshot.remotesInfo, moduleInfo.name).value) {
|
|
928
909
|
if ('version' in moduleInfo || 'entry' in moduleInfo) {
|
|
929
910
|
hostSnapshot.remotesInfo = _extends$1({}, hostSnapshot == null ? void 0 : hostSnapshot.remotesInfo, {
|
|
930
911
|
[moduleInfo.name]: {
|
|
@@ -993,29 +974,9 @@ class SnapshotHandler {
|
|
|
993
974
|
const hostGlobalSnapshot = share.getGlobalSnapshotInfoByModuleInfo({
|
|
994
975
|
name: this.HostInstance.options.name,
|
|
995
976
|
version: this.HostInstance.options.version
|
|
996
|
-
}, {
|
|
997
|
-
getModuleInfoHook: (target, key)=>{
|
|
998
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
999
|
-
target,
|
|
1000
|
-
key
|
|
1001
|
-
});
|
|
1002
|
-
if (res && !(res instanceof Promise)) {
|
|
1003
|
-
return res;
|
|
1004
|
-
}
|
|
1005
|
-
return;
|
|
1006
|
-
}
|
|
1007
977
|
});
|
|
1008
978
|
// get remote detail info from global
|
|
1009
|
-
const globalRemoteInfo = hostGlobalSnapshot && 'remotesInfo' in hostGlobalSnapshot && hostGlobalSnapshot.remotesInfo && share.getInfoWithoutType(hostGlobalSnapshot.remotesInfo, moduleInfo.name
|
|
1010
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
1011
|
-
target,
|
|
1012
|
-
key
|
|
1013
|
-
});
|
|
1014
|
-
if (res && !(res instanceof Promise)) {
|
|
1015
|
-
return res;
|
|
1016
|
-
}
|
|
1017
|
-
return;
|
|
1018
|
-
}).value;
|
|
979
|
+
const globalRemoteInfo = hostGlobalSnapshot && 'remotesInfo' in hostGlobalSnapshot && hostGlobalSnapshot.remotesInfo && share.getInfoWithoutType(hostGlobalSnapshot.remotesInfo, moduleInfo.name).value;
|
|
1019
980
|
if (globalRemoteInfo && globalRemoteInfo.matchedVersion) {
|
|
1020
981
|
return {
|
|
1021
982
|
hostGlobalSnapshot,
|
|
@@ -1023,17 +984,6 @@ class SnapshotHandler {
|
|
|
1023
984
|
remoteSnapshot: share.getGlobalSnapshotInfoByModuleInfo({
|
|
1024
985
|
name: moduleInfo.name,
|
|
1025
986
|
version: globalRemoteInfo.matchedVersion
|
|
1026
|
-
}, {
|
|
1027
|
-
getModuleInfoHook: (target, key)=>{
|
|
1028
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
1029
|
-
target,
|
|
1030
|
-
key
|
|
1031
|
-
});
|
|
1032
|
-
if (res && !(res instanceof Promise)) {
|
|
1033
|
-
return res;
|
|
1034
|
-
}
|
|
1035
|
-
return;
|
|
1036
|
-
}
|
|
1037
987
|
})
|
|
1038
988
|
};
|
|
1039
989
|
}
|
|
@@ -1043,17 +993,6 @@ class SnapshotHandler {
|
|
|
1043
993
|
remoteSnapshot: share.getGlobalSnapshotInfoByModuleInfo({
|
|
1044
994
|
name: moduleInfo.name,
|
|
1045
995
|
version: 'version' in moduleInfo ? moduleInfo.version : undefined
|
|
1046
|
-
}, {
|
|
1047
|
-
getModuleInfoHook: (target, key)=>{
|
|
1048
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
1049
|
-
target,
|
|
1050
|
-
key
|
|
1051
|
-
});
|
|
1052
|
-
if (res && !(res instanceof Promise)) {
|
|
1053
|
-
return res;
|
|
1054
|
-
}
|
|
1055
|
-
return;
|
|
1056
|
-
}
|
|
1057
996
|
})
|
|
1058
997
|
};
|
|
1059
998
|
}
|
|
@@ -1518,7 +1457,7 @@ class FederationHost {
|
|
|
1518
1457
|
}
|
|
1519
1458
|
// Set the remote entry to a complete path
|
|
1520
1459
|
if ('entry' in remote) {
|
|
1521
|
-
if (share.isBrowserEnv()
|
|
1460
|
+
if (share.isBrowserEnv()) {
|
|
1522
1461
|
remote.entry = new URL(remote.entry, window.location.origin).href;
|
|
1523
1462
|
}
|
|
1524
1463
|
}
|
package/dist/index.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
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
|
|
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
|
}
|
|
@@ -790,16 +790,7 @@ function generatePreloadAssets(origin, preloadOptions, remote, globalSnapshot, r
|
|
|
790
790
|
setPreloaded(exposeFullPath);
|
|
791
791
|
}
|
|
792
792
|
}
|
|
793
|
-
}, true, memo, remoteSnapshot
|
|
794
|
-
const res = origin.loaderHook.lifecycle.getModuleInfo.emit({
|
|
795
|
-
target,
|
|
796
|
-
key
|
|
797
|
-
});
|
|
798
|
-
if (res && !(res instanceof Promise)) {
|
|
799
|
-
return res;
|
|
800
|
-
}
|
|
801
|
-
return;
|
|
802
|
-
});
|
|
793
|
+
}, true, memo, remoteSnapshot);
|
|
803
794
|
if (remoteSnapshot.shared) {
|
|
804
795
|
remoteSnapshot.shared.forEach((shared)=>{
|
|
805
796
|
var _options_shared;
|
|
@@ -892,37 +883,27 @@ class SnapshotHandler {
|
|
|
892
883
|
// eslint-disable-next-line max-lines-per-function
|
|
893
884
|
async loadRemoteSnapshotInfo(moduleInfo) {
|
|
894
885
|
const { options } = this.HostInstance;
|
|
895
|
-
const hostSnapshot = getGlobalSnapshotInfoByModuleInfo({
|
|
896
|
-
name: this.HostInstance.options.name,
|
|
897
|
-
version: this.HostInstance.options.version
|
|
898
|
-
}, {
|
|
899
|
-
getModuleInfoHook: (target, key)=>{
|
|
900
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
901
|
-
target,
|
|
902
|
-
key
|
|
903
|
-
});
|
|
904
|
-
if (res && !(res instanceof Promise)) {
|
|
905
|
-
return res;
|
|
906
|
-
}
|
|
907
|
-
return;
|
|
908
|
-
}
|
|
909
|
-
});
|
|
910
886
|
await this.hooks.lifecycle.beforeLoadRemoteSnapshot.emit({
|
|
911
887
|
options,
|
|
912
888
|
moduleInfo
|
|
913
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
|
+
}
|
|
914
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.
|
|
915
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.
|
|
916
|
-
if (hostSnapshot && 'remotesInfo' in hostSnapshot && !getInfoWithoutType(hostSnapshot.remotesInfo, moduleInfo.name
|
|
917
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
918
|
-
target,
|
|
919
|
-
key
|
|
920
|
-
});
|
|
921
|
-
if (res && !(res instanceof Promise)) {
|
|
922
|
-
return res;
|
|
923
|
-
}
|
|
924
|
-
return;
|
|
925
|
-
}).value) {
|
|
906
|
+
if (hostSnapshot && 'remotesInfo' in hostSnapshot && !getInfoWithoutType(hostSnapshot.remotesInfo, moduleInfo.name).value) {
|
|
926
907
|
if ('version' in moduleInfo || 'entry' in moduleInfo) {
|
|
927
908
|
hostSnapshot.remotesInfo = _extends$1({}, hostSnapshot == null ? void 0 : hostSnapshot.remotesInfo, {
|
|
928
909
|
[moduleInfo.name]: {
|
|
@@ -991,29 +972,9 @@ class SnapshotHandler {
|
|
|
991
972
|
const hostGlobalSnapshot = getGlobalSnapshotInfoByModuleInfo({
|
|
992
973
|
name: this.HostInstance.options.name,
|
|
993
974
|
version: this.HostInstance.options.version
|
|
994
|
-
}, {
|
|
995
|
-
getModuleInfoHook: (target, key)=>{
|
|
996
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
997
|
-
target,
|
|
998
|
-
key
|
|
999
|
-
});
|
|
1000
|
-
if (res && !(res instanceof Promise)) {
|
|
1001
|
-
return res;
|
|
1002
|
-
}
|
|
1003
|
-
return;
|
|
1004
|
-
}
|
|
1005
975
|
});
|
|
1006
976
|
// get remote detail info from global
|
|
1007
|
-
const globalRemoteInfo = hostGlobalSnapshot && 'remotesInfo' in hostGlobalSnapshot && hostGlobalSnapshot.remotesInfo && getInfoWithoutType(hostGlobalSnapshot.remotesInfo, moduleInfo.name
|
|
1008
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
1009
|
-
target,
|
|
1010
|
-
key
|
|
1011
|
-
});
|
|
1012
|
-
if (res && !(res instanceof Promise)) {
|
|
1013
|
-
return res;
|
|
1014
|
-
}
|
|
1015
|
-
return;
|
|
1016
|
-
}).value;
|
|
977
|
+
const globalRemoteInfo = hostGlobalSnapshot && 'remotesInfo' in hostGlobalSnapshot && hostGlobalSnapshot.remotesInfo && getInfoWithoutType(hostGlobalSnapshot.remotesInfo, moduleInfo.name).value;
|
|
1017
978
|
if (globalRemoteInfo && globalRemoteInfo.matchedVersion) {
|
|
1018
979
|
return {
|
|
1019
980
|
hostGlobalSnapshot,
|
|
@@ -1021,17 +982,6 @@ class SnapshotHandler {
|
|
|
1021
982
|
remoteSnapshot: getGlobalSnapshotInfoByModuleInfo({
|
|
1022
983
|
name: moduleInfo.name,
|
|
1023
984
|
version: globalRemoteInfo.matchedVersion
|
|
1024
|
-
}, {
|
|
1025
|
-
getModuleInfoHook: (target, key)=>{
|
|
1026
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
1027
|
-
target,
|
|
1028
|
-
key
|
|
1029
|
-
});
|
|
1030
|
-
if (res && !(res instanceof Promise)) {
|
|
1031
|
-
return res;
|
|
1032
|
-
}
|
|
1033
|
-
return;
|
|
1034
|
-
}
|
|
1035
985
|
})
|
|
1036
986
|
};
|
|
1037
987
|
}
|
|
@@ -1041,17 +991,6 @@ class SnapshotHandler {
|
|
|
1041
991
|
remoteSnapshot: getGlobalSnapshotInfoByModuleInfo({
|
|
1042
992
|
name: moduleInfo.name,
|
|
1043
993
|
version: 'version' in moduleInfo ? moduleInfo.version : undefined
|
|
1044
|
-
}, {
|
|
1045
|
-
getModuleInfoHook: (target, key)=>{
|
|
1046
|
-
const res = this.HostInstance.loaderHook.lifecycle.getModuleInfo.emit({
|
|
1047
|
-
target,
|
|
1048
|
-
key
|
|
1049
|
-
});
|
|
1050
|
-
if (res && !(res instanceof Promise)) {
|
|
1051
|
-
return res;
|
|
1052
|
-
}
|
|
1053
|
-
return;
|
|
1054
|
-
}
|
|
1055
994
|
})
|
|
1056
995
|
};
|
|
1057
996
|
}
|
|
@@ -1516,7 +1455,7 @@ class FederationHost {
|
|
|
1516
1455
|
}
|
|
1517
1456
|
// Set the remote entry to a complete path
|
|
1518
1457
|
if ('entry' in remote) {
|
|
1519
|
-
if (isBrowserEnv()
|
|
1458
|
+
if (isBrowserEnv()) {
|
|
1520
1459
|
remote.entry = new URL(remote.entry, window.location.origin).href;
|
|
1521
1460
|
}
|
|
1522
1461
|
}
|
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.8";
|
|
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 (let 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;
|
|
@@ -683,27 +702,24 @@ const findVersion = (shareScopeMap, scope, pkgName, cb)=>{
|
|
|
683
702
|
return prev;
|
|
684
703
|
}, 0);
|
|
685
704
|
};
|
|
686
|
-
const isLoaded = (shared)=>{
|
|
687
|
-
return Boolean(shared.loaded) || typeof shared.lib === 'function';
|
|
688
|
-
};
|
|
689
705
|
function findSingletonVersionOrderByVersion(shareScopeMap, scope, pkgName) {
|
|
690
706
|
const versions = shareScopeMap[scope][pkgName];
|
|
691
707
|
const callback = function(prev, cur) {
|
|
692
|
-
return !
|
|
708
|
+
return !versions[prev].loaded && versionLt(prev, cur);
|
|
693
709
|
};
|
|
694
710
|
return findVersion(shareScopeMap, scope, pkgName, callback);
|
|
695
711
|
}
|
|
696
712
|
function findSingletonVersionOrderByLoaded(shareScopeMap, scope, pkgName) {
|
|
697
713
|
const versions = shareScopeMap[scope][pkgName];
|
|
698
714
|
const callback = function(prev, cur) {
|
|
699
|
-
if (
|
|
700
|
-
if (
|
|
715
|
+
if (versions[cur].loaded) {
|
|
716
|
+
if (versions[prev].loaded) {
|
|
701
717
|
return Boolean(versionLt(prev, cur));
|
|
702
718
|
} else {
|
|
703
719
|
return true;
|
|
704
720
|
}
|
|
705
721
|
}
|
|
706
|
-
if (
|
|
722
|
+
if (versions[prev].loaded) {
|
|
707
723
|
return false;
|
|
708
724
|
}
|
|
709
725
|
return versionLt(prev, cur);
|
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.8";
|
|
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 (let 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;
|
|
@@ -681,27 +700,24 @@ const findVersion = (shareScopeMap, scope, pkgName, cb)=>{
|
|
|
681
700
|
return prev;
|
|
682
701
|
}, 0);
|
|
683
702
|
};
|
|
684
|
-
const isLoaded = (shared)=>{
|
|
685
|
-
return Boolean(shared.loaded) || typeof shared.lib === 'function';
|
|
686
|
-
};
|
|
687
703
|
function findSingletonVersionOrderByVersion(shareScopeMap, scope, pkgName) {
|
|
688
704
|
const versions = shareScopeMap[scope][pkgName];
|
|
689
705
|
const callback = function(prev, cur) {
|
|
690
|
-
return !
|
|
706
|
+
return !versions[prev].loaded && versionLt(prev, cur);
|
|
691
707
|
};
|
|
692
708
|
return findVersion(shareScopeMap, scope, pkgName, callback);
|
|
693
709
|
}
|
|
694
710
|
function findSingletonVersionOrderByLoaded(shareScopeMap, scope, pkgName) {
|
|
695
711
|
const versions = shareScopeMap[scope][pkgName];
|
|
696
712
|
const callback = function(prev, cur) {
|
|
697
|
-
if (
|
|
698
|
-
if (
|
|
713
|
+
if (versions[cur].loaded) {
|
|
714
|
+
if (versions[prev].loaded) {
|
|
699
715
|
return Boolean(versionLt(prev, cur));
|
|
700
716
|
} else {
|
|
701
717
|
return true;
|
|
702
718
|
}
|
|
703
719
|
}
|
|
704
|
-
if (
|
|
720
|
+
if (versions[prev].loaded) {
|
|
705
721
|
return false;
|
|
706
722
|
}
|
|
707
723
|
return versionLt(prev, cur);
|
|
@@ -770,4 +786,4 @@ function getGlobalShareScope() {
|
|
|
770
786
|
return Global.__FEDERATION__.__SHARE__;
|
|
771
787
|
}
|
|
772
788
|
|
|
773
|
-
export {
|
|
789
|
+
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/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) => {
|
|
@@ -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-20240117121934",
|
|
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-20240117121934"
|
|
49
49
|
}
|
|
50
50
|
}
|