@module-federation/modern-js 0.0.0-next-20250526025159 → 0.0.0-next-20250526035905
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/cjs/cli/configPlugin.js +6 -8
- package/dist/cjs/cli/configPlugin.spec.js +1 -3
- package/dist/cjs/{runtime/wrapNoSSR.js → cli/constant.js} +6 -13
- package/dist/cjs/{logger.js → cli/logger.js} +1 -1
- package/dist/cjs/cli/ssrPlugin.js +11 -27
- package/dist/cjs/cli/utils.js +0 -5
- package/dist/cjs/constant.js +2 -49
- package/dist/cjs/runtime/createRemoteSSRComponent.js +210 -0
- package/dist/cjs/runtime/index.js +2 -11
- package/dist/cjs/{interfaces/global.js → ssr-runtime/index.js} +8 -2
- package/dist/cjs/ssr-runtime/{devPlugin.js → plugin.js} +6 -9
- package/dist/esm/cli/configPlugin.js +7 -9
- package/dist/esm/cli/configPlugin.spec.js +1 -3
- package/dist/esm/cli/constant.js +4 -0
- package/dist/esm/{logger.js → cli/logger.js} +1 -1
- package/dist/esm/cli/ssrPlugin.js +7 -24
- package/dist/esm/cli/utils.js +0 -4
- package/dist/esm/constant.js +1 -37
- package/dist/esm/runtime/createRemoteSSRComponent.js +263 -0
- package/dist/esm/runtime/index.js +2 -10
- package/dist/esm/ssr-runtime/index.js +1 -0
- package/dist/esm/ssr-runtime/{devPlugin.js → plugin.js} +2 -5
- package/dist/esm-node/cli/configPlugin.js +7 -9
- package/dist/esm-node/cli/configPlugin.spec.js +1 -3
- package/dist/esm-node/cli/constant.js +4 -0
- package/dist/esm-node/{logger.js → cli/logger.js} +1 -1
- package/dist/esm-node/cli/ssrPlugin.js +7 -23
- package/dist/esm-node/cli/utils.js +0 -4
- package/dist/esm-node/constant.js +1 -37
- package/dist/esm-node/runtime/createRemoteSSRComponent.js +175 -0
- package/dist/esm-node/runtime/index.js +2 -10
- package/dist/esm-node/ssr-runtime/index.js +1 -0
- package/dist/esm-node/ssr-runtime/{devPlugin.js → plugin.js} +2 -5
- package/dist/types/cli/constant.d.ts +1 -0
- package/dist/types/cli/index.d.ts +0 -1
- package/dist/types/cli/utils.d.ts +0 -1
- package/dist/types/constant.d.ts +0 -23
- package/dist/types/runtime/createRemoteSSRComponent.d.ts +19 -0
- package/dist/types/runtime/index.d.ts +2 -6
- package/dist/types/ssr-runtime/index.d.ts +1 -0
- package/dist/types/ssr-runtime/plugin.d.ts +2 -0
- package/package.json +17 -41
- package/dist/cjs/cli/mfRuntimePlugins/auto-fetch-data.js +0 -98
- package/dist/cjs/cli/server/data-fetch-server-plugin.js +0 -192
- package/dist/cjs/runtime/AwaitDataFetch.js +0 -144
- package/dist/cjs/runtime/createRemoteComponent.js +0 -327
- package/dist/cjs/ssr-runtime/downgrade.js +0 -108
- package/dist/cjs/ssr-runtime/injectDataFetchFunctionPlugin.js +0 -128
- package/dist/cjs/utils/dataFetch.js +0 -211
- package/dist/cjs/utils/index.js +0 -54
- package/dist/esm/cli/mfRuntimePlugins/auto-fetch-data.js +0 -74
- package/dist/esm/cli/server/data-fetch-server-plugin.js +0 -240
- package/dist/esm/interfaces/global.js +0 -0
- package/dist/esm/runtime/AwaitDataFetch.js +0 -131
- package/dist/esm/runtime/createRemoteComponent.js +0 -417
- package/dist/esm/runtime/wrapNoSSR.js +0 -12
- package/dist/esm/ssr-runtime/downgrade.js +0 -143
- package/dist/esm/ssr-runtime/injectDataFetchFunctionPlugin.js +0 -168
- package/dist/esm/utils/dataFetch.js +0 -237
- package/dist/esm/utils/index.js +0 -28
- package/dist/esm-node/cli/mfRuntimePlugins/auto-fetch-data.js +0 -68
- package/dist/esm-node/cli/server/data-fetch-server-plugin.js +0 -162
- package/dist/esm-node/interfaces/global.js +0 -0
- package/dist/esm-node/runtime/AwaitDataFetch.js +0 -109
- package/dist/esm-node/runtime/createRemoteComponent.js +0 -291
- package/dist/esm-node/runtime/wrapNoSSR.js +0 -11
- package/dist/esm-node/ssr-runtime/downgrade.js +0 -82
- package/dist/esm-node/ssr-runtime/injectDataFetchFunctionPlugin.js +0 -94
- package/dist/esm-node/utils/dataFetch.js +0 -166
- package/dist/esm-node/utils/index.js +0 -27
- package/dist/types/cli/mfRuntimePlugins/auto-fetch-data.d.ts +0 -3
- package/dist/types/cli/server/data-fetch-server-plugin.d.ts +0 -3
- package/dist/types/interfaces/global.d.ts +0 -27
- package/dist/types/runtime/AwaitDataFetch.d.ts +0 -19
- package/dist/types/runtime/createRemoteComponent.d.ts +0 -26
- package/dist/types/runtime/wrapNoSSR.d.ts +0 -9
- package/dist/types/ssr-runtime/devPlugin.d.ts +0 -2
- package/dist/types/ssr-runtime/downgrade.d.ts +0 -4
- package/dist/types/ssr-runtime/injectDataFetchFunctionPlugin.d.ts +0 -2
- package/dist/types/utils/dataFetch.d.ts +0 -26
- package/dist/types/utils/index.d.ts +0 -15
- /package/dist/types/{logger.d.ts → cli/logger.d.ts} +0 -0
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
2
|
-
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
3
|
-
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
4
|
-
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
5
|
-
import { DATA_FETCH_QUERY, MF_DATA_FETCH_STATUS } from "../../constant";
|
|
6
|
-
import logger from "../../logger";
|
|
7
|
-
import { getDataFetchMap } from "../../utils";
|
|
8
|
-
import { fetchData, initDataFetchMap, loadDataFetchModule } from "../../utils/dataFetch";
|
|
9
|
-
import { SEPARATOR, MANIFEST_EXT } from "@module-federation/sdk";
|
|
10
|
-
function wrapSetTimeout(targetPromise) {
|
|
11
|
-
var delay = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 2e4, id = arguments.length > 2 ? arguments[2] : void 0;
|
|
12
|
-
if (targetPromise && typeof targetPromise.then === "function") {
|
|
13
|
-
return new Promise(function(resolve, reject) {
|
|
14
|
-
var timeoutId = setTimeout(function() {
|
|
15
|
-
logger.warn("Data fetch for ID ".concat(id, " timed out after 20 seconds."));
|
|
16
|
-
reject(new Error("Data fetch for ID ".concat(id, " timed out after 20 seconds")));
|
|
17
|
-
}, delay);
|
|
18
|
-
targetPromise.then(function(value) {
|
|
19
|
-
clearTimeout(timeoutId);
|
|
20
|
-
resolve(value);
|
|
21
|
-
}).catch(function(err) {
|
|
22
|
-
clearTimeout(timeoutId);
|
|
23
|
-
reject(err);
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
function addProtocol(url) {
|
|
29
|
-
if (url.startsWith("//")) {
|
|
30
|
-
return "https:" + url;
|
|
31
|
-
}
|
|
32
|
-
return url;
|
|
33
|
-
}
|
|
34
|
-
var getDecodeQuery = function(url, name) {
|
|
35
|
-
var res = url.searchParams.get(name);
|
|
36
|
-
if (!res) {
|
|
37
|
-
return null;
|
|
38
|
-
}
|
|
39
|
-
return decodeURIComponent(res);
|
|
40
|
-
};
|
|
41
|
-
var middleware = function() {
|
|
42
|
-
var _ref = _async_to_generator(function(ctx, next) {
|
|
43
|
-
var _globalThis___FEDERATION__, url, dataFetchId, params, remoteInfo, remoteInfoQuery, _dataFetchMap_dataFetchId, _dataFetchMap_dataFetchId1, dataFetchMap, fetchDataPromise, targetPromise, wrappedPromise, res, hostInstance, remoteEntry, remote, _hostInstance_snapshotHandler_getGlobalRemoteInfo, hostGlobalSnapshot, remoteSnapshot, dataFetchItem, callFetchDataPromise, wrappedPromise1, res1, remoteId, hostInstance1, dataFetchFn, data, e;
|
|
44
|
-
return _ts_generator(this, function(_state) {
|
|
45
|
-
switch (_state.label) {
|
|
46
|
-
case 0:
|
|
47
|
-
try {
|
|
48
|
-
url = new URL(ctx.req.url);
|
|
49
|
-
dataFetchId = getDecodeQuery(url, DATA_FETCH_QUERY);
|
|
50
|
-
params = JSON.parse(getDecodeQuery(url, "params") || "{}");
|
|
51
|
-
remoteInfoQuery = getDecodeQuery(url, "remoteInfo");
|
|
52
|
-
remoteInfo = remoteInfoQuery ? JSON.parse(remoteInfoQuery) : null;
|
|
53
|
-
} catch (e2) {
|
|
54
|
-
console.log("fetch data from server, error: ", e2);
|
|
55
|
-
console.error(e2);
|
|
56
|
-
return [
|
|
57
|
-
2,
|
|
58
|
-
next()
|
|
59
|
-
];
|
|
60
|
-
}
|
|
61
|
-
if (!dataFetchId) {
|
|
62
|
-
return [
|
|
63
|
-
2,
|
|
64
|
-
next()
|
|
65
|
-
];
|
|
66
|
-
}
|
|
67
|
-
logger.log("fetch data from server, dataFetchId: ", dataFetchId);
|
|
68
|
-
console.log("fetch data from server, moduleInfo: ", (_globalThis___FEDERATION__ = globalThis.__FEDERATION__) === null || _globalThis___FEDERATION__ === void 0 ? void 0 : _globalThis___FEDERATION__.moduleInfo);
|
|
69
|
-
_state.label = 1;
|
|
70
|
-
case 1:
|
|
71
|
-
_state.trys.push([
|
|
72
|
-
1,
|
|
73
|
-
9,
|
|
74
|
-
,
|
|
75
|
-
10
|
|
76
|
-
]);
|
|
77
|
-
dataFetchMap = getDataFetchMap();
|
|
78
|
-
if (!dataFetchMap) {
|
|
79
|
-
initDataFetchMap();
|
|
80
|
-
}
|
|
81
|
-
fetchDataPromise = (_dataFetchMap_dataFetchId = dataFetchMap[dataFetchId]) === null || _dataFetchMap_dataFetchId === void 0 ? void 0 : _dataFetchMap_dataFetchId[1];
|
|
82
|
-
console.log("fetch data from server, fetchDataPromise: ", fetchDataPromise);
|
|
83
|
-
if (!(fetchDataPromise && ((_dataFetchMap_dataFetchId1 = dataFetchMap[dataFetchId]) === null || _dataFetchMap_dataFetchId1 === void 0 ? void 0 : _dataFetchMap_dataFetchId1[2]) !== MF_DATA_FETCH_STATUS.ERROR))
|
|
84
|
-
return [
|
|
85
|
-
3,
|
|
86
|
-
4
|
|
87
|
-
];
|
|
88
|
-
logger.log("fetch data from server, fetchDataPromise: ", fetchDataPromise);
|
|
89
|
-
targetPromise = fetchDataPromise[0];
|
|
90
|
-
wrappedPromise = wrapSetTimeout(targetPromise, 2e4, dataFetchId);
|
|
91
|
-
if (!wrappedPromise)
|
|
92
|
-
return [
|
|
93
|
-
3,
|
|
94
|
-
3
|
|
95
|
-
];
|
|
96
|
-
return [
|
|
97
|
-
4,
|
|
98
|
-
wrappedPromise
|
|
99
|
-
];
|
|
100
|
-
case 2:
|
|
101
|
-
res = _state.sent();
|
|
102
|
-
logger.log("fetch data from server, fetchDataPromise res: ", res);
|
|
103
|
-
return [
|
|
104
|
-
2,
|
|
105
|
-
ctx.json(res)
|
|
106
|
-
];
|
|
107
|
-
case 3:
|
|
108
|
-
logger.error("Expected a Promise from fetchDataPromise[0] for dataFetchId ".concat(dataFetchId, ", but received:"), targetPromise, "Will try call new dataFetch again...");
|
|
109
|
-
_state.label = 4;
|
|
110
|
-
case 4:
|
|
111
|
-
if (remoteInfo) {
|
|
112
|
-
try {
|
|
113
|
-
hostInstance = globalThis.__FEDERATION__.__INSTANCES__[0];
|
|
114
|
-
remoteEntry = "".concat(addProtocol(remoteInfo.ssrPublicPath) + remoteInfo.ssrRemoteEntry);
|
|
115
|
-
if (!hostInstance) {
|
|
116
|
-
throw new Error("host instance not found!");
|
|
117
|
-
}
|
|
118
|
-
remote = hostInstance.options.remotes.find(function(remote2) {
|
|
119
|
-
return remote2.name === remoteInfo.name;
|
|
120
|
-
});
|
|
121
|
-
logger.debug("find remote: ", JSON.stringify(remote));
|
|
122
|
-
if (!remote) {
|
|
123
|
-
hostInstance.registerRemotes([
|
|
124
|
-
{
|
|
125
|
-
name: remoteInfo.name,
|
|
126
|
-
entry: remoteEntry,
|
|
127
|
-
entryGlobalName: remoteInfo.globalName
|
|
128
|
-
}
|
|
129
|
-
]);
|
|
130
|
-
} else if (!("entry" in remote) || !remote.entry.includes(MANIFEST_EXT)) {
|
|
131
|
-
_hostInstance_snapshotHandler_getGlobalRemoteInfo = hostInstance.snapshotHandler.getGlobalRemoteInfo(remoteInfo), hostGlobalSnapshot = _hostInstance_snapshotHandler_getGlobalRemoteInfo.hostGlobalSnapshot, remoteSnapshot = _hostInstance_snapshotHandler_getGlobalRemoteInfo.remoteSnapshot;
|
|
132
|
-
logger.debug("find hostGlobalSnapshot: ", JSON.stringify(hostGlobalSnapshot));
|
|
133
|
-
logger.debug("find remoteSnapshot: ", JSON.stringify(remoteSnapshot));
|
|
134
|
-
if (!hostGlobalSnapshot || !remoteSnapshot) {
|
|
135
|
-
if ("version" in remote) {
|
|
136
|
-
delete remote.version;
|
|
137
|
-
}
|
|
138
|
-
remote.entry = remoteEntry;
|
|
139
|
-
remote.entryGlobalName = remoteInfo.globalName;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
} catch (e2) {
|
|
143
|
-
ctx.status(500);
|
|
144
|
-
return [
|
|
145
|
-
2,
|
|
146
|
-
ctx.text("failed to fetch ".concat(remoteInfo.name, " data, error:\n ").concat(e2))
|
|
147
|
-
];
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
dataFetchItem = dataFetchMap[dataFetchId];
|
|
151
|
-
console.log("fetch data from server, dataFetchItem: ", dataFetchItem);
|
|
152
|
-
if (!dataFetchItem)
|
|
153
|
-
return [
|
|
154
|
-
3,
|
|
155
|
-
6
|
|
156
|
-
];
|
|
157
|
-
logger.log("fetch data from server, dataFetchItem: ", dataFetchItem);
|
|
158
|
-
callFetchDataPromise = fetchData(dataFetchId, _object_spread_props(_object_spread({}, params), {
|
|
159
|
-
isDowngrade: true
|
|
160
|
-
}));
|
|
161
|
-
wrappedPromise1 = wrapSetTimeout(callFetchDataPromise, 2e4, dataFetchId);
|
|
162
|
-
if (!wrappedPromise1)
|
|
163
|
-
return [
|
|
164
|
-
3,
|
|
165
|
-
6
|
|
166
|
-
];
|
|
167
|
-
return [
|
|
168
|
-
4,
|
|
169
|
-
wrappedPromise1
|
|
170
|
-
];
|
|
171
|
-
case 5:
|
|
172
|
-
res1 = _state.sent();
|
|
173
|
-
logger.log("fetch data from server, dataFetchItem res: ", res1);
|
|
174
|
-
return [
|
|
175
|
-
2,
|
|
176
|
-
ctx.json(res1)
|
|
177
|
-
];
|
|
178
|
-
case 6:
|
|
179
|
-
remoteId = dataFetchId.split(SEPARATOR)[0];
|
|
180
|
-
hostInstance1 = globalThis.__FEDERATION__.__INSTANCES__[0];
|
|
181
|
-
if (!hostInstance1) {
|
|
182
|
-
throw new Error("host instance not found!");
|
|
183
|
-
}
|
|
184
|
-
return [
|
|
185
|
-
4,
|
|
186
|
-
loadDataFetchModule(hostInstance1, remoteId)
|
|
187
|
-
];
|
|
188
|
-
case 7:
|
|
189
|
-
dataFetchFn = _state.sent();
|
|
190
|
-
return [
|
|
191
|
-
4,
|
|
192
|
-
dataFetchFn(_object_spread_props(_object_spread({}, params), {
|
|
193
|
-
isDowngrade: !remoteInfo
|
|
194
|
-
}))
|
|
195
|
-
];
|
|
196
|
-
case 8:
|
|
197
|
-
data = _state.sent();
|
|
198
|
-
logger.log("fetch data from server, loadDataFetchModule res: ", data);
|
|
199
|
-
return [
|
|
200
|
-
2,
|
|
201
|
-
ctx.json(data)
|
|
202
|
-
];
|
|
203
|
-
case 9:
|
|
204
|
-
e = _state.sent();
|
|
205
|
-
console.log("server plugin data fetch error: ", e);
|
|
206
|
-
ctx.status(500);
|
|
207
|
-
return [
|
|
208
|
-
2,
|
|
209
|
-
ctx.text("failed to fetch ".concat(remoteInfo.name, " data, error:\n ").concat(e))
|
|
210
|
-
];
|
|
211
|
-
case 10:
|
|
212
|
-
return [
|
|
213
|
-
2
|
|
214
|
-
];
|
|
215
|
-
}
|
|
216
|
-
});
|
|
217
|
-
});
|
|
218
|
-
return function middleware2(ctx, next) {
|
|
219
|
-
return _ref.apply(this, arguments);
|
|
220
|
-
};
|
|
221
|
-
}();
|
|
222
|
-
var dataFetchServePlugin = function() {
|
|
223
|
-
return {
|
|
224
|
-
name: "mf-data-fetch-server-plugin",
|
|
225
|
-
setup: function(api) {
|
|
226
|
-
api.onPrepare(function() {
|
|
227
|
-
var middlewares = api.getServerContext().middlewares;
|
|
228
|
-
middlewares.push({
|
|
229
|
-
name: "module-federation-serve-manifest",
|
|
230
|
-
// @ts-ignore type error
|
|
231
|
-
handler: middleware
|
|
232
|
-
});
|
|
233
|
-
});
|
|
234
|
-
}
|
|
235
|
-
};
|
|
236
|
-
};
|
|
237
|
-
var data_fetch_server_plugin_default = dataFetchServePlugin;
|
|
238
|
-
export {
|
|
239
|
-
data_fetch_server_plugin_default as default
|
|
240
|
-
};
|
|
File without changes
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import { _ as _instanceof } from "@swc/helpers/_/_instanceof";
|
|
2
|
-
import { _ as _tagged_template_literal } from "@swc/helpers/_/_tagged_template_literal";
|
|
3
|
-
import { _ as _type_of } from "@swc/helpers/_/_type_of";
|
|
4
|
-
function _templateObject() {
|
|
5
|
-
var data = _tagged_template_literal([
|
|
6
|
-
"\n globalThis['",
|
|
7
|
-
"'] = globalThis['",
|
|
8
|
-
"'] || []\n globalThis['",
|
|
9
|
-
"'].push([",
|
|
10
|
-
",",
|
|
11
|
-
",true]);"
|
|
12
|
-
]);
|
|
13
|
-
_templateObject = function _templateObject2() {
|
|
14
|
-
return data;
|
|
15
|
-
};
|
|
16
|
-
return data;
|
|
17
|
-
}
|
|
18
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
19
|
-
import { Suspense, useRef } from "react";
|
|
20
|
-
import logger from "../logger";
|
|
21
|
-
import { DATA_FETCH_ERROR_PREFIX, LOAD_REMOTE_ERROR_PREFIX, ERROR_TYPE, DATA_FETCH_FUNCTION } from "../constant";
|
|
22
|
-
import { getDataFetchIdWithErrorMsgs, wrapDataFetchId } from "../utils";
|
|
23
|
-
function isPromise(obj) {
|
|
24
|
-
return !!obj && ((typeof obj === "undefined" ? "undefined" : _type_of(obj)) === "object" || typeof obj === "function") && typeof obj.then === "function";
|
|
25
|
-
}
|
|
26
|
-
var AWAIT_ERROR_PREFIX = "<Await /> caught the following error during render: ";
|
|
27
|
-
var transformError = function(err) {
|
|
28
|
-
var errMsg = _instanceof(err, Error) ? err.message : err;
|
|
29
|
-
var originalMsg = errMsg.replace(AWAIT_ERROR_PREFIX, "");
|
|
30
|
-
var dataFetchMapKey = getDataFetchIdWithErrorMsgs(originalMsg);
|
|
31
|
-
if (originalMsg.indexOf(DATA_FETCH_ERROR_PREFIX) === 0) {
|
|
32
|
-
return {
|
|
33
|
-
error: new Error(originalMsg.replace(DATA_FETCH_ERROR_PREFIX, "").replace(wrapDataFetchId(dataFetchMapKey), "")),
|
|
34
|
-
errorType: ERROR_TYPE.DATA_FETCH,
|
|
35
|
-
dataFetchMapKey
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
if (originalMsg.indexOf(LOAD_REMOTE_ERROR_PREFIX) === 0) {
|
|
39
|
-
return {
|
|
40
|
-
error: new Error(originalMsg.replace(LOAD_REMOTE_ERROR_PREFIX, "").replace(wrapDataFetchId(dataFetchMapKey), "")),
|
|
41
|
-
errorType: ERROR_TYPE.LOAD_REMOTE,
|
|
42
|
-
dataFetchMapKey
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
return {
|
|
46
|
-
error: new Error(originalMsg.replace(wrapDataFetchId(dataFetchMapKey), "")),
|
|
47
|
-
errorType: ERROR_TYPE.UNKNOWN,
|
|
48
|
-
dataFetchMapKey
|
|
49
|
-
};
|
|
50
|
-
};
|
|
51
|
-
var DefaultLoading = /* @__PURE__ */ _jsx(_Fragment, {});
|
|
52
|
-
var DefaultErrorElement = function(_data) {
|
|
53
|
-
return /* @__PURE__ */ _jsx("div", {
|
|
54
|
-
children: "Error"
|
|
55
|
-
});
|
|
56
|
-
};
|
|
57
|
-
function AwaitDataFetch(param) {
|
|
58
|
-
var resolve = param.resolve, _param_loading = param.loading, loading = _param_loading === void 0 ? DefaultLoading : _param_loading, _param_errorElement = param.errorElement, errorElement = _param_errorElement === void 0 ? DefaultErrorElement : _param_errorElement, children = param.children, params = param.params;
|
|
59
|
-
var dataRef = useRef();
|
|
60
|
-
var data = dataRef.current || resolve;
|
|
61
|
-
var getData = isPromise(data) ? fetchData(data, dataRef) : function() {
|
|
62
|
-
return data;
|
|
63
|
-
};
|
|
64
|
-
return /* @__PURE__ */ _jsx(AwaitSuspense, {
|
|
65
|
-
params,
|
|
66
|
-
loading,
|
|
67
|
-
errorElement,
|
|
68
|
-
// @ts-ignore
|
|
69
|
-
resolve: getData,
|
|
70
|
-
children
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
function AwaitSuspense(param) {
|
|
74
|
-
var resolve = param.resolve, children = param.children, _param_loading = param.loading, loading = _param_loading === void 0 ? DefaultLoading : _param_loading, _param_errorElement = param.errorElement, errorElement = _param_errorElement === void 0 ? DefaultErrorElement : _param_errorElement;
|
|
75
|
-
return /* @__PURE__ */ _jsx(Suspense, {
|
|
76
|
-
fallback: loading,
|
|
77
|
-
children: /* @__PURE__ */ _jsx(ResolveAwait, {
|
|
78
|
-
resolve,
|
|
79
|
-
errorElement,
|
|
80
|
-
children
|
|
81
|
-
})
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
function ResolveAwait(param) {
|
|
85
|
-
var children = param.children, resolve = param.resolve, errorElement = param.errorElement, params = param.params;
|
|
86
|
-
var data = resolve();
|
|
87
|
-
logger.debug("resolve data: ", data);
|
|
88
|
-
if (typeof data === "string" && data.indexOf(AWAIT_ERROR_PREFIX) === 0) {
|
|
89
|
-
var transformedError = transformError(data);
|
|
90
|
-
return /* @__PURE__ */ _jsx(_Fragment, {
|
|
91
|
-
children: typeof errorElement === "function" ? /* @__PURE__ */ _jsxs(_Fragment, {
|
|
92
|
-
children: [
|
|
93
|
-
globalThis.FEDERATION_SSR && /* @__PURE__ */ _jsx("script", {
|
|
94
|
-
suppressHydrationWarning: true,
|
|
95
|
-
dangerouslySetInnerHTML: {
|
|
96
|
-
__html: String.raw(_templateObject(), DATA_FETCH_FUNCTION, DATA_FETCH_FUNCTION, DATA_FETCH_FUNCTION, transformedError.dataFetchMapKey ? "'".concat(transformedError.dataFetchMapKey, "'") : "", params ? JSON.stringify(params) : null)
|
|
97
|
-
}
|
|
98
|
-
}),
|
|
99
|
-
errorElement(transformedError)
|
|
100
|
-
]
|
|
101
|
-
}) : errorElement
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
var toRender = typeof children === "function" ? children(data) : children;
|
|
105
|
-
return /* @__PURE__ */ _jsx(_Fragment, {
|
|
106
|
-
children: toRender
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
var fetchData = function(promise, ref) {
|
|
110
|
-
var data;
|
|
111
|
-
var status = "pending";
|
|
112
|
-
var suspender = promise.then(function(res) {
|
|
113
|
-
status = "success";
|
|
114
|
-
data = res;
|
|
115
|
-
ref.current = res;
|
|
116
|
-
}).catch(function(e) {
|
|
117
|
-
status = "success";
|
|
118
|
-
console.warn(e);
|
|
119
|
-
data = AWAIT_ERROR_PREFIX + e;
|
|
120
|
-
});
|
|
121
|
-
return function() {
|
|
122
|
-
if (status === "pending") {
|
|
123
|
-
throw suspender;
|
|
124
|
-
}
|
|
125
|
-
return data;
|
|
126
|
-
};
|
|
127
|
-
};
|
|
128
|
-
export {
|
|
129
|
-
AwaitDataFetch,
|
|
130
|
-
transformError
|
|
131
|
-
};
|