@module-federation/runtime-core 0.0.0-perf-devtools-20260107043700 → 0.0.0-perf-website-code-usage-20260914033703
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/README.md +1 -1
- package/dist/_virtual/_rolldown/runtime.cjs +19 -0
- package/dist/_virtual/_rolldown/runtime.js +18 -0
- package/dist/constant.cjs +9 -0
- package/dist/constant.cjs.map +1 -0
- package/dist/constant.js +7 -0
- package/dist/constant.js.map +1 -0
- package/dist/core.cjs +150 -0
- package/dist/core.cjs.map +1 -0
- package/dist/core.d.ts +199 -0
- package/dist/core.js +150 -0
- package/dist/core.js.map +1 -0
- package/dist/global.cjs +175 -0
- package/dist/global.cjs.map +1 -0
- package/dist/global.d.ts +46 -0
- package/dist/global.js +155 -0
- package/dist/global.js.map +1 -0
- package/dist/helpers.cjs +44 -0
- package/dist/helpers.cjs.map +1 -0
- package/dist/helpers.d.ts +30 -0
- package/dist/helpers.js +44 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.cjs +62 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +30 -1
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/module/index.cjs +268 -0
- package/dist/module/index.cjs.map +1 -0
- package/dist/module/index.d.ts +33 -0
- package/dist/module/index.js +268 -0
- package/dist/module/index.js.map +1 -0
- package/dist/plugins/generate-preload-assets.cjs +182 -0
- package/dist/plugins/generate-preload-assets.cjs.map +1 -0
- package/dist/plugins/generate-preload-assets.js +182 -0
- package/dist/plugins/generate-preload-assets.js.map +1 -0
- package/dist/plugins/snapshot/SnapshotHandler.cjs +258 -0
- package/dist/plugins/snapshot/SnapshotHandler.cjs.map +1 -0
- package/dist/plugins/snapshot/SnapshotHandler.d.ts +92 -0
- package/dist/plugins/snapshot/SnapshotHandler.js +257 -0
- package/dist/plugins/snapshot/SnapshotHandler.js.map +1 -0
- package/dist/plugins/snapshot/disabled.cjs +13 -0
- package/dist/plugins/snapshot/disabled.cjs.map +1 -0
- package/dist/plugins/snapshot/disabled.js +13 -0
- package/dist/plugins/snapshot/disabled.js.map +1 -0
- package/dist/plugins/snapshot/index.cjs +77 -0
- package/dist/plugins/snapshot/index.cjs.map +1 -0
- package/dist/plugins/snapshot/index.js +76 -0
- package/dist/plugins/snapshot/index.js.map +1 -0
- package/dist/remote/disabled.cjs +38 -0
- package/dist/remote/disabled.cjs.map +1 -0
- package/dist/remote/disabled.js +37 -0
- package/dist/remote/disabled.js.map +1 -0
- package/dist/remote/index.cjs +458 -0
- package/dist/remote/index.cjs.map +1 -0
- package/dist/remote/index.d.ts +147 -0
- package/dist/remote/index.js +458 -0
- package/dist/remote/index.js.map +1 -0
- package/dist/shared/disabled.cjs +33 -0
- package/dist/shared/disabled.cjs.map +1 -0
- package/dist/shared/disabled.js +33 -0
- package/dist/shared/disabled.js.map +1 -0
- package/dist/shared/index.cjs +477 -0
- package/dist/shared/index.cjs.map +1 -0
- package/dist/shared/index.d.ts +113 -0
- package/dist/shared/index.js +477 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/type/config.d.ts +138 -0
- package/dist/type/index.cjs +13 -0
- package/dist/type/index.cjs.map +1 -0
- package/dist/type/index.d.ts +11 -0
- package/dist/type/index.js +8 -0
- package/dist/type/index.js.map +1 -0
- package/dist/type/plugin.d.ts +28 -0
- package/dist/type/preload.d.ts +60 -0
- package/dist/types.cjs +0 -0
- package/dist/types.d.ts +4 -1
- package/dist/types.js +1 -0
- package/dist/utils/context.cjs +45 -0
- package/dist/utils/context.cjs.map +1 -0
- package/dist/utils/context.d.ts +1 -0
- package/dist/utils/context.js +44 -0
- package/dist/utils/context.js.map +1 -0
- package/dist/utils/env.cjs +10 -0
- package/dist/utils/env.cjs.map +1 -0
- package/dist/utils/env.d.ts +1 -0
- package/dist/utils/env.js +10 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/hooks/asyncHook.cjs +26 -0
- package/dist/utils/hooks/asyncHook.cjs.map +1 -0
- package/dist/utils/hooks/asyncHook.d.ts +10 -0
- package/dist/utils/hooks/asyncHook.js +26 -0
- package/dist/utils/hooks/asyncHook.js.map +1 -0
- package/dist/utils/hooks/asyncWaterfallHooks.cjs +44 -0
- package/dist/utils/hooks/asyncWaterfallHooks.cjs.map +1 -0
- package/dist/utils/hooks/asyncWaterfallHooks.d.ts +12 -0
- package/dist/utils/hooks/asyncWaterfallHooks.js +44 -0
- package/dist/utils/hooks/asyncWaterfallHooks.js.map +1 -0
- package/dist/utils/hooks/index.cjs +5 -0
- package/dist/utils/hooks/index.js +7 -0
- package/dist/utils/hooks/pluginSystem.cjs +38 -0
- package/dist/utils/hooks/pluginSystem.cjs.map +1 -0
- package/dist/utils/hooks/pluginSystem.d.ts +16 -0
- package/dist/utils/hooks/pluginSystem.js +38 -0
- package/dist/utils/hooks/pluginSystem.js.map +1 -0
- package/dist/utils/hooks/syncHook.cjs +37 -0
- package/dist/utils/hooks/syncHook.cjs.map +1 -0
- package/dist/utils/hooks/syncHook.d.ts +16 -0
- package/dist/utils/hooks/syncHook.js +36 -0
- package/dist/utils/hooks/syncHook.js.map +1 -0
- package/dist/utils/hooks/syncWaterfallHook.cjs +40 -0
- package/dist/utils/hooks/syncWaterfallHook.cjs.map +1 -0
- package/dist/utils/hooks/syncWaterfallHook.d.ts +11 -0
- package/dist/utils/hooks/syncWaterfallHook.js +39 -0
- package/dist/utils/hooks/syncWaterfallHook.js.map +1 -0
- package/dist/utils/index.cjs +8 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/load.cjs +280 -0
- package/dist/utils/load.cjs.map +1 -0
- package/dist/utils/load.d.ts +16 -0
- package/dist/utils/load.js +277 -0
- package/dist/utils/load.js.map +1 -0
- package/dist/utils/logger.cjs +34 -0
- package/dist/utils/logger.cjs.map +1 -0
- package/dist/utils/logger.d.ts +10 -0
- package/dist/utils/logger.js +31 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/manifest.cjs +56 -0
- package/dist/utils/manifest.cjs.map +1 -0
- package/dist/utils/manifest.d.ts +10 -0
- package/dist/utils/manifest.js +53 -0
- package/dist/utils/manifest.js.map +1 -0
- package/dist/utils/plugin.cjs +50 -0
- package/dist/utils/plugin.cjs.map +1 -0
- package/dist/utils/plugin.d.ts +1 -0
- package/dist/utils/plugin.js +50 -0
- package/dist/utils/plugin.js.map +1 -0
- package/dist/utils/preload.cjs +221 -0
- package/dist/utils/preload.cjs.map +1 -0
- package/dist/utils/preload.d.ts +8 -0
- package/dist/utils/preload.js +218 -0
- package/dist/utils/preload.js.map +1 -0
- package/dist/utils/semver/compare.cjs +48 -0
- package/dist/utils/semver/compare.cjs.map +1 -0
- package/dist/utils/semver/compare.js +47 -0
- package/dist/utils/semver/compare.js.map +1 -0
- package/dist/utils/semver/constants.cjs +41 -0
- package/dist/utils/semver/constants.cjs.map +1 -0
- package/dist/utils/semver/constants.js +31 -0
- package/dist/utils/semver/constants.js.map +1 -0
- package/dist/utils/semver/index.cjs +68 -0
- package/dist/utils/semver/index.cjs.map +1 -0
- package/dist/utils/semver/index.d.ts +5 -0
- package/dist/utils/semver/index.js +68 -0
- package/dist/utils/semver/index.js.map +1 -0
- package/dist/utils/semver/parser.cjs +104 -0
- package/dist/utils/semver/parser.cjs.map +1 -0
- package/dist/utils/semver/parser.js +96 -0
- package/dist/utils/semver/parser.js.map +1 -0
- package/dist/utils/semver/utils.cjs +28 -0
- package/dist/utils/semver/utils.cjs.map +1 -0
- package/dist/utils/semver/utils.js +24 -0
- package/dist/utils/semver/utils.js.map +1 -0
- package/dist/utils/share.cjs +285 -0
- package/dist/utils/share.cjs.map +1 -0
- package/dist/utils/share.d.ts +24 -0
- package/dist/utils/share.js +279 -0
- package/dist/utils/share.js.map +1 -0
- package/dist/utils/tool.cjs +82 -0
- package/dist/utils/tool.cjs.map +1 -0
- package/dist/utils/tool.d.ts +8 -0
- package/dist/utils/tool.js +71 -0
- package/dist/utils/tool.js.map +1 -0
- package/package.json +16 -9
- package/dist/index.cjs.cjs +0 -3226
- package/dist/index.cjs.cjs.map +0 -1
- package/dist/index.cjs.d.ts +0 -1
- package/dist/index.esm.js +0 -3202
- package/dist/index.esm.js.map +0 -1
- package/dist/src/constant.d.ts +0 -2
- package/dist/src/core.d.ts +0 -115
- package/dist/src/global.d.ts +0 -42
- package/dist/src/helpers.d.ts +0 -38
- package/dist/src/index.d.ts +0 -14
- package/dist/src/module/index.d.ts +0 -22
- package/dist/src/plugins/generate-preload-assets.d.ts +0 -8
- package/dist/src/plugins/snapshot/SnapshotHandler.d.ts +0 -60
- package/dist/src/plugins/snapshot/index.d.ts +0 -5
- package/dist/src/remote/index.d.ts +0 -109
- package/dist/src/shared/index.d.ts +0 -66
- package/dist/src/type/config.d.ts +0 -115
- package/dist/src/type/index.d.ts +0 -3
- package/dist/src/type/plugin.d.ts +0 -35
- package/dist/src/type/preload.d.ts +0 -26
- package/dist/src/types.d.ts +0 -1
- package/dist/src/utils/env.d.ts +0 -3
- package/dist/src/utils/hooks/asyncHook.d.ts +0 -6
- package/dist/src/utils/hooks/asyncWaterfallHooks.d.ts +0 -10
- package/dist/src/utils/hooks/index.d.ts +0 -6
- package/dist/src/utils/hooks/pluginSystem.d.ts +0 -16
- package/dist/src/utils/hooks/syncHook.d.ts +0 -12
- package/dist/src/utils/hooks/syncWaterfallHook.d.ts +0 -9
- package/dist/src/utils/index.d.ts +0 -6
- package/dist/src/utils/load.d.ts +0 -11
- package/dist/src/utils/logger.d.ts +0 -6
- package/dist/src/utils/manifest.d.ts +0 -7
- package/dist/src/utils/plugin.d.ts +0 -3
- package/dist/src/utils/preload.d.ts +0 -6
- package/dist/src/utils/semver/compare.d.ts +0 -9
- package/dist/src/utils/semver/constants.d.ts +0 -10
- package/dist/src/utils/semver/index.d.ts +0 -2
- package/dist/src/utils/semver/parser.d.ts +0 -9
- package/dist/src/utils/semver/utils.d.ts +0 -11
- package/dist/src/utils/share.d.ts +0 -27
- package/dist/src/utils/tool.d.ts +0 -18
- package/dist/types.cjs.cjs +0 -3
- package/dist/types.cjs.cjs.map +0 -1
- package/dist/types.cjs.d.ts +0 -1
- package/dist/types.esm.js +0 -2
- package/dist/types.esm.js.map +0 -1
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/utils/hooks/syncHook.ts
|
|
3
|
+
var SyncHook = class {
|
|
4
|
+
constructor(type) {
|
|
5
|
+
this.type = "";
|
|
6
|
+
this.listeners = /* @__PURE__ */ new Set();
|
|
7
|
+
if (type) this.type = type;
|
|
8
|
+
}
|
|
9
|
+
on(fn) {
|
|
10
|
+
if (typeof fn === "function") this.listeners.add(fn);
|
|
11
|
+
}
|
|
12
|
+
once(fn) {
|
|
13
|
+
const self = this;
|
|
14
|
+
this.on(function wrapper(...args) {
|
|
15
|
+
self.remove(wrapper);
|
|
16
|
+
return fn.apply(null, args);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
emit(...data) {
|
|
20
|
+
let result;
|
|
21
|
+
if (this.listeners.size > 0) this.listeners.forEach((fn) => {
|
|
22
|
+
const nextResult = fn(...data);
|
|
23
|
+
if (nextResult !== void 0) result = nextResult;
|
|
24
|
+
});
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
remove(fn) {
|
|
28
|
+
this.listeners.delete(fn);
|
|
29
|
+
}
|
|
30
|
+
removeAll() {
|
|
31
|
+
this.listeners.clear();
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
//#endregion
|
|
36
|
+
exports.SyncHook = SyncHook;
|
|
37
|
+
//# sourceMappingURL=syncHook.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syncHook.cjs","names":[],"sources":["../../../src/utils/hooks/syncHook.ts"],"sourcesContent":["export type Callback<T, K> = (...args: ArgsType<T>) => K;\nexport type ArgsType<T> = T extends Array<any> ? T : Array<any>;\n\nexport class SyncHook<T, K> {\n type = '';\n listeners = new Set<Callback<T, K>>();\n\n constructor(type?: string) {\n if (type) {\n this.type = type;\n }\n }\n\n on(fn: Callback<T, K>): void {\n if (typeof fn === 'function') {\n this.listeners.add(fn);\n }\n }\n\n once(fn: Callback<T, K>): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n this.on(function wrapper(...args) {\n self.remove(wrapper);\n // eslint-disable-next-line prefer-spread\n return fn.apply(null, args);\n });\n }\n\n emit(...data: ArgsType<T>): void | K | Promise<any> {\n let result;\n if (this.listeners.size > 0) {\n // eslint-disable-next-line prefer-spread\n this.listeners.forEach((fn) => {\n const nextResult = fn(...data);\n if (nextResult !== undefined) {\n result = nextResult;\n }\n });\n }\n return result;\n }\n\n remove(fn: Callback<T, K>): void {\n this.listeners.delete(fn);\n }\n\n removeAll(): void {\n this.listeners.clear();\n }\n}\n"],"mappings":";;AAGA,IAAa,WAAb,MAA4B;CAI1B,YAAY,MAAe;cAHpB;mCACK,IAAI,KAAqB;AAGnC,MAAI,KACF,MAAK,OAAO;;CAIhB,GAAG,IAA0B;AAC3B,MAAI,OAAO,OAAO,WAChB,MAAK,UAAU,IAAI,GAAG;;CAI1B,KAAK,IAA0B;EAE7B,MAAM,OAAO;AACb,OAAK,GAAG,SAAS,QAAQ,GAAG,MAAM;AAChC,QAAK,OAAO,QAAQ;AAEpB,UAAO,GAAG,MAAM,MAAM,KAAK;IAC3B;;CAGJ,KAAK,GAAG,MAA4C;EAClD,IAAI;AACJ,MAAI,KAAK,UAAU,OAAO,EAExB,MAAK,UAAU,SAAS,OAAO;GAC7B,MAAM,aAAa,GAAG,GAAG,KAAK;AAC9B,OAAI,eAAe,OACjB,UAAS;IAEX;AAEJ,SAAO;;CAGT,OAAO,IAA0B;AAC/B,OAAK,UAAU,OAAO,GAAG;;CAG3B,YAAkB;AAChB,OAAK,UAAU,OAAO"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/utils/hooks/syncHook.d.ts
|
|
2
|
+
type Callback<T, K> = (...args: ArgsType<T>) => K;
|
|
3
|
+
type ArgsType<T> = T extends Array<any> ? T : Array<any>;
|
|
4
|
+
declare class SyncHook<T, K> {
|
|
5
|
+
type: string;
|
|
6
|
+
listeners: Set<Callback<T, K>>;
|
|
7
|
+
constructor(type?: string);
|
|
8
|
+
on(fn: Callback<T, K>): void;
|
|
9
|
+
once(fn: Callback<T, K>): void;
|
|
10
|
+
emit(...data: ArgsType<T>): void | K | Promise<any>;
|
|
11
|
+
remove(fn: Callback<T, K>): void;
|
|
12
|
+
removeAll(): void;
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { ArgsType, SyncHook };
|
|
16
|
+
//# sourceMappingURL=syncHook.d.ts.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
//#region src/utils/hooks/syncHook.ts
|
|
2
|
+
var SyncHook = class {
|
|
3
|
+
constructor(type) {
|
|
4
|
+
this.type = "";
|
|
5
|
+
this.listeners = /* @__PURE__ */ new Set();
|
|
6
|
+
if (type) this.type = type;
|
|
7
|
+
}
|
|
8
|
+
on(fn) {
|
|
9
|
+
if (typeof fn === "function") this.listeners.add(fn);
|
|
10
|
+
}
|
|
11
|
+
once(fn) {
|
|
12
|
+
const self = this;
|
|
13
|
+
this.on(function wrapper(...args) {
|
|
14
|
+
self.remove(wrapper);
|
|
15
|
+
return fn.apply(null, args);
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
emit(...data) {
|
|
19
|
+
let result;
|
|
20
|
+
if (this.listeners.size > 0) this.listeners.forEach((fn) => {
|
|
21
|
+
const nextResult = fn(...data);
|
|
22
|
+
if (nextResult !== void 0) result = nextResult;
|
|
23
|
+
});
|
|
24
|
+
return result;
|
|
25
|
+
}
|
|
26
|
+
remove(fn) {
|
|
27
|
+
this.listeners.delete(fn);
|
|
28
|
+
}
|
|
29
|
+
removeAll() {
|
|
30
|
+
this.listeners.clear();
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
//#endregion
|
|
35
|
+
export { SyncHook };
|
|
36
|
+
//# sourceMappingURL=syncHook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syncHook.js","names":[],"sources":["../../../src/utils/hooks/syncHook.ts"],"sourcesContent":["export type Callback<T, K> = (...args: ArgsType<T>) => K;\nexport type ArgsType<T> = T extends Array<any> ? T : Array<any>;\n\nexport class SyncHook<T, K> {\n type = '';\n listeners = new Set<Callback<T, K>>();\n\n constructor(type?: string) {\n if (type) {\n this.type = type;\n }\n }\n\n on(fn: Callback<T, K>): void {\n if (typeof fn === 'function') {\n this.listeners.add(fn);\n }\n }\n\n once(fn: Callback<T, K>): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n this.on(function wrapper(...args) {\n self.remove(wrapper);\n // eslint-disable-next-line prefer-spread\n return fn.apply(null, args);\n });\n }\n\n emit(...data: ArgsType<T>): void | K | Promise<any> {\n let result;\n if (this.listeners.size > 0) {\n // eslint-disable-next-line prefer-spread\n this.listeners.forEach((fn) => {\n const nextResult = fn(...data);\n if (nextResult !== undefined) {\n result = nextResult;\n }\n });\n }\n return result;\n }\n\n remove(fn: Callback<T, K>): void {\n this.listeners.delete(fn);\n }\n\n removeAll(): void {\n this.listeners.clear();\n }\n}\n"],"mappings":";AAGA,IAAa,WAAb,MAA4B;CAI1B,YAAY,MAAe;cAHpB;mCACK,IAAI,KAAqB;AAGnC,MAAI,KACF,MAAK,OAAO;;CAIhB,GAAG,IAA0B;AAC3B,MAAI,OAAO,OAAO,WAChB,MAAK,UAAU,IAAI,GAAG;;CAI1B,KAAK,IAA0B;EAE7B,MAAM,OAAO;AACb,OAAK,GAAG,SAAS,QAAQ,GAAG,MAAM;AAChC,QAAK,OAAO,QAAQ;AAEpB,UAAO,GAAG,MAAM,MAAM,KAAK;IAC3B;;CAGJ,KAAK,GAAG,MAA4C;EAClD,IAAI;AACJ,MAAI,KAAK,UAAU,OAAO,EAExB,MAAK,UAAU,SAAS,OAAO;GAC7B,MAAM,aAAa,GAAG,GAAG,KAAK;AAC9B,OAAI,eAAe,OACjB,UAAS;IAEX;AAEJ,SAAO;;CAGT,OAAO,IAA0B;AAC/B,OAAK,UAAU,OAAO,GAAG;;CAG3B,YAAkB;AAChB,OAAK,UAAU,OAAO"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
const require_logger = require('../logger.cjs');
|
|
2
|
+
const require_tool = require('../tool.cjs');
|
|
3
|
+
const require_syncHook = require('./syncHook.cjs');
|
|
4
|
+
|
|
5
|
+
//#region src/utils/hooks/syncWaterfallHook.ts
|
|
6
|
+
function checkReturnData(originalData, returnedData) {
|
|
7
|
+
if (!require_tool.isObject(returnedData)) return false;
|
|
8
|
+
if (originalData !== returnedData) {
|
|
9
|
+
for (const key in originalData) if (!(key in returnedData)) return false;
|
|
10
|
+
}
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
var SyncWaterfallHook = class extends require_syncHook.SyncHook {
|
|
14
|
+
constructor(type) {
|
|
15
|
+
super();
|
|
16
|
+
this.onerror = require_logger.error;
|
|
17
|
+
this.type = type;
|
|
18
|
+
}
|
|
19
|
+
emit(data) {
|
|
20
|
+
if (!require_tool.isObject(data)) require_logger.error(`The data for the "${this.type}" hook should be an object.`);
|
|
21
|
+
for (const fn of this.listeners) try {
|
|
22
|
+
const tempData = fn(data);
|
|
23
|
+
if (tempData === void 0) continue;
|
|
24
|
+
if (checkReturnData(data, tempData)) data = tempData;
|
|
25
|
+
else {
|
|
26
|
+
this.onerror(`A plugin returned an unacceptable value for the "${this.type}" type.`);
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
} catch (e) {
|
|
30
|
+
require_logger.warn(e);
|
|
31
|
+
this.onerror(e);
|
|
32
|
+
}
|
|
33
|
+
return data;
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
//#endregion
|
|
38
|
+
exports.SyncWaterfallHook = SyncWaterfallHook;
|
|
39
|
+
exports.checkReturnData = checkReturnData;
|
|
40
|
+
//# sourceMappingURL=syncWaterfallHook.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syncWaterfallHook.cjs","names":["isObject","SyncHook","error"],"sources":["../../../src/utils/hooks/syncWaterfallHook.ts"],"sourcesContent":["import { error, warn } from '../logger';\nimport { isObject } from '../tool';\nimport { SyncHook } from './syncHook';\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function checkReturnData(originalData: any, returnedData: any): boolean {\n if (!isObject(returnedData)) {\n return false;\n }\n if (originalData !== returnedData) {\n // eslint-disable-next-line no-restricted-syntax\n for (const key in originalData) {\n if (!(key in returnedData)) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport class SyncWaterfallHook<T extends Record<string, any>> extends SyncHook<\n [T],\n T | void\n> {\n onerror: (errMsg: string | Error | unknown) => void = error;\n\n constructor(type: string) {\n super();\n this.type = type;\n }\n\n override emit(data: T): T {\n if (!isObject(data)) {\n error(`The data for the \"${this.type}\" hook should be an object.`);\n }\n for (const fn of this.listeners) {\n try {\n const tempData = fn(data);\n if (tempData === undefined) {\n continue;\n }\n if (checkReturnData(data, tempData)) {\n data = tempData;\n } else {\n this.onerror(\n `A plugin returned an unacceptable value for the \"${this.type}\" type.`,\n );\n break;\n }\n } catch (e) {\n warn(e);\n this.onerror(e);\n }\n }\n return data;\n }\n}\n"],"mappings":";;;;;AAKA,SAAgB,gBAAgB,cAAmB,cAA4B;AAC7E,KAAI,CAACA,sBAAS,aAAa,CACzB,QAAO;AAET,KAAI,iBAAiB,cAEnB;OAAK,MAAM,OAAO,aAChB,KAAI,EAAE,OAAO,cACX,QAAO;;AAIb,QAAO;;AAGT,IAAa,oBAAb,cAAsEC,0BAGpE;CAGA,YAAY,MAAc;AACxB,SAAO;iBAH6CC;AAIpD,OAAK,OAAO;;CAGd,AAAS,KAAK,MAAY;AACxB,MAAI,CAACF,sBAAS,KAAK,CACjB,sBAAM,qBAAqB,KAAK,KAAK,6BAA6B;AAEpE,OAAK,MAAM,MAAM,KAAK,UACpB,KAAI;GACF,MAAM,WAAW,GAAG,KAAK;AACzB,OAAI,aAAa,OACf;AAEF,OAAI,gBAAgB,MAAM,SAAS,CACjC,QAAO;QACF;AACL,SAAK,QACH,oDAAoD,KAAK,KAAK,SAC/D;AACD;;WAEK,GAAG;AACV,uBAAK,EAAE;AACP,QAAK,QAAQ,EAAE;;AAGnB,SAAO"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { SyncHook } from "./syncHook.js";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/hooks/syncWaterfallHook.d.ts
|
|
4
|
+
declare class SyncWaterfallHook<T extends Record<string, any>> extends SyncHook<[T], T | void> {
|
|
5
|
+
onerror: (errMsg: string | Error | unknown) => void;
|
|
6
|
+
constructor(type: string);
|
|
7
|
+
emit(data: T): T;
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { SyncWaterfallHook };
|
|
11
|
+
//# sourceMappingURL=syncWaterfallHook.d.ts.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { error, warn } from "../logger.js";
|
|
2
|
+
import { isObject } from "../tool.js";
|
|
3
|
+
import { SyncHook } from "./syncHook.js";
|
|
4
|
+
|
|
5
|
+
//#region src/utils/hooks/syncWaterfallHook.ts
|
|
6
|
+
function checkReturnData(originalData, returnedData) {
|
|
7
|
+
if (!isObject(returnedData)) return false;
|
|
8
|
+
if (originalData !== returnedData) {
|
|
9
|
+
for (const key in originalData) if (!(key in returnedData)) return false;
|
|
10
|
+
}
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
var SyncWaterfallHook = class extends SyncHook {
|
|
14
|
+
constructor(type) {
|
|
15
|
+
super();
|
|
16
|
+
this.onerror = error;
|
|
17
|
+
this.type = type;
|
|
18
|
+
}
|
|
19
|
+
emit(data) {
|
|
20
|
+
if (!isObject(data)) error(`The data for the "${this.type}" hook should be an object.`);
|
|
21
|
+
for (const fn of this.listeners) try {
|
|
22
|
+
const tempData = fn(data);
|
|
23
|
+
if (tempData === void 0) continue;
|
|
24
|
+
if (checkReturnData(data, tempData)) data = tempData;
|
|
25
|
+
else {
|
|
26
|
+
this.onerror(`A plugin returned an unacceptable value for the "${this.type}" type.`);
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
} catch (e) {
|
|
30
|
+
warn(e);
|
|
31
|
+
this.onerror(e);
|
|
32
|
+
}
|
|
33
|
+
return data;
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
//#endregion
|
|
38
|
+
export { SyncWaterfallHook, checkReturnData };
|
|
39
|
+
//# sourceMappingURL=syncWaterfallHook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syncWaterfallHook.js","names":[],"sources":["../../../src/utils/hooks/syncWaterfallHook.ts"],"sourcesContent":["import { error, warn } from '../logger';\nimport { isObject } from '../tool';\nimport { SyncHook } from './syncHook';\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function checkReturnData(originalData: any, returnedData: any): boolean {\n if (!isObject(returnedData)) {\n return false;\n }\n if (originalData !== returnedData) {\n // eslint-disable-next-line no-restricted-syntax\n for (const key in originalData) {\n if (!(key in returnedData)) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport class SyncWaterfallHook<T extends Record<string, any>> extends SyncHook<\n [T],\n T | void\n> {\n onerror: (errMsg: string | Error | unknown) => void = error;\n\n constructor(type: string) {\n super();\n this.type = type;\n }\n\n override emit(data: T): T {\n if (!isObject(data)) {\n error(`The data for the \"${this.type}\" hook should be an object.`);\n }\n for (const fn of this.listeners) {\n try {\n const tempData = fn(data);\n if (tempData === undefined) {\n continue;\n }\n if (checkReturnData(data, tempData)) {\n data = tempData;\n } else {\n this.onerror(\n `A plugin returned an unacceptable value for the \"${this.type}\" type.`,\n );\n break;\n }\n } catch (e) {\n warn(e);\n this.onerror(e);\n }\n }\n return data;\n }\n}\n"],"mappings":";;;;;AAKA,SAAgB,gBAAgB,cAAmB,cAA4B;AAC7E,KAAI,CAAC,SAAS,aAAa,CACzB,QAAO;AAET,KAAI,iBAAiB,cAEnB;OAAK,MAAM,OAAO,aAChB,KAAI,EAAE,OAAO,cACX,QAAO;;AAIb,QAAO;;AAGT,IAAa,oBAAb,cAAsE,SAGpE;CAGA,YAAY,MAAc;AACxB,SAAO;iBAH6C;AAIpD,OAAK,OAAO;;CAGd,AAAS,KAAK,MAAY;AACxB,MAAI,CAAC,SAAS,KAAK,CACjB,OAAM,qBAAqB,KAAK,KAAK,6BAA6B;AAEpE,OAAK,MAAM,MAAM,KAAK,UACpB,KAAI;GACF,MAAM,WAAW,GAAG,KAAK;AACzB,OAAI,aAAa,OACf;AAEF,OAAI,gBAAgB,MAAM,SAAS,CACjC,QAAO;QACF;AACL,SAAK,QACH,oDAAoD,KAAK,KAAK,SAC/D;AACD;;WAEK,GAAG;AACV,QAAK,EAAE;AACP,QAAK,QAAQ,EAAE;;AAGnB,SAAO"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const require_logger = require('./logger.cjs');
|
|
2
|
+
const require_tool = require('./tool.cjs');
|
|
3
|
+
const require_env = require('./env.cjs');
|
|
4
|
+
const require_manifest = require('./manifest.cjs');
|
|
5
|
+
const require_plugin = require('./plugin.cjs');
|
|
6
|
+
const require_load = require('./load.cjs');
|
|
7
|
+
const require_context = require('./context.cjs');
|
|
8
|
+
let _module_federation_sdk = require("@module-federation/sdk");
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { assert, error, logger, warn } from "./logger.js";
|
|
2
|
+
import { addUniqueItem, arrayOptions, getFMId, getRemoteEntryInfoFromSnapshot, isObject, isPlainObject, isPureRemoteEntry, isRemoteInfoWithEntry, isStaticResourcesEqual, objectToString, processModuleAlias, safeWrapper } from "./tool.js";
|
|
3
|
+
import { getBuilderId } from "./env.js";
|
|
4
|
+
import { composeRemoteRequestId, matchRemote, matchRemoteWithNameAndExpose } from "./manifest.js";
|
|
5
|
+
import { registerPlugins } from "./plugin.js";
|
|
6
|
+
import { getRemoteEntry, getRemoteEntryUniqueKey, getRemoteInfo, isEsmRemoteType } from "./load.js";
|
|
7
|
+
import { optionsToMFContext } from "./context.js";
|
|
8
|
+
|
|
9
|
+
export { };
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
const require_logger = require('./logger.cjs');
|
|
2
|
+
const require_global = require('../global.cjs');
|
|
3
|
+
const require_constant = require('../constant.cjs');
|
|
4
|
+
let _module_federation_sdk = require("@module-federation/sdk");
|
|
5
|
+
let _module_federation_error_codes = require("@module-federation/error-codes");
|
|
6
|
+
|
|
7
|
+
//#region src/utils/load.ts
|
|
8
|
+
const importCallback = ".then(callbacks[0]).catch(callbacks[1])";
|
|
9
|
+
const remoteEntryLoadingOrigins = /* @__PURE__ */ new WeakMap();
|
|
10
|
+
const esmRemoteEntryLoadErrorMessages = [
|
|
11
|
+
"Failed to fetch dynamically imported module",
|
|
12
|
+
"Importing a module script failed",
|
|
13
|
+
"error loading dynamically imported module"
|
|
14
|
+
];
|
|
15
|
+
function isEsmRemoteEntryLoadError(err) {
|
|
16
|
+
if (!(err instanceof TypeError)) return false;
|
|
17
|
+
return esmRemoteEntryLoadErrorMessages.some((loadErrorMessage) => err.message.includes(loadErrorMessage));
|
|
18
|
+
}
|
|
19
|
+
function isEsmRemoteType(type) {
|
|
20
|
+
return type === "esm" || type === "module";
|
|
21
|
+
}
|
|
22
|
+
async function loadEsmEntry({ entry, remoteEntryExports, name, getEntryUrl }) {
|
|
23
|
+
return new Promise((resolve, reject) => {
|
|
24
|
+
const rejectEntry = (loadError) => {
|
|
25
|
+
if (isEsmRemoteEntryLoadError(loadError)) {
|
|
26
|
+
const originalMsg = loadError instanceof Error ? loadError.message : String(loadError);
|
|
27
|
+
try {
|
|
28
|
+
require_logger.error(_module_federation_error_codes.RUNTIME_008, _module_federation_error_codes.runtimeDescMap, {
|
|
29
|
+
remoteName: name,
|
|
30
|
+
resourceUrl: url
|
|
31
|
+
}, originalMsg);
|
|
32
|
+
} catch (runtimeError) {
|
|
33
|
+
reject(runtimeError);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
reject(loadError);
|
|
38
|
+
};
|
|
39
|
+
const url = getEntryUrl ? getEntryUrl(entry) : entry;
|
|
40
|
+
try {
|
|
41
|
+
if (!remoteEntryExports) if (typeof FEDERATION_ALLOW_NEW_FUNCTION !== "undefined") new Function("callbacks", `import("${url}")${importCallback}`)([resolve, rejectEntry]);
|
|
42
|
+
else import(
|
|
43
|
+
/* webpackIgnore: true */
|
|
44
|
+
/* @vite-ignore */
|
|
45
|
+
url
|
|
46
|
+
).then(resolve).catch(rejectEntry);
|
|
47
|
+
else resolve(remoteEntryExports);
|
|
48
|
+
} catch (e) {
|
|
49
|
+
require_logger.error(`Failed to load ESM entry from "${url}". ${e instanceof Error ? e.message : String(e)}`);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
async function loadSystemJsEntry({ entry, remoteEntryExports }) {
|
|
54
|
+
return new Promise((resolve, reject) => {
|
|
55
|
+
try {
|
|
56
|
+
if (!remoteEntryExports) if (typeof __system_context__ === "undefined") System.import(entry).then(resolve).catch(reject);
|
|
57
|
+
else new Function("callbacks", `System.import("${entry}")${importCallback}`)([resolve, reject]);
|
|
58
|
+
else resolve(remoteEntryExports);
|
|
59
|
+
} catch (e) {
|
|
60
|
+
require_logger.error(`Failed to load SystemJS entry from "${entry}". ${e instanceof Error ? e.message : String(e)}`);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
function handleRemoteEntryLoaded(name, globalName, entry) {
|
|
65
|
+
const { remoteEntryKey, entryExports } = require_global.getRemoteEntryExports(name, globalName);
|
|
66
|
+
if (!entryExports) require_logger.error(_module_federation_error_codes.RUNTIME_001, _module_federation_error_codes.runtimeDescMap, {
|
|
67
|
+
remoteName: name,
|
|
68
|
+
remoteEntryUrl: entry,
|
|
69
|
+
remoteEntryKey
|
|
70
|
+
});
|
|
71
|
+
return entryExports;
|
|
72
|
+
}
|
|
73
|
+
async function loadEntryScript({ name, globalName, entry, remoteInfo, loaderHook, getEntryUrl, resourceContext }) {
|
|
74
|
+
const { entryExports: remoteEntryExports } = require_global.getRemoteEntryExports(name, globalName);
|
|
75
|
+
if (remoteEntryExports) return remoteEntryExports;
|
|
76
|
+
const url = getEntryUrl ? getEntryUrl(entry) : entry;
|
|
77
|
+
return (0, _module_federation_sdk.loadScript)(url, {
|
|
78
|
+
attrs: {},
|
|
79
|
+
createScriptHook: (url, attrs) => {
|
|
80
|
+
const res = loaderHook.lifecycle.createScript.emit({
|
|
81
|
+
url,
|
|
82
|
+
attrs,
|
|
83
|
+
remoteInfo,
|
|
84
|
+
resourceContext: resourceContext ? {
|
|
85
|
+
...resourceContext,
|
|
86
|
+
url
|
|
87
|
+
} : void 0
|
|
88
|
+
});
|
|
89
|
+
if (!res) return;
|
|
90
|
+
if (res instanceof HTMLScriptElement) return res;
|
|
91
|
+
if ("script" in res || "timeout" in res) return res;
|
|
92
|
+
}
|
|
93
|
+
}).then(() => {
|
|
94
|
+
return handleRemoteEntryLoaded(name, globalName, entry);
|
|
95
|
+
}, (loadError) => {
|
|
96
|
+
const originalMsg = loadError instanceof Error ? loadError.message : String(loadError);
|
|
97
|
+
require_logger.error(_module_federation_error_codes.RUNTIME_008, _module_federation_error_codes.runtimeDescMap, {
|
|
98
|
+
remoteName: name,
|
|
99
|
+
resourceUrl: url
|
|
100
|
+
}, originalMsg);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
async function loadEntryDom({ remoteInfo, remoteEntryExports, loaderHook, getEntryUrl, resourceContext }) {
|
|
104
|
+
const { entry, entryGlobalName: globalName, name, type } = remoteInfo;
|
|
105
|
+
if (isEsmRemoteType(type)) return loadEsmEntry({
|
|
106
|
+
entry,
|
|
107
|
+
remoteEntryExports,
|
|
108
|
+
name,
|
|
109
|
+
getEntryUrl
|
|
110
|
+
});
|
|
111
|
+
if (type === "system") return loadSystemJsEntry({
|
|
112
|
+
entry,
|
|
113
|
+
remoteEntryExports
|
|
114
|
+
});
|
|
115
|
+
return loadEntryScript({
|
|
116
|
+
entry,
|
|
117
|
+
globalName,
|
|
118
|
+
name,
|
|
119
|
+
remoteInfo,
|
|
120
|
+
loaderHook,
|
|
121
|
+
getEntryUrl,
|
|
122
|
+
resourceContext
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
async function loadEntryNode({ remoteInfo, loaderHook, resourceContext }) {
|
|
126
|
+
const { entry, entryGlobalName: globalName, name, type } = remoteInfo;
|
|
127
|
+
const { entryExports: remoteEntryExports } = require_global.getRemoteEntryExports(name, globalName);
|
|
128
|
+
if (remoteEntryExports) return remoteEntryExports;
|
|
129
|
+
return (0, _module_federation_sdk.loadScriptNode)(entry, {
|
|
130
|
+
attrs: {
|
|
131
|
+
name,
|
|
132
|
+
globalName,
|
|
133
|
+
type
|
|
134
|
+
},
|
|
135
|
+
loaderHook: { createScriptHook: (url, attrs = {}) => {
|
|
136
|
+
const res = loaderHook.lifecycle.createScript.emit({
|
|
137
|
+
url,
|
|
138
|
+
attrs,
|
|
139
|
+
remoteInfo,
|
|
140
|
+
resourceContext: resourceContext ? {
|
|
141
|
+
...resourceContext,
|
|
142
|
+
url
|
|
143
|
+
} : void 0
|
|
144
|
+
});
|
|
145
|
+
if (!res) return;
|
|
146
|
+
if ("url" in res) return res;
|
|
147
|
+
} }
|
|
148
|
+
}).then(() => {
|
|
149
|
+
return handleRemoteEntryLoaded(name, globalName, entry);
|
|
150
|
+
}).catch((e) => {
|
|
151
|
+
require_logger.error(`Failed to load Node.js entry for remote "${name}" from "${entry}". ${e instanceof Error ? e.message : String(e)}`);
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
function getRemoteEntryUniqueKey(remoteInfo) {
|
|
155
|
+
const { entry, name } = remoteInfo;
|
|
156
|
+
return (0, _module_federation_sdk.composeKeyWithSeparator)(name, entry);
|
|
157
|
+
}
|
|
158
|
+
async function getRemoteEntry(params) {
|
|
159
|
+
const { origin, remoteEntryExports, remoteInfo, getEntryUrl, resourceContext, _inErrorHandling = false } = params;
|
|
160
|
+
const uniqueKey = getRemoteEntryUniqueKey(remoteInfo);
|
|
161
|
+
if (remoteEntryExports) {
|
|
162
|
+
await origin.loaderHook.lifecycle.afterLoadEntry.emit({
|
|
163
|
+
origin,
|
|
164
|
+
remoteInfo,
|
|
165
|
+
remoteEntryExports,
|
|
166
|
+
resourceContext,
|
|
167
|
+
cached: true
|
|
168
|
+
});
|
|
169
|
+
return remoteEntryExports;
|
|
170
|
+
}
|
|
171
|
+
if (!require_global.globalLoading[uniqueKey]) {
|
|
172
|
+
const loadEntryHook = origin.remoteHandler.hooks.lifecycle.loadEntry;
|
|
173
|
+
const loaderHook = origin.loaderHook;
|
|
174
|
+
const loading = loadEntryHook.emit({
|
|
175
|
+
origin,
|
|
176
|
+
loaderHook,
|
|
177
|
+
remoteInfo,
|
|
178
|
+
remoteEntryExports,
|
|
179
|
+
resourceContext
|
|
180
|
+
}).then((res) => {
|
|
181
|
+
if (res) return res;
|
|
182
|
+
return (typeof ENV_TARGET !== "undefined" ? ENV_TARGET === "web" : _module_federation_sdk.isBrowserEnvValue) ? loadEntryDom({
|
|
183
|
+
remoteInfo,
|
|
184
|
+
remoteEntryExports,
|
|
185
|
+
loaderHook,
|
|
186
|
+
getEntryUrl,
|
|
187
|
+
resourceContext
|
|
188
|
+
}) : loadEntryNode({
|
|
189
|
+
remoteInfo,
|
|
190
|
+
loaderHook,
|
|
191
|
+
resourceContext
|
|
192
|
+
});
|
|
193
|
+
}).then(async (res) => {
|
|
194
|
+
await origin.loaderHook.lifecycle.afterLoadEntry.emit({
|
|
195
|
+
origin,
|
|
196
|
+
remoteInfo,
|
|
197
|
+
remoteEntryExports: res,
|
|
198
|
+
resourceContext
|
|
199
|
+
});
|
|
200
|
+
return res;
|
|
201
|
+
}).catch(async (loadError) => {
|
|
202
|
+
const isScriptExecutionError = loadError instanceof Error && loadError.message.includes("ScriptExecutionError");
|
|
203
|
+
if (loadError instanceof Error && loadError.message.includes(_module_federation_error_codes.RUNTIME_008) && !isScriptExecutionError && !_inErrorHandling) {
|
|
204
|
+
const wrappedGetRemoteEntry = (params) => {
|
|
205
|
+
return getRemoteEntry({
|
|
206
|
+
...params,
|
|
207
|
+
_inErrorHandling: true
|
|
208
|
+
});
|
|
209
|
+
};
|
|
210
|
+
const recoveredRemoteEntryExports = await origin.loaderHook.lifecycle.loadEntryError.emit({
|
|
211
|
+
getRemoteEntry: wrappedGetRemoteEntry,
|
|
212
|
+
origin,
|
|
213
|
+
remoteInfo,
|
|
214
|
+
remoteEntryExports,
|
|
215
|
+
globalLoading: require_global.globalLoading,
|
|
216
|
+
uniqueKey
|
|
217
|
+
});
|
|
218
|
+
if (recoveredRemoteEntryExports) {
|
|
219
|
+
await origin.loaderHook.lifecycle.afterLoadEntry.emit({
|
|
220
|
+
origin,
|
|
221
|
+
remoteInfo,
|
|
222
|
+
remoteEntryExports: recoveredRemoteEntryExports,
|
|
223
|
+
resourceContext,
|
|
224
|
+
error: loadError,
|
|
225
|
+
recovered: true
|
|
226
|
+
});
|
|
227
|
+
return recoveredRemoteEntryExports;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
await origin.loaderHook.lifecycle.afterLoadEntry.emit({
|
|
231
|
+
origin,
|
|
232
|
+
remoteInfo,
|
|
233
|
+
resourceContext,
|
|
234
|
+
error: loadError
|
|
235
|
+
});
|
|
236
|
+
throw loadError;
|
|
237
|
+
});
|
|
238
|
+
require_global.globalLoading[uniqueKey] = loading;
|
|
239
|
+
loading.then(void 0, () => {
|
|
240
|
+
if (require_global.globalLoading[uniqueKey] === loading) delete require_global.globalLoading[uniqueKey];
|
|
241
|
+
});
|
|
242
|
+
remoteEntryLoadingOrigins.set(loading, origin);
|
|
243
|
+
}
|
|
244
|
+
const remoteEntryLoading = require_global.globalLoading[uniqueKey];
|
|
245
|
+
if (remoteEntryLoadingOrigins.get(remoteEntryLoading) !== origin) try {
|
|
246
|
+
const result = await remoteEntryLoading;
|
|
247
|
+
await origin.loaderHook.lifecycle.afterLoadEntry.emit({
|
|
248
|
+
origin,
|
|
249
|
+
remoteInfo,
|
|
250
|
+
remoteEntryExports: result,
|
|
251
|
+
resourceContext
|
|
252
|
+
});
|
|
253
|
+
return result;
|
|
254
|
+
} catch (loadError) {
|
|
255
|
+
await origin.loaderHook.lifecycle.afterLoadEntry.emit({
|
|
256
|
+
origin,
|
|
257
|
+
remoteInfo,
|
|
258
|
+
resourceContext,
|
|
259
|
+
error: loadError
|
|
260
|
+
});
|
|
261
|
+
throw loadError;
|
|
262
|
+
}
|
|
263
|
+
return remoteEntryLoading;
|
|
264
|
+
}
|
|
265
|
+
function getRemoteInfo(remote) {
|
|
266
|
+
return {
|
|
267
|
+
...remote,
|
|
268
|
+
entry: "entry" in remote ? remote.entry : "",
|
|
269
|
+
type: remote.type || require_constant.DEFAULT_REMOTE_TYPE,
|
|
270
|
+
entryGlobalName: remote.entryGlobalName || remote.name,
|
|
271
|
+
shareScope: remote.shareScope || require_constant.DEFAULT_SCOPE
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
//#endregion
|
|
276
|
+
exports.getRemoteEntry = getRemoteEntry;
|
|
277
|
+
exports.getRemoteEntryUniqueKey = getRemoteEntryUniqueKey;
|
|
278
|
+
exports.getRemoteInfo = getRemoteInfo;
|
|
279
|
+
exports.isEsmRemoteType = isEsmRemoteType;
|
|
280
|
+
//# sourceMappingURL=load.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load.cjs","names":["RUNTIME_008","runtimeDescMap","getRemoteEntryExports","RUNTIME_001","globalLoading","isBrowserEnvValue","DEFAULT_REMOTE_TYPE","DEFAULT_SCOPE"],"sources":["../../src/utils/load.ts"],"sourcesContent":["import {\n loadScript,\n loadScriptNode,\n composeKeyWithSeparator,\n isBrowserEnvValue,\n} from '@module-federation/sdk';\nimport { DEFAULT_REMOTE_TYPE, DEFAULT_SCOPE } from '../constant';\nimport { ModuleFederation } from '../core';\nimport { globalLoading, getRemoteEntryExports } from '../global';\nimport {\n Remote,\n RemoteEntryExports,\n RemoteInfo,\n ResourceLoadContext,\n} from '../type';\nimport { assert, error } from './logger';\nimport {\n RUNTIME_001,\n RUNTIME_008,\n runtimeDescMap,\n} from '@module-federation/error-codes';\n\n// Declare the ENV_TARGET constant that will be defined by DefinePlugin\ndeclare const ENV_TARGET: 'web' | 'node';\nconst importCallback = '.then(callbacks[0]).catch(callbacks[1])';\nconst remoteEntryLoadingOrigins = new WeakMap<\n Promise<RemoteEntryExports | void>,\n ModuleFederation\n>();\n\nconst esmRemoteEntryLoadErrorMessages = [\n 'Failed to fetch dynamically imported module',\n 'Importing a module script failed',\n 'error loading dynamically imported module',\n];\n\nfunction isEsmRemoteEntryLoadError(err: unknown): boolean {\n if (!(err instanceof TypeError)) {\n return false;\n }\n\n return esmRemoteEntryLoadErrorMessages.some((loadErrorMessage) =>\n err.message.includes(loadErrorMessage),\n );\n}\n\nexport function isEsmRemoteType(type: RemoteInfo['type']): boolean {\n return type === 'esm' || type === 'module';\n}\n\nasync function loadEsmEntry({\n entry,\n remoteEntryExports,\n name,\n getEntryUrl,\n}: {\n entry: string;\n remoteEntryExports: RemoteEntryExports | undefined;\n name: string;\n getEntryUrl?: (url: string) => string;\n}): Promise<RemoteEntryExports> {\n return new Promise<RemoteEntryExports>((resolve, reject) => {\n const rejectEntry = (loadError: unknown) => {\n if (isEsmRemoteEntryLoadError(loadError)) {\n const originalMsg =\n loadError instanceof Error ? loadError.message : String(loadError);\n try {\n error(\n RUNTIME_008,\n runtimeDescMap,\n {\n remoteName: name,\n resourceUrl: url,\n },\n originalMsg,\n );\n } catch (runtimeError) {\n reject(runtimeError);\n return;\n }\n }\n\n reject(loadError);\n };\n\n const url = getEntryUrl ? getEntryUrl(entry) : entry;\n try {\n if (!remoteEntryExports) {\n if (typeof FEDERATION_ALLOW_NEW_FUNCTION !== 'undefined') {\n new Function('callbacks', `import(\"${url}\")${importCallback}`)([\n resolve,\n rejectEntry,\n ]);\n } else {\n import(/* webpackIgnore: true */ /* @vite-ignore */ url)\n .then(resolve)\n .catch(rejectEntry);\n }\n } else {\n resolve(remoteEntryExports);\n }\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n error(`Failed to load ESM entry from \"${url}\". ${msg}`);\n }\n });\n}\n\nasync function loadSystemJsEntry({\n entry,\n remoteEntryExports,\n}: {\n entry: string;\n remoteEntryExports: RemoteEntryExports | undefined;\n}): Promise<RemoteEntryExports> {\n return new Promise<RemoteEntryExports>((resolve, reject) => {\n try {\n if (!remoteEntryExports) {\n //@ts-ignore\n if (typeof __system_context__ === 'undefined') {\n //@ts-ignore\n System.import(entry).then(resolve).catch(reject);\n } else {\n new Function(\n 'callbacks',\n `System.import(\"${entry}\")${importCallback}`,\n )([resolve, reject]);\n }\n } else {\n resolve(remoteEntryExports);\n }\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n error(`Failed to load SystemJS entry from \"${entry}\". ${msg}`);\n }\n });\n}\n\nfunction handleRemoteEntryLoaded(\n name: string,\n globalName: string,\n entry: string,\n): RemoteEntryExports {\n const { remoteEntryKey, entryExports } = getRemoteEntryExports(\n name,\n globalName,\n );\n\n if (!entryExports) {\n error(RUNTIME_001, runtimeDescMap, {\n remoteName: name,\n remoteEntryUrl: entry,\n remoteEntryKey,\n });\n }\n\n return entryExports;\n}\n\nasync function loadEntryScript({\n name,\n globalName,\n entry,\n remoteInfo,\n loaderHook,\n getEntryUrl,\n resourceContext,\n}: {\n name: string;\n globalName: string;\n entry: string;\n remoteInfo: RemoteInfo;\n loaderHook: ModuleFederation['loaderHook'];\n getEntryUrl?: (url: string) => string;\n resourceContext?: ResourceLoadContext;\n}): Promise<RemoteEntryExports> {\n const { entryExports: remoteEntryExports } = getRemoteEntryExports(\n name,\n globalName,\n );\n\n if (remoteEntryExports) {\n return remoteEntryExports;\n }\n\n // if getEntryUrl is passed, use the getEntryUrl to get the entry url\n const url = getEntryUrl ? getEntryUrl(entry) : entry;\n return loadScript(url, {\n attrs: {},\n createScriptHook: (url, attrs) => {\n const res = loaderHook.lifecycle.createScript.emit({\n url,\n attrs,\n remoteInfo,\n resourceContext: resourceContext\n ? {\n ...resourceContext,\n url,\n }\n : undefined,\n });\n\n if (!res) return;\n\n if (res instanceof HTMLScriptElement) {\n return res;\n }\n\n if ('script' in res || 'timeout' in res) {\n return res;\n }\n\n return;\n },\n }).then(\n () => {\n // loadScript resolved: script was fetched, executed without throwing, and\n // did not trigger a ScriptExecutionError listener. Now verify the global was registered.\n return handleRemoteEntryLoaded(name, globalName, entry);\n },\n (loadError: unknown) => {\n // loadScript rejected — one of three causes, all with descriptive messages:\n // ScriptNetworkError — URL unreachable, 404, CORS, etc.\n // ScriptExecutionError — script fetched OK but IIFE threw during execution\n // timeout — script took too long to load\n // Errors thrown inside handleRemoteEntryLoaded above are NOT caught here.\n const originalMsg =\n loadError instanceof Error ? loadError.message : String(loadError);\n error(\n RUNTIME_008,\n runtimeDescMap,\n {\n remoteName: name,\n resourceUrl: url,\n },\n originalMsg,\n );\n },\n );\n}\nasync function loadEntryDom({\n remoteInfo,\n remoteEntryExports,\n loaderHook,\n getEntryUrl,\n resourceContext,\n}: {\n remoteInfo: RemoteInfo;\n remoteEntryExports?: RemoteEntryExports;\n loaderHook: ModuleFederation['loaderHook'];\n getEntryUrl?: (url: string) => string;\n resourceContext?: ResourceLoadContext;\n}) {\n const { entry, entryGlobalName: globalName, name, type } = remoteInfo;\n if (isEsmRemoteType(type)) {\n return loadEsmEntry({ entry, remoteEntryExports, name, getEntryUrl });\n }\n\n if (type === 'system') {\n return loadSystemJsEntry({ entry, remoteEntryExports });\n }\n\n return loadEntryScript({\n entry,\n globalName,\n name,\n remoteInfo,\n loaderHook,\n getEntryUrl,\n resourceContext,\n });\n}\n\nasync function loadEntryNode({\n remoteInfo,\n loaderHook,\n resourceContext,\n}: {\n remoteInfo: RemoteInfo;\n loaderHook: ModuleFederation['loaderHook'];\n resourceContext?: ResourceLoadContext;\n}) {\n const { entry, entryGlobalName: globalName, name, type } = remoteInfo;\n const { entryExports: remoteEntryExports } = getRemoteEntryExports(\n name,\n globalName,\n );\n\n if (remoteEntryExports) {\n return remoteEntryExports;\n }\n\n return loadScriptNode(entry, {\n attrs: { name, globalName, type },\n loaderHook: {\n createScriptHook: (url: string, attrs: Record<string, any> = {}) => {\n const res = loaderHook.lifecycle.createScript.emit({\n url,\n attrs,\n remoteInfo,\n resourceContext: resourceContext\n ? {\n ...resourceContext,\n url,\n }\n : undefined,\n });\n\n if (!res) return;\n\n if ('url' in res) {\n return res;\n }\n\n return;\n },\n },\n })\n .then(() => {\n return handleRemoteEntryLoaded(name, globalName, entry);\n })\n .catch((e) => {\n const msg = e instanceof Error ? e.message : String(e);\n error(\n `Failed to load Node.js entry for remote \"${name}\" from \"${entry}\". ${msg}`,\n );\n });\n}\n\nexport function getRemoteEntryUniqueKey(remoteInfo: RemoteInfo): string {\n const { entry, name } = remoteInfo;\n return composeKeyWithSeparator(name, entry);\n}\n\nexport async function getRemoteEntry(params: {\n origin: ModuleFederation;\n remoteInfo: RemoteInfo;\n remoteEntryExports?: RemoteEntryExports | undefined;\n getEntryUrl?: (url: string) => string;\n _inErrorHandling?: boolean; // Add flag to prevent recursion\n resourceContext?: ResourceLoadContext;\n}): Promise<RemoteEntryExports | false | void> {\n const {\n origin,\n remoteEntryExports,\n remoteInfo,\n getEntryUrl,\n resourceContext,\n _inErrorHandling = false,\n } = params;\n const uniqueKey = getRemoteEntryUniqueKey(remoteInfo);\n\n if (remoteEntryExports) {\n await origin.loaderHook.lifecycle.afterLoadEntry.emit({\n origin,\n remoteInfo,\n remoteEntryExports,\n resourceContext,\n cached: true,\n });\n return remoteEntryExports;\n }\n\n if (!globalLoading[uniqueKey]) {\n const loadEntryHook = origin.remoteHandler.hooks.lifecycle.loadEntry;\n const loaderHook = origin.loaderHook;\n const loading = loadEntryHook\n .emit({\n origin,\n loaderHook,\n remoteInfo,\n remoteEntryExports,\n resourceContext,\n })\n .then((res) => {\n if (res) {\n return res;\n }\n const isWebEnvironment =\n typeof ENV_TARGET !== 'undefined'\n ? ENV_TARGET === 'web'\n : isBrowserEnvValue;\n\n return isWebEnvironment\n ? loadEntryDom({\n remoteInfo,\n remoteEntryExports,\n loaderHook,\n getEntryUrl,\n resourceContext,\n })\n : loadEntryNode({ remoteInfo, loaderHook, resourceContext });\n })\n .then(async (res) => {\n await origin.loaderHook.lifecycle.afterLoadEntry.emit({\n origin,\n remoteInfo,\n remoteEntryExports: res,\n resourceContext,\n });\n return res;\n })\n .catch(async (loadError) => {\n const isScriptExecutionError =\n loadError instanceof Error &&\n loadError.message.includes('ScriptExecutionError');\n const isScriptLoadError =\n loadError instanceof Error &&\n loadError.message.includes(RUNTIME_008) &&\n !isScriptExecutionError;\n\n if (isScriptLoadError && !_inErrorHandling) {\n const wrappedGetRemoteEntry = (\n params: Parameters<typeof getRemoteEntry>[0],\n ) => {\n return getRemoteEntry({ ...params, _inErrorHandling: true });\n };\n\n const recoveredRemoteEntryExports =\n await origin.loaderHook.lifecycle.loadEntryError.emit({\n getRemoteEntry: wrappedGetRemoteEntry,\n origin,\n remoteInfo,\n remoteEntryExports,\n globalLoading,\n uniqueKey,\n });\n\n if (recoveredRemoteEntryExports) {\n await origin.loaderHook.lifecycle.afterLoadEntry.emit({\n origin,\n remoteInfo,\n remoteEntryExports: recoveredRemoteEntryExports,\n resourceContext,\n error: loadError,\n recovered: true,\n });\n return recoveredRemoteEntryExports;\n }\n }\n\n await origin.loaderHook.lifecycle.afterLoadEntry.emit({\n origin,\n remoteInfo,\n resourceContext,\n error: loadError,\n });\n throw loadError;\n });\n\n globalLoading[uniqueKey] = loading;\n // Clear rejected entries so a later call can retry. Keep the original\n // promise identity in the cache (do not replace with a cleanup thenable).\n // Identity check: an older rejection must not delete a newer in-flight request.\n loading.then(undefined, () => {\n if (globalLoading[uniqueKey] === loading) {\n delete globalLoading[uniqueKey];\n }\n });\n remoteEntryLoadingOrigins.set(loading, origin);\n }\n\n const remoteEntryLoading = globalLoading[uniqueKey];\n if (remoteEntryLoadingOrigins.get(remoteEntryLoading) !== origin) {\n try {\n const result = await remoteEntryLoading;\n await origin.loaderHook.lifecycle.afterLoadEntry.emit({\n origin,\n remoteInfo,\n remoteEntryExports: result,\n resourceContext,\n });\n return result;\n } catch (loadError) {\n await origin.loaderHook.lifecycle.afterLoadEntry.emit({\n origin,\n remoteInfo,\n resourceContext,\n error: loadError,\n });\n throw loadError;\n }\n }\n\n return remoteEntryLoading;\n}\n\nexport function getRemoteInfo(remote: Remote): RemoteInfo {\n return {\n ...remote,\n entry: 'entry' in remote ? remote.entry : '',\n type: remote.type || DEFAULT_REMOTE_TYPE,\n entryGlobalName: remote.entryGlobalName || remote.name,\n shareScope: remote.shareScope || DEFAULT_SCOPE,\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ModuleFederation } from "../core.js";
|
|
2
|
+
import { Remote, RemoteEntryExports, RemoteInfo } from "../type/config.js";
|
|
3
|
+
import { ResourceLoadContext } from "../type/preload.js";
|
|
4
|
+
//#region src/utils/load.d.ts
|
|
5
|
+
declare function getRemoteEntry(params: {
|
|
6
|
+
origin: ModuleFederation;
|
|
7
|
+
remoteInfo: RemoteInfo;
|
|
8
|
+
remoteEntryExports?: RemoteEntryExports | undefined;
|
|
9
|
+
getEntryUrl?: (url: string) => string;
|
|
10
|
+
_inErrorHandling?: boolean;
|
|
11
|
+
resourceContext?: ResourceLoadContext;
|
|
12
|
+
}): Promise<RemoteEntryExports | false | void>;
|
|
13
|
+
declare function getRemoteInfo(remote: Remote): RemoteInfo;
|
|
14
|
+
//#endregion
|
|
15
|
+
export { getRemoteEntry, getRemoteInfo };
|
|
16
|
+
//# sourceMappingURL=load.d.ts.map
|