@modern-js/runtime 2.27.1-alpha.0 → 2.29.0
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/CHANGELOG.md +34 -0
- package/dist/cjs/core/compatible.js +16 -17
- package/dist/cjs/core/loader/useLoader.js +10 -12
- package/dist/cjs/core/plugin.js +3 -2
- package/dist/cjs/document/Html.js +4 -3
- package/dist/cjs/document/cli/index.js +139 -138
- package/dist/cjs/router/cli/index.js +91 -92
- package/dist/cjs/router/runtime/DeferredDataScripts.node.js +4 -2
- package/dist/cjs/router/runtime/PrefetchLink.js +8 -4
- package/dist/cjs/router/runtime/plugin.js +10 -3
- package/dist/cjs/router/runtime/plugin.node.js +2 -1
- package/dist/cjs/router/runtime/utils.js +3 -3
- package/dist/cjs/ssr/cli/index.js +122 -123
- package/dist/cjs/ssr/index.js +105 -107
- package/dist/cjs/ssr/index.node.js +37 -38
- package/dist/cjs/ssr/prefetch.js +37 -39
- package/dist/cjs/ssr/react/prerender/util.js +4 -2
- package/dist/cjs/ssr/serverRender/constants.js +16 -0
- package/dist/cjs/ssr/serverRender/renderToStream/bulidTemplate.before.js +4 -2
- package/dist/cjs/ssr/serverRender/renderToStream/index.js +1 -1
- package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.js +8 -7
- package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.worker.js +8 -6
- package/dist/cjs/ssr/serverRender/renderToString/entry.js +18 -3
- package/dist/cjs/ssr/serverRender/renderToString/index.js +4 -1
- package/dist/cjs/ssr/serverRender/renderToString/loadable.js +2 -1
- package/dist/cjs/ssr/serverRender/reporter.js +27 -0
- package/dist/cjs/state/cli/index.js +70 -72
- package/dist/cjs/state/runtime/plugin.js +40 -42
- package/dist/esm/core/compatible.js +10 -9
- package/dist/esm/core/loader/useLoader.js +9 -9
- package/dist/esm/core/plugin.js +3 -2
- package/dist/esm/document/Html.js +4 -3
- package/dist/esm/document/cli/index.js +5 -3
- package/dist/esm/router/cli/index.js +2 -1
- package/dist/esm/router/runtime/DeferredDataScripts.node.js +4 -2
- package/dist/esm/router/runtime/PrefetchLink.js +8 -4
- package/dist/esm/router/runtime/plugin.js +10 -3
- package/dist/esm/router/runtime/plugin.node.js +2 -1
- package/dist/esm/router/runtime/utils.js +3 -3
- package/dist/esm/ssr/cli/index.js +7 -6
- package/dist/esm/ssr/index.js +6 -6
- package/dist/esm/ssr/index.node.js +2 -1
- package/dist/esm/ssr/prefetch.js +2 -2
- package/dist/esm/ssr/react/prerender/util.js +4 -2
- package/dist/esm/ssr/serverRender/constants.js +6 -0
- package/dist/esm/ssr/serverRender/renderToStream/bulidTemplate.before.js +4 -2
- package/dist/esm/ssr/serverRender/renderToStream/index.js +1 -1
- package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.js +8 -7
- package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.worker.js +7 -7
- package/dist/esm/ssr/serverRender/renderToString/entry.js +19 -4
- package/dist/esm/ssr/serverRender/renderToString/index.js +4 -1
- package/dist/esm/ssr/serverRender/renderToString/loadable.js +2 -1
- package/dist/esm/ssr/serverRender/reporter.js +17 -0
- package/dist/esm/state/runtime/plugin.js +2 -2
- package/dist/esm-node/core/compatible.js +16 -17
- package/dist/esm-node/core/loader/useLoader.js +10 -12
- package/dist/esm-node/core/plugin.js +3 -2
- package/dist/esm-node/document/Html.js +4 -3
- package/dist/esm-node/document/cli/index.js +139 -138
- package/dist/esm-node/router/cli/index.js +91 -92
- package/dist/esm-node/router/runtime/DeferredDataScripts.node.js +4 -2
- package/dist/esm-node/router/runtime/PrefetchLink.js +8 -4
- package/dist/esm-node/router/runtime/plugin.js +10 -3
- package/dist/esm-node/router/runtime/plugin.node.js +2 -1
- package/dist/esm-node/router/runtime/utils.js +3 -3
- package/dist/esm-node/ssr/cli/index.js +122 -123
- package/dist/esm-node/ssr/cli/loadable-bundler-plugin.js +2 -2
- package/dist/esm-node/ssr/index.js +105 -107
- package/dist/esm-node/ssr/index.node.js +37 -38
- package/dist/esm-node/ssr/prefetch.js +37 -39
- package/dist/esm-node/ssr/react/prerender/util.js +4 -2
- package/dist/esm-node/ssr/serverRender/constants.js +6 -0
- package/dist/esm-node/ssr/serverRender/renderToStream/bulidTemplate.before.js +4 -2
- package/dist/esm-node/ssr/serverRender/renderToStream/index.js +1 -1
- package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.js +8 -7
- package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.worker.js +8 -6
- package/dist/esm-node/ssr/serverRender/renderToString/entry.js +18 -3
- package/dist/esm-node/ssr/serverRender/renderToString/index.js +4 -1
- package/dist/esm-node/ssr/serverRender/renderToString/loadable.js +2 -1
- package/dist/esm-node/ssr/serverRender/reporter.js +17 -0
- package/dist/esm-node/state/cli/index.js +70 -72
- package/dist/esm-node/state/runtime/plugin.js +40 -42
- package/dist/types/router/runtime/types.d.ts +3 -0
- package/dist/types/ssr/serverRender/constants.d.ts +5 -0
- package/dist/types/ssr/serverRender/renderToString/entry.d.ts +3 -0
- package/dist/types/ssr/serverRender/reporter.d.ts +8 -0
- package/package.json +9 -9
- package/dist/cjs/ssr/serverRender/time.js +0 -20
- package/dist/cjs/ssr/serverRender/time.worker.js +0 -38
- package/dist/esm/ssr/serverRender/time.js +0 -11
- package/dist/esm/ssr/serverRender/time.worker.js +0 -29
- package/dist/esm-node/ssr/serverRender/time.js +0 -10
- package/dist/esm-node/ssr/serverRender/time.worker.js +0 -28
- package/dist/types/ssr/serverRender/time.d.ts +0 -1
- package/dist/types/ssr/serverRender/time.worker.d.ts +0 -1
|
@@ -81,9 +81,9 @@ export function renderRoutes(param) {
|
|
|
81
81
|
return routeElements;
|
|
82
82
|
}
|
|
83
83
|
export function getLocation(serverContext) {
|
|
84
|
-
var _url_replace;
|
|
85
|
-
var _ref = (serverContext === null ||
|
|
86
|
-
var cleanUrl = (
|
|
84
|
+
var _serverContext, _url_replace, _url;
|
|
85
|
+
var _ref = ((_serverContext = serverContext) === null || _serverContext === void 0 ? void 0 : _serverContext.request) || {}, pathname = _ref.pathname, url = _ref.url;
|
|
86
|
+
var cleanUrl = (_url = url) === null || _url === void 0 ? void 0 : (_url_replace = _url.replace("http://", "")) === null || _url_replace === void 0 ? void 0 : _url_replace.replace("https://", "");
|
|
87
87
|
var index = (cleanUrl || "").indexOf(pathname);
|
|
88
88
|
if (index === -1) {
|
|
89
89
|
return pathname;
|
|
@@ -4,14 +4,15 @@ import path from "path";
|
|
|
4
4
|
import { getEntryOptions, SERVER_RENDER_FUNCTION_NAME, LOADABLE_STATS_FILE, isUseSSRBundle, createRuntimeExportsUtils, isSSGEntry } from "@modern-js/utils";
|
|
5
5
|
var PLUGIN_IDENTIFIER = "ssr";
|
|
6
6
|
var hasStringSSREntry = function(userConfig) {
|
|
7
|
+
var _server, _server1;
|
|
7
8
|
var isStreaming = function(ssr) {
|
|
8
9
|
return ssr && typeof ssr === "object" && ssr.mode === "stream";
|
|
9
10
|
};
|
|
10
11
|
var server = userConfig.server;
|
|
11
|
-
if ((server === null ||
|
|
12
|
+
if (((_server = server) === null || _server === void 0 ? void 0 : _server.ssr) && !isStreaming(server.ssr)) {
|
|
12
13
|
return true;
|
|
13
14
|
}
|
|
14
|
-
if ((server === null ||
|
|
15
|
+
if (((_server1 = server) === null || _server1 === void 0 ? void 0 : _server1.ssrByEntries) && typeof server.ssrByEntries === "object") {
|
|
15
16
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
16
17
|
try {
|
|
17
18
|
for (var _iterator = Object.keys(server.ssrByEntries)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
@@ -112,9 +113,9 @@ export var ssrPlugin = function() {
|
|
|
112
113
|
pluginsExportsUtils.addExport("export { default as ssr } from '@modern-js/runtime/ssr'");
|
|
113
114
|
var ssrConfig = getEntryOptions(entryName, isMainEntry, userConfig.server.ssr, userConfig.server.ssrByEntries, packageName);
|
|
114
115
|
if (typeof ssrConfig === "object" && ssrConfig.mode === "stream") {
|
|
115
|
-
var
|
|
116
|
+
var _this, _runtimeConfig;
|
|
116
117
|
var runtimeConfig = getEntryOptions(entryName, isMainEntry, userConfig.runtime, userConfig.runtimeByEntries, packageName);
|
|
117
|
-
if (((
|
|
118
|
+
if (((_this = (_runtimeConfig = runtimeConfig) === null || _runtimeConfig === void 0 ? void 0 : _runtimeConfig.router) === null || _this === void 0 ? void 0 : _this.mode) === "react-router-5") {
|
|
118
119
|
throw new Error("router v5 plugin doesn't support streaming SSR, check your config 'runtime.router'");
|
|
119
120
|
}
|
|
120
121
|
if (fileSystemRoutes && !entrypoint.nestedRoutesEntry) {
|
|
@@ -141,8 +142,8 @@ export var ssrPlugin = function() {
|
|
|
141
142
|
modifyEntryRuntimePlugins: function modifyEntryRuntimePlugins(param) {
|
|
142
143
|
var entrypoint = param.entrypoint, plugins = param.plugins, bundlerConfigs = param.bundlerConfigs;
|
|
143
144
|
if (ssrConfigMap.get(entrypoint.entryName)) {
|
|
144
|
-
var _bundlerConfigs_find,
|
|
145
|
-
var chunkLoadingGlobal = (
|
|
145
|
+
var _bundlerConfigs_find_output, _bundlerConfigs_find, _bundlerConfigs;
|
|
146
|
+
var chunkLoadingGlobal = (_bundlerConfigs = bundlerConfigs) === null || _bundlerConfigs === void 0 ? void 0 : (_bundlerConfigs_find = _bundlerConfigs.find(function(config2) {
|
|
146
147
|
return config2.name === "client";
|
|
147
148
|
})) === null || _bundlerConfigs_find === void 0 ? void 0 : (_bundlerConfigs_find_output = _bundlerConfigs_find.output) === null || _bundlerConfigs_find_output === void 0 ? void 0 : _bundlerConfigs_find_output.chunkLoadingGlobal;
|
|
148
149
|
var config = api.useResolvedConfigContext();
|
package/dist/esm/ssr/index.js
CHANGED
|
@@ -22,7 +22,7 @@ export var ssr = function(config) {
|
|
|
22
22
|
return {
|
|
23
23
|
client: function() {
|
|
24
24
|
var _ref = _async_to_generator(function(param) {
|
|
25
|
-
var App, context, ModernRender, ModernHydrate, _window__SSR_DATA, hydrateContext, callback, renderLevel;
|
|
25
|
+
var App, context, ModernRender, ModernHydrate, _window__SSR_DATA, _window, hydrateContext, callback, renderLevel;
|
|
26
26
|
function stringSSRHydrate() {
|
|
27
27
|
if (renderLevel === RenderLevel.CLIENT_RENDER || renderLevel === RenderLevel.SERVER_PREFETCH) {
|
|
28
28
|
ModernRender(/* @__PURE__ */ _jsx(App, {
|
|
@@ -88,7 +88,7 @@ export var ssr = function(config) {
|
|
|
88
88
|
callback = function() {
|
|
89
89
|
delete hydrateContext._hydration;
|
|
90
90
|
};
|
|
91
|
-
renderLevel = (window === null ||
|
|
91
|
+
renderLevel = ((_window = window) === null || _window === void 0 ? void 0 : (_window__SSR_DATA = _window._SSR_DATA) === null || _window__SSR_DATA === void 0 ? void 0 : _window__SSR_DATA.renderLevel) || RenderLevel.CLIENT_RENDER;
|
|
92
92
|
if (isReact18() && config.mode === "stream") {
|
|
93
93
|
return [
|
|
94
94
|
2,
|
|
@@ -107,8 +107,8 @@ export var ssr = function(config) {
|
|
|
107
107
|
}(),
|
|
108
108
|
init: function init(param, next) {
|
|
109
109
|
var context = param.context;
|
|
110
|
-
var _window__SSR_DATA,
|
|
111
|
-
var request = window === null ||
|
|
110
|
+
var _window__SSR_DATA_context, _window__SSR_DATA, _window;
|
|
111
|
+
var request = (_window = window) === null || _window === void 0 ? void 0 : (_window__SSR_DATA = _window._SSR_DATA) === null || _window__SSR_DATA === void 0 ? void 0 : (_window__SSR_DATA_context = _window__SSR_DATA.context) === null || _window__SSR_DATA_context === void 0 ? void 0 : _window__SSR_DATA_context.request;
|
|
112
112
|
if (!request) {
|
|
113
113
|
context.ssrContext = _object_spread_props(_object_spread({}, context.ssrContext), {
|
|
114
114
|
response: mockResp,
|
|
@@ -126,8 +126,8 @@ export var ssr = function(config) {
|
|
|
126
126
|
},
|
|
127
127
|
pickContext: function(param, next) {
|
|
128
128
|
var context = param.context, pickedContext = param.pickedContext;
|
|
129
|
-
var _window__SSR_DATA,
|
|
130
|
-
var request = window === null ||
|
|
129
|
+
var _window__SSR_DATA_context, _window__SSR_DATA, _window;
|
|
130
|
+
var request = (_window = window) === null || _window === void 0 ? void 0 : (_window__SSR_DATA = _window._SSR_DATA) === null || _window__SSR_DATA === void 0 ? void 0 : (_window__SSR_DATA_context = _window__SSR_DATA.context) === null || _window__SSR_DATA_context === void 0 ? void 0 : _window__SSR_DATA_context.request;
|
|
131
131
|
var initialData = context.initialData;
|
|
132
132
|
if (!request) {
|
|
133
133
|
return next({
|
|
@@ -49,7 +49,8 @@ export var ssr = function() {
|
|
|
49
49
|
},
|
|
50
50
|
pickContext: function(param, next) {
|
|
51
51
|
var context = param.context, pickedContext = param.pickedContext;
|
|
52
|
-
var
|
|
52
|
+
var _context;
|
|
53
|
+
var _ref = (_context = context) === null || _context === void 0 ? void 0 : _context.ssrContext, request = _ref.request, response = _ref.response;
|
|
53
54
|
var initialData = context.initialData;
|
|
54
55
|
return next({
|
|
55
56
|
context: context,
|
package/dist/esm/ssr/prefetch.js
CHANGED
|
@@ -10,7 +10,7 @@ var prefetch = function() {
|
|
|
10
10
|
return [
|
|
11
11
|
2,
|
|
12
12
|
run(context.ssrContext.request.headers, /* @__PURE__ */ _async_to_generator(function() {
|
|
13
|
-
var _context_store, ssrContext, loadableStats, extractor, loadersData;
|
|
13
|
+
var _context_store, _context, ssrContext, loadableStats, extractor, loadersData;
|
|
14
14
|
return _ts_generator(this, function(_state2) {
|
|
15
15
|
switch (_state2.label) {
|
|
16
16
|
case 0:
|
|
@@ -61,7 +61,7 @@ var prefetch = function() {
|
|
|
61
61
|
initialData: context.initialData,
|
|
62
62
|
i18nData: context.__i18nData__,
|
|
63
63
|
// todo: move to plugin state
|
|
64
|
-
storeState: context === null ||
|
|
64
|
+
storeState: (_context = context) === null || _context === void 0 ? void 0 : (_context_store = _context.store) === null || _context_store === void 0 ? void 0 : _context_store.getState()
|
|
65
65
|
}
|
|
66
66
|
];
|
|
67
67
|
}
|
|
@@ -46,8 +46,9 @@ export var aggKeysFromPropsList = function aggKeysFromPropsList2(propsList, prop
|
|
|
46
46
|
return usefulObject(props[propName]);
|
|
47
47
|
}).reduce(function(result, next) {
|
|
48
48
|
REQUEST_META.forEach(function(key) {
|
|
49
|
+
var _prop;
|
|
49
50
|
var prop = next[propName];
|
|
50
|
-
if ((prop === null ||
|
|
51
|
+
if (((_prop = prop) === null || _prop === void 0 ? void 0 : _prop.hasOwnProperty(key)) && usefulArray(prop[key])) {
|
|
51
52
|
result[key] = unique(result[key].concat(prop[key]));
|
|
52
53
|
}
|
|
53
54
|
});
|
|
@@ -72,8 +73,9 @@ export var aggMatchesFromPropsList = function aggMatchesFromPropsList2(propsList
|
|
|
72
73
|
return usefulObject(props[propName]);
|
|
73
74
|
}).reduce(function(result, next) {
|
|
74
75
|
REQUEST_META.forEach(function(key) {
|
|
76
|
+
var _prop;
|
|
75
77
|
var prop = next[propName];
|
|
76
|
-
if ((prop === null ||
|
|
78
|
+
if (((_prop = prop) === null || _prop === void 0 ? void 0 : _prop.hasOwnProperty(key)) && usefulObject(prop[key])) {
|
|
77
79
|
result[key] = Object.assign(result[key], prop[key]);
|
|
78
80
|
}
|
|
79
81
|
});
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export var ServerTimingNames;
|
|
2
|
+
(function(ServerTimingNames2) {
|
|
3
|
+
ServerTimingNames2["SSR_RENDER_TOTAL"] = "ssr-render-total";
|
|
4
|
+
ServerTimingNames2["SSR_PREFETCH"] = "ssr-prefetch";
|
|
5
|
+
ServerTimingNames2["SSR_RENDER_HTML"] = "ssr-render-html";
|
|
6
|
+
})(ServerTimingNames || (ServerTimingNames = {}));
|
|
@@ -9,6 +9,7 @@ function getHeadTemplate(beforeEntryTemplate, context) {
|
|
|
9
9
|
var injectCss = function injectCss2(headTemplate2) {
|
|
10
10
|
return headTemplate2.replace(CSS_CHUNKS_PLACEHOLDER, getCssChunks());
|
|
11
11
|
function getCssChunks() {
|
|
12
|
+
var _matches;
|
|
12
13
|
var routeManifest = context.routeManifest, routerContext = context.routerContext, routes = context.routes;
|
|
13
14
|
if (!routeManifest || !routerContext || !routes) {
|
|
14
15
|
return "";
|
|
@@ -16,7 +17,7 @@ function getHeadTemplate(beforeEntryTemplate, context) {
|
|
|
16
17
|
var routeAssets = routeManifest.routeAssets;
|
|
17
18
|
var cssChunks = [];
|
|
18
19
|
var matches = matchRoutes(routes, routerContext.location, routerContext.basename);
|
|
19
|
-
matches === null ||
|
|
20
|
+
(_matches = matches) === null || _matches === void 0 ? void 0 : _matches.forEach(function(match, index) {
|
|
20
21
|
if (!index) {
|
|
21
22
|
return;
|
|
22
23
|
}
|
|
@@ -27,7 +28,8 @@ function getHeadTemplate(beforeEntryTemplate, context) {
|
|
|
27
28
|
var _cssChunks;
|
|
28
29
|
var _routeManifest_referenceCssAssets = routeManifest2.referenceCssAssets, referenceCssAssets = _routeManifest_referenceCssAssets === void 0 ? [] : _routeManifest_referenceCssAssets;
|
|
29
30
|
var _cssChunks1 = referenceCssAssets.filter(function(asset) {
|
|
30
|
-
|
|
31
|
+
var _asset;
|
|
32
|
+
return ((_asset = asset) === null || _asset === void 0 ? void 0 : _asset.endsWith(".css")) && !headTemplate2.includes(asset);
|
|
31
33
|
});
|
|
32
34
|
(_cssChunks = cssChunks).push.apply(_cssChunks, _to_consumable_array(_cssChunks1));
|
|
33
35
|
}
|
|
@@ -2,8 +2,8 @@ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
|
2
2
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
3
3
|
import { createElement } from "react";
|
|
4
4
|
import { run } from "@modern-js/utils/runtime-node";
|
|
5
|
+
import { time } from "@modern-js/utils/universal/time";
|
|
5
6
|
import { PreRender } from "../../react/prerender";
|
|
6
|
-
import { time } from "../time";
|
|
7
7
|
import renderToPipe from "./renderToPipe";
|
|
8
8
|
export var render = function(param) {
|
|
9
9
|
var App = param.App, context = param.context;
|
|
@@ -16,17 +16,18 @@ function renderToPipe(rootElement, context, options) {
|
|
|
16
16
|
var chunkVec = [];
|
|
17
17
|
var forUserPipe = function(stream) {
|
|
18
18
|
return new Promise(function(resolve) {
|
|
19
|
+
var _ssrContext;
|
|
19
20
|
var renderToPipeableStream;
|
|
20
21
|
try {
|
|
21
22
|
renderToPipeableStream = require("react-dom/server").renderToPipeableStream;
|
|
22
23
|
} catch (e) {
|
|
23
24
|
}
|
|
24
25
|
var pipe = renderToPipeableStream(rootElement, _object_spread_props(_object_spread({}, options), {
|
|
25
|
-
nonce: ssrContext === null ||
|
|
26
|
+
nonce: (_ssrContext = ssrContext) === null || _ssrContext === void 0 ? void 0 : _ssrContext.nonce,
|
|
26
27
|
onShellReady: function onShellReady() {
|
|
27
|
-
var _options_onShellReady;
|
|
28
|
+
var _options_onShellReady, _options;
|
|
28
29
|
var _getTemplates = getTemplates(context, RenderLevel.SERVER_RENDER), shellAfter = _getTemplates.shellAfter, shellBefore = _getTemplates.shellBefore;
|
|
29
|
-
options === null ||
|
|
30
|
+
(_options = options) === null || _options === void 0 ? void 0 : (_options_onShellReady = _options.onShellReady) === null || _options_onShellReady === void 0 ? void 0 : _options_onShellReady.call(_options);
|
|
30
31
|
var injectableTransform = new Transform({
|
|
31
32
|
transform: function transform(chunk, _encoding, callback) {
|
|
32
33
|
try {
|
|
@@ -54,18 +55,18 @@ function renderToPipe(rootElement, context, options) {
|
|
|
54
55
|
resolve(pipe(injectableTransform).pipe(stream));
|
|
55
56
|
},
|
|
56
57
|
onShellError: function onShellError(error) {
|
|
57
|
-
var _options_onShellError;
|
|
58
|
+
var _options_onShellError, _options;
|
|
58
59
|
ssrContext.metrics.emitCounter("app.render.streaming.shell.error", 1);
|
|
59
60
|
var _getTemplates = getTemplates(context, RenderLevel.CLIENT_RENDER), shellAfter = _getTemplates.shellAfter, shellBefore = _getTemplates.shellBefore;
|
|
60
61
|
var fallbackHtml = "".concat(shellBefore).concat(shellAfter);
|
|
61
62
|
resolve(fallbackHtml);
|
|
62
|
-
options === null ||
|
|
63
|
+
(_options = options) === null || _options === void 0 ? void 0 : (_options_onShellError = _options.onShellError) === null || _options_onShellError === void 0 ? void 0 : _options_onShellError.call(_options, error);
|
|
63
64
|
},
|
|
64
65
|
onError: function onError(error) {
|
|
65
|
-
var _options_onError;
|
|
66
|
+
var _options_onError, _options;
|
|
66
67
|
ssrContext.logger.error("An error occurs during streaming SSR", error);
|
|
67
68
|
ssrContext.metrics.emitCounter("app.render.streaming.error", 1);
|
|
68
|
-
options === null ||
|
|
69
|
+
(_options = options) === null || _options === void 0 ? void 0 : (_options_onError = _options.onError) === null || _options_onError === void 0 ? void 0 : _options_onError.call(_options, error);
|
|
69
70
|
}
|
|
70
71
|
})).pipe;
|
|
71
72
|
});
|
|
@@ -16,7 +16,7 @@ function renderToPipe(rootElement, context, options) {
|
|
|
16
16
|
var ssrContext = context.ssrContext;
|
|
17
17
|
var forUserPipe = function() {
|
|
18
18
|
var _ref = _async_to_generator(function() {
|
|
19
|
-
var renderToReadableStream, _getTemplates, shellAfter, shellBefore, readableOriginal, reader, injectableStream, err, _getTemplates1, shellAfter1, shellBefore1, fallbackHtml;
|
|
19
|
+
var renderToReadableStream, _getTemplates, shellAfter, shellBefore, _ssrContext, readableOriginal, reader, injectableStream, err, _ssrContext1, _getTemplates1, shellAfter1, shellBefore1, fallbackHtml;
|
|
20
20
|
return _ts_generator(this, function(_state) {
|
|
21
21
|
switch (_state.label) {
|
|
22
22
|
case 0:
|
|
@@ -36,12 +36,12 @@ function renderToPipe(rootElement, context, options) {
|
|
|
36
36
|
return [
|
|
37
37
|
4,
|
|
38
38
|
renderToReadableStream(rootElement, _object_spread_props(_object_spread({}, options), {
|
|
39
|
-
nonce: ssrContext === null ||
|
|
39
|
+
nonce: (_ssrContext = ssrContext) === null || _ssrContext === void 0 ? void 0 : _ssrContext.nonce,
|
|
40
40
|
onError: function onError(error) {
|
|
41
|
-
var _options_onError;
|
|
42
|
-
ssrContext === null ||
|
|
43
|
-
ssrContext === null ||
|
|
44
|
-
options === null ||
|
|
41
|
+
var _ssrContext2, _ssrContext12, _options_onError, _options;
|
|
42
|
+
(_ssrContext2 = ssrContext) === null || _ssrContext2 === void 0 ? void 0 : _ssrContext2.logger.error("An error occurs during streaming SSR", error);
|
|
43
|
+
(_ssrContext12 = ssrContext) === null || _ssrContext12 === void 0 ? void 0 : _ssrContext12.metrics.emitCounter("app.render.streaming.error", 1);
|
|
44
|
+
(_options = options) === null || _options === void 0 ? void 0 : (_options_onError = _options.onError) === null || _options_onError === void 0 ? void 0 : _options_onError.call(_options, error);
|
|
45
45
|
}
|
|
46
46
|
}))
|
|
47
47
|
];
|
|
@@ -101,7 +101,7 @@ function renderToPipe(rootElement, context, options) {
|
|
|
101
101
|
];
|
|
102
102
|
case 3:
|
|
103
103
|
err = _state.sent();
|
|
104
|
-
ssrContext === null ||
|
|
104
|
+
(_ssrContext1 = ssrContext) === null || _ssrContext1 === void 0 ? void 0 : _ssrContext1.metrics.emitCounter("app.render.streaming.shell.error", 1);
|
|
105
105
|
_getTemplates1 = getTemplates(context, RenderLevel.CLIENT_RENDER), shellAfter1 = _getTemplates1.shellAfter, shellBefore1 = _getTemplates1.shellBefore;
|
|
106
106
|
fallbackHtml = "".concat(shellBefore1).concat(shellAfter1);
|
|
107
107
|
return [
|
|
@@ -8,17 +8,19 @@ import React from "react";
|
|
|
8
8
|
import ReactDomServer from "react-dom/server";
|
|
9
9
|
import { serializeJson } from "@modern-js/utils/runtime-node";
|
|
10
10
|
import ReactHelmet from "react-helmet";
|
|
11
|
+
import { time } from "@modern-js/utils/universal/time";
|
|
11
12
|
import { serializeErrors } from "../../../router/runtime/utils";
|
|
12
13
|
import helmetReplace from "../helmet";
|
|
13
14
|
import { RenderLevel } from "../types";
|
|
14
|
-
import { time } from "../time";
|
|
15
15
|
import prefetch from "../../prefetch";
|
|
16
16
|
import { ROUTER_DATA_JSON_ID, SSR_DATA_JSON_ID, attributesToString } from "../utils";
|
|
17
|
+
import { createSSRReporter } from "../reporter";
|
|
18
|
+
import { ServerTimingNames } from "../constants";
|
|
17
19
|
import { toFragments } from "./template";
|
|
18
20
|
import { reduce } from "./reduce";
|
|
19
21
|
import * as loadableRenderer from "./loadable";
|
|
20
22
|
import * as styledComponentRenderer from "./styledComponent";
|
|
21
|
-
var buildTemplateData = function(context, data, renderLevel) {
|
|
23
|
+
var buildTemplateData = function(context, data, renderLevel, reporter) {
|
|
22
24
|
var request = context.request, enableUnsafeCtx = context.enableUnsafeCtx;
|
|
23
25
|
var unsafeContext = {
|
|
24
26
|
headers: request.headers
|
|
@@ -32,7 +34,10 @@ var buildTemplateData = function(context, data, renderLevel) {
|
|
|
32
34
|
pathname: request.pathname,
|
|
33
35
|
host: request.host,
|
|
34
36
|
url: request.url
|
|
35
|
-
}, enableUnsafeCtx ? unsafeContext : {})
|
|
37
|
+
}, enableUnsafeCtx ? unsafeContext : {}),
|
|
38
|
+
reporter: {
|
|
39
|
+
sessionId: reporter.sessionId
|
|
40
|
+
}
|
|
36
41
|
},
|
|
37
42
|
renderLevel: renderLevel
|
|
38
43
|
};
|
|
@@ -45,6 +50,8 @@ var Entry = /* @__PURE__ */ function() {
|
|
|
45
50
|
_define_property(this, "result", void 0);
|
|
46
51
|
_define_property(this, "metrics", void 0);
|
|
47
52
|
_define_property(this, "logger", void 0);
|
|
53
|
+
_define_property(this, "severTiming", void 0);
|
|
54
|
+
_define_property(this, "reporter", void 0);
|
|
48
55
|
_define_property(this, "template", void 0);
|
|
49
56
|
_define_property(this, "App", void 0);
|
|
50
57
|
_define_property(this, "fragments", void 0);
|
|
@@ -59,6 +66,8 @@ var Entry = /* @__PURE__ */ function() {
|
|
|
59
66
|
this.host = host;
|
|
60
67
|
this.App = options.App;
|
|
61
68
|
this.pluginConfig = config;
|
|
69
|
+
this.reporter = createSSRReporter(ctx.reporter);
|
|
70
|
+
this.severTiming = ctx.serverTiming;
|
|
62
71
|
this.metrics = ctx.metrics;
|
|
63
72
|
this.logger = ctx.logger;
|
|
64
73
|
this.nonce = nonce;
|
|
@@ -115,7 +124,7 @@ var Entry = /* @__PURE__ */ function() {
|
|
|
115
124
|
errors: serializeErrors(routerContext.errors)
|
|
116
125
|
} : void 0;
|
|
117
126
|
html = "";
|
|
118
|
-
templateData = buildTemplateData(ssrContext, prefetchData, _this.result.renderLevel);
|
|
127
|
+
templateData = buildTemplateData(ssrContext, prefetchData, _this.result.renderLevel, _this.reporter);
|
|
119
128
|
SSRData = _this.getSSRDataScript(templateData, routerData);
|
|
120
129
|
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
121
130
|
try {
|
|
@@ -179,6 +188,8 @@ var Entry = /* @__PURE__ */ function() {
|
|
|
179
188
|
prefetchCost = end();
|
|
180
189
|
_this.logger.debug("App Prefetch cost = %d ms", prefetchCost);
|
|
181
190
|
_this.metrics.emitTimer("app.prefetch.cost", prefetchCost);
|
|
191
|
+
_this.reporter.reportTime("app_prefetch_cost", prefetchCost);
|
|
192
|
+
_this.severTiming.addServeTiming(ServerTimingNames.SSR_PREFETCH, prefetchCost);
|
|
182
193
|
return [
|
|
183
194
|
3,
|
|
184
195
|
4
|
|
@@ -187,6 +198,7 @@ var Entry = /* @__PURE__ */ function() {
|
|
|
187
198
|
e = _state.sent();
|
|
188
199
|
_this.result.renderLevel = RenderLevel.CLIENT_RENDER;
|
|
189
200
|
_this.logger.error("App Prefetch Render", e);
|
|
201
|
+
_this.reporter.reportError("App Prefetch Render", e);
|
|
190
202
|
_this.metrics.emitCounter("app.prefetch.render.error", 1);
|
|
191
203
|
return [
|
|
192
204
|
3,
|
|
@@ -233,9 +245,12 @@ var Entry = /* @__PURE__ */ function() {
|
|
|
233
245
|
var cost = end();
|
|
234
246
|
this.logger.debug("App Render To HTML cost = %d ms", cost);
|
|
235
247
|
this.metrics.emitTimer("app.render.html.cost", cost);
|
|
248
|
+
this.reporter.reportTime("app_render_html_cost", cost);
|
|
249
|
+
this.severTiming.addServeTiming(ServerTimingNames.SSR_RENDER_HTML, cost);
|
|
236
250
|
this.result.renderLevel = RenderLevel.SERVER_RENDER;
|
|
237
251
|
} catch (e) {
|
|
238
252
|
this.logger.error("App Render To HTML", e);
|
|
253
|
+
this.reporter.reportError("App Render To HTML", e);
|
|
239
254
|
this.metrics.emitCounter("app.render.html.error", 1);
|
|
240
255
|
}
|
|
241
256
|
return html;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
2
2
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
3
3
|
import { run } from "@modern-js/utils/runtime-node";
|
|
4
|
+
import { time } from "@modern-js/utils/universal/time";
|
|
4
5
|
import { PreRender } from "../../react/prerender";
|
|
5
|
-
import {
|
|
6
|
+
import { ServerTimingNames } from "../constants";
|
|
6
7
|
import SSREntry from "./entry";
|
|
7
8
|
export var render = function(param) {
|
|
8
9
|
var App = param.App, context = param.context, config = param.config;
|
|
@@ -28,6 +29,8 @@ export var render = function(param) {
|
|
|
28
29
|
cost = end();
|
|
29
30
|
entry.logger.info("App Render Total cost = %d ms", cost);
|
|
30
31
|
entry.metrics.emitTimer("app.render.cost", cost);
|
|
32
|
+
entry.reporter.reportTime("app_render_cost", cost);
|
|
33
|
+
entry.severTiming.addServeTiming(ServerTimingNames.SSR_RENDER_TOTAL, cost);
|
|
31
34
|
cacheConfig = PreRender.config();
|
|
32
35
|
if (cacheConfig) {
|
|
33
36
|
context.ssrContext.cacheConfig = cacheConfig;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { ChunkExtractor } from "@loadable/server";
|
|
2
2
|
import { attributesToString, getLoadableScripts } from "../utils";
|
|
3
3
|
var extname = function(uri) {
|
|
4
|
+
var _uri;
|
|
4
5
|
if (typeof uri !== "string" || !uri.includes(".")) {
|
|
5
6
|
return "";
|
|
6
7
|
}
|
|
7
|
-
return ".".concat(uri === null ||
|
|
8
|
+
return ".".concat((_uri = uri) === null || _uri === void 0 ? void 0 : _uri.split(".").pop()) || "";
|
|
8
9
|
};
|
|
9
10
|
export var toHtml = function(jsx, renderer, next) {
|
|
10
11
|
var stats = renderer.stats, chunksMap = renderer.result.chunksMap, _renderer_config = renderer.config, config = _renderer_config === void 0 ? {} : _renderer_config, nonce = renderer.nonce;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export function createSSRReporter(reporter) {
|
|
2
|
+
var _reporter = {
|
|
3
|
+
get sessionId() {
|
|
4
|
+
return reporter.sessionId;
|
|
5
|
+
},
|
|
6
|
+
get userId() {
|
|
7
|
+
return reporter.userId;
|
|
8
|
+
},
|
|
9
|
+
reportError: function reportError(content, e) {
|
|
10
|
+
reporter.reportError("SSR Error - ".concat(content), e);
|
|
11
|
+
},
|
|
12
|
+
reportTime: function reportTime(name, cost) {
|
|
13
|
+
reporter.reportTiming("ssr_".concat(name), cost);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
return _reporter;
|
|
17
|
+
}
|
|
@@ -77,8 +77,8 @@ var state = function(config) {
|
|
|
77
77
|
init: function init(param, next) {
|
|
78
78
|
var context = param.context;
|
|
79
79
|
if (isBrowser()) {
|
|
80
|
-
var _window__SSR_DATA,
|
|
81
|
-
storeConfig.initialState = storeConfig.initialState || (window === null ||
|
|
80
|
+
var _window__SSR_DATA_data, _window__SSR_DATA, _window;
|
|
81
|
+
storeConfig.initialState = storeConfig.initialState || ((_window = window) === null || _window === void 0 ? void 0 : (_window__SSR_DATA = _window._SSR_DATA) === null || _window__SSR_DATA === void 0 ? void 0 : (_window__SSR_DATA_data = _window__SSR_DATA.data) === null || _window__SSR_DATA_data === void 0 ? void 0 : _window__SSR_DATA_data.storeState) || {};
|
|
82
82
|
}
|
|
83
83
|
context.store = createStore(storeConfig);
|
|
84
84
|
return next({
|
|
@@ -48,15 +48,16 @@ export const createApp = ({ plugins, props: globalProps }) => {
|
|
|
48
48
|
}, {
|
|
49
49
|
onLast: ({ App: App2 }) => {
|
|
50
50
|
const WrapComponent = ({ context, ...props }) => {
|
|
51
|
+
var _contextValue;
|
|
51
52
|
let contextValue = context;
|
|
52
|
-
if (!(contextValue === null ||
|
|
53
|
+
if (!((_contextValue = contextValue) === null || _contextValue === void 0 ? void 0 : _contextValue.runner)) {
|
|
53
54
|
contextValue = getInitialContext(runner);
|
|
54
55
|
runner.init({
|
|
55
56
|
context: contextValue
|
|
56
57
|
}, {
|
|
57
58
|
onLast: ({ context: context1 }) => {
|
|
58
|
-
var _App_init;
|
|
59
|
-
return App2 === null ||
|
|
59
|
+
var _App_init, _App;
|
|
60
|
+
return (_App = App2) === null || _App === void 0 ? void 0 : (_App_init = _App.init) === null || _App_init === void 0 ? void 0 : _App_init.call(_App, context1);
|
|
60
61
|
}
|
|
61
62
|
});
|
|
62
63
|
}
|
|
@@ -88,16 +89,14 @@ export const bootstrap = async (BootApp, id, root, ReactDOM) => {
|
|
|
88
89
|
runner = runnerMap.get(App);
|
|
89
90
|
}
|
|
90
91
|
const context = getInitialContext(runner);
|
|
91
|
-
const runInit = (_context) => {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
});
|
|
100
|
-
};
|
|
92
|
+
const runInit = (_context) => runner.init({
|
|
93
|
+
context: _context
|
|
94
|
+
}, {
|
|
95
|
+
onLast: ({ context: context1 }) => {
|
|
96
|
+
var _App_init, _App;
|
|
97
|
+
return (_App = App) === null || _App === void 0 ? void 0 : (_App_init = _App.init) === null || _App_init === void 0 ? void 0 : _App_init.call(_App, context1);
|
|
98
|
+
}
|
|
99
|
+
});
|
|
101
100
|
if (!id) {
|
|
102
101
|
return /* @__PURE__ */ React.createElement(App, {
|
|
103
102
|
context
|
|
@@ -106,9 +105,9 @@ export const bootstrap = async (BootApp, id, root, ReactDOM) => {
|
|
|
106
105
|
const isBrowser = typeof window !== "undefined" && window.name !== "nodejs";
|
|
107
106
|
if (isBrowser) {
|
|
108
107
|
if (isClientArgs(id)) {
|
|
109
|
-
var _ssrData_data, _ssrData_data1;
|
|
108
|
+
var _ssrData_data, _ssrData, _ssrData1, _ssrData_data1, _ssrData2;
|
|
110
109
|
const ssrData = window._SSR_DATA;
|
|
111
|
-
const loadersData = (ssrData === null ||
|
|
110
|
+
const loadersData = ((_ssrData = ssrData) === null || _ssrData === void 0 ? void 0 : (_ssrData_data = _ssrData.data) === null || _ssrData_data === void 0 ? void 0 : _ssrData_data.loadersData) || {};
|
|
112
111
|
const initialLoadersState = Object.keys(loadersData).reduce((res, key) => {
|
|
113
112
|
const loaderData = loadersData[key];
|
|
114
113
|
if (loaderData.loading !== false) {
|
|
@@ -122,10 +121,10 @@ export const bootstrap = async (BootApp, id, root, ReactDOM) => {
|
|
|
122
121
|
skipStatic: true
|
|
123
122
|
}),
|
|
124
123
|
...ssrData ? {
|
|
125
|
-
ssrContext: ssrData === null ||
|
|
124
|
+
ssrContext: (_ssrData1 = ssrData) === null || _ssrData1 === void 0 ? void 0 : _ssrData1.context
|
|
126
125
|
} : {}
|
|
127
126
|
});
|
|
128
|
-
context.initialData = ssrData === null ||
|
|
127
|
+
context.initialData = (_ssrData2 = ssrData) === null || _ssrData2 === void 0 ? void 0 : (_ssrData_data1 = _ssrData2.data) === null || _ssrData_data1 === void 0 ? void 0 : _ssrData_data1.initialData;
|
|
129
128
|
const initialData = await runInit(context);
|
|
130
129
|
if (initialData) {
|
|
131
130
|
context.initialData = initialData;
|
|
@@ -14,7 +14,7 @@ const useLoader = (loaderFn, options = {
|
|
|
14
14
|
delete options._cache;
|
|
15
15
|
}
|
|
16
16
|
const load = useCallback((params) => {
|
|
17
|
-
var _unlistenLoaderChangeRef_current, _window__SSR_DATA_data_loadersData_id, _window__SSR_DATA,
|
|
17
|
+
var _unlistenLoaderChangeRef_current, _unlistenLoaderChangeRef, _window__SSR_DATA_data_loadersData_id, _window__SSR_DATA_data, _window__SSR_DATA, _window, _loaderRef_current;
|
|
18
18
|
if (typeof params === "undefined") {
|
|
19
19
|
var _loaderRef_current1;
|
|
20
20
|
return (_loaderRef_current1 = loaderRef.current) === null || _loaderRef_current1 === void 0 ? void 0 : _loaderRef_current1.load();
|
|
@@ -34,37 +34,35 @@ const useLoader = (loaderFn, options = {
|
|
|
34
34
|
params
|
|
35
35
|
});
|
|
36
36
|
loaderRef.current = loaderManager.get(id);
|
|
37
|
-
(_unlistenLoaderChangeRef_current = unlistenLoaderChangeRef.current) === null || _unlistenLoaderChangeRef_current === void 0 ? void 0 : _unlistenLoaderChangeRef_current.call(
|
|
37
|
+
(_unlistenLoaderChangeRef_current = (_unlistenLoaderChangeRef = unlistenLoaderChangeRef).current) === null || _unlistenLoaderChangeRef_current === void 0 ? void 0 : _unlistenLoaderChangeRef_current.call(_unlistenLoaderChangeRef);
|
|
38
38
|
if (isSSRRender) {
|
|
39
39
|
return void 0;
|
|
40
40
|
}
|
|
41
41
|
if (options.skip) {
|
|
42
42
|
return void 0;
|
|
43
43
|
}
|
|
44
|
-
if (context._hydration && ((
|
|
44
|
+
if (context._hydration && ((_window = window) === null || _window === void 0 ? void 0 : (_window__SSR_DATA = _window._SSR_DATA) === null || _window__SSR_DATA === void 0 ? void 0 : (_window__SSR_DATA_data = _window__SSR_DATA.data) === null || _window__SSR_DATA_data === void 0 ? void 0 : (_window__SSR_DATA_data_loadersData_id = _window__SSR_DATA_data.loadersData[id]) === null || _window__SSR_DATA_data_loadersData_id === void 0 ? void 0 : _window__SSR_DATA_data_loadersData_id.error) === null) {
|
|
45
45
|
return void 0;
|
|
46
46
|
}
|
|
47
47
|
const res = loaderRef.current.load();
|
|
48
48
|
unlistenLoaderChangeRef.current = (_loaderRef_current = loaderRef.current) === null || _loaderRef_current === void 0 ? void 0 : _loaderRef_current.onChange((_status, _result) => {
|
|
49
49
|
setResult(_result);
|
|
50
50
|
if (_status === LoaderStatus.fulfilled) {
|
|
51
|
-
var _options_onSuccess;
|
|
52
|
-
options === null ||
|
|
51
|
+
var _options_onSuccess, _options;
|
|
52
|
+
(_options = options) === null || _options === void 0 ? void 0 : (_options_onSuccess = _options.onSuccess) === null || _options_onSuccess === void 0 ? void 0 : _options_onSuccess.call(_options, _result.data);
|
|
53
53
|
}
|
|
54
54
|
if (_status === LoaderStatus.rejected) {
|
|
55
|
-
var _options_onError;
|
|
56
|
-
options === null ||
|
|
55
|
+
var _options_onError, _options1;
|
|
56
|
+
(_options1 = options) === null || _options1 === void 0 ? void 0 : (_options_onError = _options1.onError) === null || _options_onError === void 0 ? void 0 : _options_onError.call(_options1, _result.error);
|
|
57
57
|
}
|
|
58
58
|
});
|
|
59
59
|
return res;
|
|
60
60
|
}, [
|
|
61
61
|
options.skip
|
|
62
62
|
]);
|
|
63
|
-
useEffect(() => {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
(_unlistenLoaderChangeRef_current = unlistenLoaderChangeRef.current) === null || _unlistenLoaderChangeRef_current === void 0 ? void 0 : _unlistenLoaderChangeRef_current.call(unlistenLoaderChangeRef);
|
|
67
|
-
};
|
|
63
|
+
useEffect(() => () => {
|
|
64
|
+
var _unlistenLoaderChangeRef_current, _unlistenLoaderChangeRef;
|
|
65
|
+
(_unlistenLoaderChangeRef_current = (_unlistenLoaderChangeRef = unlistenLoaderChangeRef).current) === null || _unlistenLoaderChangeRef_current === void 0 ? void 0 : _unlistenLoaderChangeRef_current.call(_unlistenLoaderChangeRef);
|
|
68
66
|
}, []);
|
|
69
67
|
useMemo(() => {
|
|
70
68
|
var _options_params;
|
|
@@ -18,12 +18,13 @@ export const createRuntime = () => createManager(runtimeHooks);
|
|
|
18
18
|
const registerInit = (App, _init) => {
|
|
19
19
|
const originalInit = App.init;
|
|
20
20
|
App.init = async (context) => {
|
|
21
|
+
var _originalInit, _init1;
|
|
21
22
|
if (!context.loaderManager) {
|
|
22
23
|
context.loaderManager = createLoaderManager({});
|
|
23
24
|
}
|
|
24
25
|
await Promise.all([
|
|
25
|
-
originalInit === null ||
|
|
26
|
-
_init === null ||
|
|
26
|
+
(_originalInit = originalInit) === null || _originalInit === void 0 ? void 0 : _originalInit(context),
|
|
27
|
+
(_init1 = _init) === null || _init1 === void 0 ? void 0 : _init1(context)
|
|
27
28
|
]);
|
|
28
29
|
};
|
|
29
30
|
};
|
|
@@ -6,7 +6,8 @@ function findTargetChild(tag, children) {
|
|
|
6
6
|
return children.find((item) => getEleType(item) === tag);
|
|
7
7
|
}
|
|
8
8
|
function getEleType(ele) {
|
|
9
|
-
|
|
9
|
+
var _ele, _ele1;
|
|
10
|
+
return typeof ((_ele = ele) === null || _ele === void 0 ? void 0 : _ele.type) === "function" ? ele.type.name : (_ele1 = ele) === null || _ele1 === void 0 ? void 0 : _ele1.type;
|
|
10
11
|
}
|
|
11
12
|
function findTargetElement(tag, children) {
|
|
12
13
|
if (children.length === 0) {
|
|
@@ -14,11 +15,11 @@ function findTargetElement(tag, children) {
|
|
|
14
15
|
}
|
|
15
16
|
let nextChildren = [];
|
|
16
17
|
for (const item of children) {
|
|
17
|
-
var _item_props;
|
|
18
|
+
var _item_props, _item;
|
|
18
19
|
if (tag === getEleType(item)) {
|
|
19
20
|
return item;
|
|
20
21
|
}
|
|
21
|
-
if (item === null ||
|
|
22
|
+
if ((_item = item) === null || _item === void 0 ? void 0 : (_item_props = _item.props) === null || _item_props === void 0 ? void 0 : _item_props.children) {
|
|
22
23
|
nextChildren = nextChildren.concat(item.props.children);
|
|
23
24
|
}
|
|
24
25
|
}
|