@modern-js/runtime 2.58.4-alpha.2 → 2.59.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/dist/cjs/core/browser/index.js +0 -5
- package/dist/cjs/core/react/index.js +7 -0
- package/dist/cjs/router/cli/code/index.js +23 -15
- package/dist/cjs/router/cli/index.js +1 -2
- package/dist/esm/core/browser/index.js +1 -6
- package/dist/esm/core/react/index.js +7 -0
- package/dist/esm/router/cli/code/index.js +32 -34
- package/dist/esm/router/cli/index.js +1 -2
- package/dist/esm-node/core/browser/index.js +0 -5
- package/dist/esm-node/core/react/index.js +7 -0
- package/dist/esm-node/router/cli/code/index.js +21 -13
- package/dist/esm-node/router/cli/index.js +1 -2
- package/dist/types/router/runtime/withRouter.d.ts +5 -3
- package/package.json +12 -12
|
@@ -31,9 +31,7 @@ __export(browser_exports, {
|
|
|
31
31
|
render: () => render
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(browser_exports);
|
|
34
|
-
var import_parsed = require("@modern-js/runtime-utils/parsed");
|
|
35
34
|
var import_cookie = __toESM(require("cookie"));
|
|
36
|
-
var import_constants = require("../constants");
|
|
37
35
|
var import_context = require("../context");
|
|
38
36
|
var import_runtime = require("../context/runtime");
|
|
39
37
|
var import_loaderManager = require("../loader/loaderManager");
|
|
@@ -92,9 +90,6 @@ async function render(App, id) {
|
|
|
92
90
|
};
|
|
93
91
|
if (isClientArgs(id)) {
|
|
94
92
|
var _ssrData_data, _ssrData_data1;
|
|
95
|
-
window._SSR_DATA = window._SSR_DATA || (0, import_parsed.parsedJSONFromElement)(import_constants.SSR_DATA_JSON_ID);
|
|
96
|
-
const routeData = (0, import_parsed.parsedJSONFromElement)(import_constants.ROUTER_DATA_JSON_ID);
|
|
97
|
-
window._ROUTER_DATA = window._ROUTER_DATA || routeData;
|
|
98
93
|
const ssrData = getSSRData();
|
|
99
94
|
const loadersData = (ssrData === null || ssrData === void 0 ? void 0 : (_ssrData_data = ssrData.data) === null || _ssrData_data === void 0 ? void 0 : _ssrData_data.loadersData) || {};
|
|
100
95
|
const initialLoadersState = Object.keys(loadersData).reduce((res, key) => {
|
|
@@ -21,10 +21,17 @@ __export(react_exports, {
|
|
|
21
21
|
createRoot: () => createRoot
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(react_exports);
|
|
24
|
+
var import_parsed = require("@modern-js/runtime-utils/parsed");
|
|
25
|
+
var import_common = require("../../common");
|
|
26
|
+
var import_constants = require("../constants");
|
|
24
27
|
var import_context = require("../context");
|
|
25
28
|
var import_runner = require("../plugin/runner");
|
|
26
29
|
function createRoot(UserApp) {
|
|
27
30
|
const App = UserApp || (0, import_context.getGlobalApp)();
|
|
31
|
+
if ((0, import_common.isBrowser)()) {
|
|
32
|
+
window._SSR_DATA = window._SSR_DATA || (0, import_parsed.parsedJSONFromElement)(import_constants.SSR_DATA_JSON_ID);
|
|
33
|
+
window._ROUTER_DATA = window._ROUTER_DATA || (0, import_parsed.parsedJSONFromElement)(import_constants.ROUTER_DATA_JSON_ID);
|
|
34
|
+
}
|
|
28
35
|
const runner = (0, import_runner.getGlobalRunner)();
|
|
29
36
|
const WrapperApp = runner.wrapRoot(App);
|
|
30
37
|
return WrapperApp;
|
|
@@ -34,7 +34,6 @@ __export(code_exports, {
|
|
|
34
34
|
module.exports = __toCommonJS(code_exports);
|
|
35
35
|
var import_path = __toESM(require("path"));
|
|
36
36
|
var import_utils = require("@modern-js/utils");
|
|
37
|
-
var import_route = require("@modern-js/utils/universal/route");
|
|
38
37
|
var import_lodash = require("@modern-js/utils/lodash");
|
|
39
38
|
var import_constants = require("../../../cli/constants");
|
|
40
39
|
var import_constants2 = require("../constants");
|
|
@@ -85,7 +84,7 @@ const generateCode = async (appContext, config, entrypoints, api) => {
|
|
|
85
84
|
const config2 = api.useResolvedConfigContext();
|
|
86
85
|
const ssrByRouteIds = config2.server.ssrByRouteIds || [];
|
|
87
86
|
const clonedRoutes = (0, import_lodash.cloneDeep)(initialRoutes);
|
|
88
|
-
const markedRoutes = ssrByRouteIds.length > 0 ?
|
|
87
|
+
const markedRoutes = ssrByRouteIds.length > 0 ? markRoutes(clonedRoutes, ssrByRouteIds) : initialRoutes;
|
|
89
88
|
const { routes } = await hookRunners.modifyFileSystemRoutes({
|
|
90
89
|
entrypoint,
|
|
91
90
|
routes: markedRoutes
|
|
@@ -116,10 +115,10 @@ const generateCode = async (appContext, config, entrypoints, api) => {
|
|
|
116
115
|
})
|
|
117
116
|
});
|
|
118
117
|
if (entrypoint.nestedRoutesEntry && (0, import_utils.isUseSSRBundle)(config2)) {
|
|
119
|
-
var _config_output1
|
|
118
|
+
var _config_output1;
|
|
120
119
|
const routesServerFile = (0, import_utils2.getServerLoadersFile)(internalDirectory, entryName);
|
|
121
|
-
const filtedRoutesForServer = (0,
|
|
122
|
-
const routesForServerLoaderMatches = (0,
|
|
120
|
+
const filtedRoutesForServer = (0, import_utils.filterRoutesForServer)(routes);
|
|
121
|
+
const routesForServerLoaderMatches = (0, import_utils.filterRoutesLoader)(routes);
|
|
123
122
|
const code2 = templates.routesForServer({
|
|
124
123
|
routesForServerLoaderMatches
|
|
125
124
|
});
|
|
@@ -135,16 +134,6 @@ const generateCode = async (appContext, config, entrypoints, api) => {
|
|
|
135
134
|
splitRouteChunks: config2 === null || config2 === void 0 ? void 0 : (_config_output1 = config2.output) === null || _config_output1 === void 0 ? void 0 : _config_output1.splitRouteChunks
|
|
136
135
|
});
|
|
137
136
|
await import_utils.fs.outputFile(import_path.default.resolve(internalDirectory, `./${entryName}/routes.server.js`), serverRoutesCode, "utf8");
|
|
138
|
-
const mfServerRoutesCode = await templates.fileSystemRoutes({
|
|
139
|
-
metaName,
|
|
140
|
-
routes,
|
|
141
|
-
ssrMode: useSSG ? "string" : mode,
|
|
142
|
-
nestedRoutesEntry: entrypoint.nestedRoutesEntry,
|
|
143
|
-
entryName: entrypoint.entryName,
|
|
144
|
-
internalDirectory,
|
|
145
|
-
splitRouteChunks: config2 === null || config2 === void 0 ? void 0 : (_config_output2 = config2.output) === null || _config_output2 === void 0 ? void 0 : _config_output2.splitRouteChunks
|
|
146
|
-
});
|
|
147
|
-
await import_utils.fs.outputFile(import_path.default.resolve(internalDirectory, `./${entryName}/mf-routes.js`), mfServerRoutesCode, "utf8");
|
|
148
137
|
}
|
|
149
138
|
const serverLoaderCombined = templates.ssrLoaderCombinedModule(entrypoints, entrypoint, config2, appContext);
|
|
150
139
|
if (serverLoaderCombined) {
|
|
@@ -156,6 +145,25 @@ const generateCode = async (appContext, config, entrypoints, api) => {
|
|
|
156
145
|
}
|
|
157
146
|
}
|
|
158
147
|
};
|
|
148
|
+
function markRoutes(routes, routeIds) {
|
|
149
|
+
return routes.map((route) => {
|
|
150
|
+
if (route.type !== "nested") {
|
|
151
|
+
return route;
|
|
152
|
+
}
|
|
153
|
+
if (route.children && route.children.length > 0) {
|
|
154
|
+
route.children = markRoutes(route.children, routeIds);
|
|
155
|
+
}
|
|
156
|
+
if (route.children && route.children.length > 0) {
|
|
157
|
+
route.inValidSSRRoute = route.children.every((child) => {
|
|
158
|
+
var _child_inValidSSRRoute;
|
|
159
|
+
return (_child_inValidSSRRoute = child.inValidSSRRoute) !== null && _child_inValidSSRRoute !== void 0 ? _child_inValidSSRRoute : false;
|
|
160
|
+
});
|
|
161
|
+
} else if (route.id) {
|
|
162
|
+
route.inValidSSRRoute = !routeIds.includes(route.id);
|
|
163
|
+
}
|
|
164
|
+
return route;
|
|
165
|
+
});
|
|
166
|
+
}
|
|
159
167
|
function generatorRegisterCode(internalDirectory, entryName, code) {
|
|
160
168
|
import_utils.fs.outputFileSync(import_path.default.resolve(internalDirectory, `./${entryName}/${import_constants.ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME}`), code, "utf8");
|
|
161
169
|
}
|
|
@@ -37,7 +37,6 @@ __export(cli_exports, {
|
|
|
37
37
|
module.exports = __toCommonJS(cli_exports);
|
|
38
38
|
var import_node_path = __toESM(require("node:path"));
|
|
39
39
|
var import_utils = require("@modern-js/utils");
|
|
40
|
-
var import_route = require("@modern-js/utils/universal/route");
|
|
41
40
|
var import_entry = require("./entry");
|
|
42
41
|
var import_handler = require("./handler");
|
|
43
42
|
var import_entry2 = require("./entry");
|
|
@@ -116,7 +115,7 @@ const routerPlugin = () => ({
|
|
|
116
115
|
},
|
|
117
116
|
async modifyFileSystemRoutes({ entrypoint, routes }) {
|
|
118
117
|
nestedRoutes[entrypoint.entryName] = routes;
|
|
119
|
-
nestedRoutesForServer[entrypoint.entryName] = (0,
|
|
118
|
+
nestedRoutesForServer[entrypoint.entryName] = (0, import_utils.filterRoutesForServer)(routes);
|
|
120
119
|
return {
|
|
121
120
|
entrypoint,
|
|
122
121
|
routes
|
|
@@ -4,9 +4,7 @@ import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
|
4
4
|
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
5
5
|
import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
|
|
6
6
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
7
|
-
import { parsedJSONFromElement } from "@modern-js/runtime-utils/parsed";
|
|
8
7
|
import cookieTool from "cookie";
|
|
9
|
-
import { ROUTER_DATA_JSON_ID, SSR_DATA_JSON_ID } from "../constants";
|
|
10
8
|
import { getGlobalAppInit } from "../context";
|
|
11
9
|
import { getInitialContext } from "../context/runtime";
|
|
12
10
|
import { createLoaderManager } from "../loader/loaderManager";
|
|
@@ -56,7 +54,7 @@ function render(App, id) {
|
|
|
56
54
|
}
|
|
57
55
|
function _render() {
|
|
58
56
|
_render = _async_to_generator(function(App, id) {
|
|
59
|
-
var runner, context, runBeforeRender, ModernRender, ModernHydrate, _ssrData_data, _ssrData_data1,
|
|
57
|
+
var runner, context, runBeforeRender, ModernRender, ModernHydrate, _ssrData_data, _ssrData_data1, ssrData, loadersData, initialLoadersState, initialData, rootElement;
|
|
60
58
|
function _ModernRender() {
|
|
61
59
|
_ModernRender = _async_to_generator(function(App2) {
|
|
62
60
|
var renderFunc;
|
|
@@ -123,9 +121,6 @@ function _render() {
|
|
|
123
121
|
ModernHydrate = function ModernHydrate2(App2, callback) {
|
|
124
122
|
return _ModernHydrate.apply(this, arguments);
|
|
125
123
|
};
|
|
126
|
-
window._SSR_DATA = window._SSR_DATA || parsedJSONFromElement(SSR_DATA_JSON_ID);
|
|
127
|
-
routeData = parsedJSONFromElement(ROUTER_DATA_JSON_ID);
|
|
128
|
-
window._ROUTER_DATA = window._ROUTER_DATA || routeData;
|
|
129
124
|
ssrData = getSSRData();
|
|
130
125
|
loadersData = (ssrData === null || ssrData === void 0 ? void 0 : (_ssrData_data = ssrData.data) === null || _ssrData_data === void 0 ? void 0 : _ssrData_data.loadersData) || {};
|
|
131
126
|
initialLoadersState = Object.keys(loadersData).reduce(function(res, key) {
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
+
import { parsedJSONFromElement } from "@modern-js/runtime-utils/parsed";
|
|
2
|
+
import { isBrowser } from "../../common";
|
|
3
|
+
import { ROUTER_DATA_JSON_ID, SSR_DATA_JSON_ID } from "../constants";
|
|
1
4
|
import { getGlobalApp } from "../context";
|
|
2
5
|
import { getGlobalRunner } from "../plugin/runner";
|
|
3
6
|
function createRoot(UserApp) {
|
|
4
7
|
var App = UserApp || getGlobalApp();
|
|
8
|
+
if (isBrowser()) {
|
|
9
|
+
window._SSR_DATA = window._SSR_DATA || parsedJSONFromElement(SSR_DATA_JSON_ID);
|
|
10
|
+
window._ROUTER_DATA = window._ROUTER_DATA || parsedJSONFromElement(ROUTER_DATA_JSON_ID);
|
|
11
|
+
}
|
|
5
12
|
var runner = getGlobalRunner();
|
|
6
13
|
var WrapperApp = runner.wrapRoot(App);
|
|
7
14
|
return WrapperApp;
|
|
@@ -1,8 +1,7 @@
|
|
|
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 path from "path";
|
|
4
|
-
import { fs, getEntryOptions, isRouterV5, isSSGEntry, isUseSSRBundle, logger } from "@modern-js/utils";
|
|
5
|
-
import { filterRoutesForServer, filterRoutesLoader, markRoutes } from "@modern-js/utils/universal/route";
|
|
4
|
+
import { fs, filterRoutesForServer, filterRoutesLoader, getEntryOptions, isRouterV5, isSSGEntry, isUseSSRBundle, logger } from "@modern-js/utils";
|
|
6
5
|
import { cloneDeep } from "@modern-js/utils/lodash";
|
|
7
6
|
import { ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME } from "../../../cli/constants";
|
|
8
7
|
import { FILE_SYSTEM_ROUTES_FILE_NAME } from "../constants";
|
|
@@ -18,7 +17,7 @@ var generateCode = function() {
|
|
|
18
17
|
}
|
|
19
18
|
function _generateEntryCode() {
|
|
20
19
|
_generateEntryCode = _async_to_generator(function(entrypoint) {
|
|
21
|
-
var entryName, isMainEntry, isAutoMount, pageRoutesEntry, nestedRoutesEntry, metaName, _config_output, initialRoutes, nestedRoutes, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, route, _$config, ssrByRouteIds, clonedRoutes, markedRoutes, routes, ssr, useSSG, mode, hasPageRoute, code, _, _tmp, _config_output1,
|
|
20
|
+
var entryName, isMainEntry, isAutoMount, pageRoutesEntry, nestedRoutesEntry, metaName, _config_output, initialRoutes, nestedRoutes, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, route, _$config, ssrByRouteIds, clonedRoutes, markedRoutes, routes, ssr, useSSG, mode, hasPageRoute, code, _, _tmp, _config_output1, routesServerFile, filtedRoutesForServer, routesForServerLoaderMatches, code1, serverRoutesCode, serverLoaderCombined, serverLoaderFile;
|
|
22
21
|
return _ts_generator(this, function(_state) {
|
|
23
22
|
switch (_state.label) {
|
|
24
23
|
case 0:
|
|
@@ -27,12 +26,12 @@ var generateCode = function() {
|
|
|
27
26
|
if (!isAutoMount)
|
|
28
27
|
return [
|
|
29
28
|
3,
|
|
30
|
-
|
|
29
|
+
14
|
|
31
30
|
];
|
|
32
31
|
if (!(pageRoutesEntry || nestedRoutesEntry))
|
|
33
32
|
return [
|
|
34
33
|
3,
|
|
35
|
-
|
|
34
|
+
14
|
|
36
35
|
];
|
|
37
36
|
initialRoutes = [];
|
|
38
37
|
nestedRoutes = null;
|
|
@@ -143,7 +142,7 @@ var generateCode = function() {
|
|
|
143
142
|
if (!(entrypoint.nestedRoutesEntry && isUseSSRBundle(_$config)))
|
|
144
143
|
return [
|
|
145
144
|
3,
|
|
146
|
-
|
|
145
|
+
10
|
|
147
146
|
];
|
|
148
147
|
routesServerFile = getServerLoadersFile(internalDirectory, entryName);
|
|
149
148
|
filtedRoutesForServer = filterRoutesForServer(routes);
|
|
@@ -183,51 +182,31 @@ var generateCode = function() {
|
|
|
183
182
|
];
|
|
184
183
|
case 9:
|
|
185
184
|
_state.sent();
|
|
186
|
-
|
|
187
|
-
4,
|
|
188
|
-
templates.fileSystemRoutes({
|
|
189
|
-
metaName,
|
|
190
|
-
routes,
|
|
191
|
-
ssrMode: useSSG ? "string" : mode,
|
|
192
|
-
nestedRoutesEntry: entrypoint.nestedRoutesEntry,
|
|
193
|
-
entryName: entrypoint.entryName,
|
|
194
|
-
internalDirectory,
|
|
195
|
-
splitRouteChunks: _$config === null || _$config === void 0 ? void 0 : (_config_output2 = _$config.output) === null || _config_output2 === void 0 ? void 0 : _config_output2.splitRouteChunks
|
|
196
|
-
})
|
|
197
|
-
];
|
|
185
|
+
_state.label = 10;
|
|
198
186
|
case 10:
|
|
199
|
-
mfServerRoutesCode = _state.sent();
|
|
200
|
-
return [
|
|
201
|
-
4,
|
|
202
|
-
fs.outputFile(path.resolve(internalDirectory, "./".concat(entryName, "/mf-routes.js")), mfServerRoutesCode, "utf8")
|
|
203
|
-
];
|
|
204
|
-
case 11:
|
|
205
|
-
_state.sent();
|
|
206
|
-
_state.label = 12;
|
|
207
|
-
case 12:
|
|
208
187
|
serverLoaderCombined = templates.ssrLoaderCombinedModule(entrypoints, entrypoint, _$config, appContext);
|
|
209
188
|
if (!serverLoaderCombined)
|
|
210
189
|
return [
|
|
211
190
|
3,
|
|
212
|
-
|
|
191
|
+
12
|
|
213
192
|
];
|
|
214
193
|
serverLoaderFile = getServerCombinedModueFile(internalDirectory, entryName);
|
|
215
194
|
return [
|
|
216
195
|
4,
|
|
217
196
|
fs.outputFile(serverLoaderFile, serverLoaderCombined)
|
|
218
197
|
];
|
|
219
|
-
case
|
|
198
|
+
case 11:
|
|
220
199
|
_state.sent();
|
|
221
|
-
_state.label =
|
|
222
|
-
case
|
|
200
|
+
_state.label = 12;
|
|
201
|
+
case 12:
|
|
223
202
|
return [
|
|
224
203
|
4,
|
|
225
204
|
fs.outputFile(path.resolve(internalDirectory, "./".concat(entryName, "/").concat(FILE_SYSTEM_ROUTES_FILE_NAME)), code, "utf8")
|
|
226
205
|
];
|
|
227
|
-
case
|
|
206
|
+
case 13:
|
|
228
207
|
_state.sent();
|
|
229
|
-
_state.label =
|
|
230
|
-
case
|
|
208
|
+
_state.label = 14;
|
|
209
|
+
case 14:
|
|
231
210
|
return [
|
|
232
211
|
2
|
|
233
212
|
];
|
|
@@ -260,6 +239,25 @@ var generateCode = function() {
|
|
|
260
239
|
return _ref.apply(this, arguments);
|
|
261
240
|
};
|
|
262
241
|
}();
|
|
242
|
+
function markRoutes(routes, routeIds) {
|
|
243
|
+
return routes.map(function(route) {
|
|
244
|
+
if (route.type !== "nested") {
|
|
245
|
+
return route;
|
|
246
|
+
}
|
|
247
|
+
if (route.children && route.children.length > 0) {
|
|
248
|
+
route.children = markRoutes(route.children, routeIds);
|
|
249
|
+
}
|
|
250
|
+
if (route.children && route.children.length > 0) {
|
|
251
|
+
route.inValidSSRRoute = route.children.every(function(child) {
|
|
252
|
+
var _child_inValidSSRRoute;
|
|
253
|
+
return (_child_inValidSSRRoute = child.inValidSSRRoute) !== null && _child_inValidSSRRoute !== void 0 ? _child_inValidSSRRoute : false;
|
|
254
|
+
});
|
|
255
|
+
} else if (route.id) {
|
|
256
|
+
route.inValidSSRRoute = !routeIds.includes(route.id);
|
|
257
|
+
}
|
|
258
|
+
return route;
|
|
259
|
+
});
|
|
260
|
+
}
|
|
263
261
|
function generatorRegisterCode(internalDirectory, entryName, code) {
|
|
264
262
|
fs.outputFileSync(path.resolve(internalDirectory, "./".concat(entryName, "/").concat(ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME)), code, "utf8");
|
|
265
263
|
}
|
|
@@ -3,8 +3,7 @@ import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
|
3
3
|
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
4
4
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
5
5
|
import path from "node:path";
|
|
6
|
-
import { fs, NESTED_ROUTE_SPEC_FILE, createRuntimeExportsUtils, getEntryOptions, isRouterV5 as isV5 } from "@modern-js/utils";
|
|
7
|
-
import { filterRoutesForServer } from "@modern-js/utils/universal/route";
|
|
6
|
+
import { fs, NESTED_ROUTE_SPEC_FILE, createRuntimeExportsUtils, filterRoutesForServer, getEntryOptions, isRouterV5 as isV5 } from "@modern-js/utils";
|
|
8
7
|
import { isRouteEntry } from "./entry";
|
|
9
8
|
import { handleFileChange, handleGeneratorEntryCode, handleModifyEntrypoints } from "./handler";
|
|
10
9
|
import { isRouteEntry as isRouteEntry2 } from "./entry";
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { parsedJSONFromElement } from "@modern-js/runtime-utils/parsed";
|
|
2
1
|
import cookieTool from "cookie";
|
|
3
|
-
import { ROUTER_DATA_JSON_ID, SSR_DATA_JSON_ID } from "../constants";
|
|
4
2
|
import { getGlobalAppInit } from "../context";
|
|
5
3
|
import { getInitialContext } from "../context/runtime";
|
|
6
4
|
import { createLoaderManager } from "../loader/loaderManager";
|
|
@@ -59,9 +57,6 @@ async function render(App, id) {
|
|
|
59
57
|
};
|
|
60
58
|
if (isClientArgs(id)) {
|
|
61
59
|
var _ssrData_data, _ssrData_data1;
|
|
62
|
-
window._SSR_DATA = window._SSR_DATA || parsedJSONFromElement(SSR_DATA_JSON_ID);
|
|
63
|
-
const routeData = parsedJSONFromElement(ROUTER_DATA_JSON_ID);
|
|
64
|
-
window._ROUTER_DATA = window._ROUTER_DATA || routeData;
|
|
65
60
|
const ssrData = getSSRData();
|
|
66
61
|
const loadersData = (ssrData === null || ssrData === void 0 ? void 0 : (_ssrData_data = ssrData.data) === null || _ssrData_data === void 0 ? void 0 : _ssrData_data.loadersData) || {};
|
|
67
62
|
const initialLoadersState = Object.keys(loadersData).reduce((res, key) => {
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
+
import { parsedJSONFromElement } from "@modern-js/runtime-utils/parsed";
|
|
2
|
+
import { isBrowser } from "../../common";
|
|
3
|
+
import { ROUTER_DATA_JSON_ID, SSR_DATA_JSON_ID } from "../constants";
|
|
1
4
|
import { getGlobalApp } from "../context";
|
|
2
5
|
import { getGlobalRunner } from "../plugin/runner";
|
|
3
6
|
function createRoot(UserApp) {
|
|
4
7
|
const App = UserApp || getGlobalApp();
|
|
8
|
+
if (isBrowser()) {
|
|
9
|
+
window._SSR_DATA = window._SSR_DATA || parsedJSONFromElement(SSR_DATA_JSON_ID);
|
|
10
|
+
window._ROUTER_DATA = window._ROUTER_DATA || parsedJSONFromElement(ROUTER_DATA_JSON_ID);
|
|
11
|
+
}
|
|
5
12
|
const runner = getGlobalRunner();
|
|
6
13
|
const WrapperApp = runner.wrapRoot(App);
|
|
7
14
|
return WrapperApp;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import path from "path";
|
|
2
|
-
import { fs, getEntryOptions, isRouterV5, isSSGEntry, isUseSSRBundle, logger } from "@modern-js/utils";
|
|
3
|
-
import { filterRoutesForServer, filterRoutesLoader, markRoutes } from "@modern-js/utils/universal/route";
|
|
2
|
+
import { fs, filterRoutesForServer, filterRoutesLoader, getEntryOptions, isRouterV5, isSSGEntry, isUseSSRBundle, logger } from "@modern-js/utils";
|
|
4
3
|
import { cloneDeep } from "@modern-js/utils/lodash";
|
|
5
4
|
import { ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME } from "../../../cli/constants";
|
|
6
5
|
import { FILE_SYSTEM_ROUTES_FILE_NAME } from "../constants";
|
|
@@ -82,7 +81,7 @@ const generateCode = async (appContext, config, entrypoints, api) => {
|
|
|
82
81
|
})
|
|
83
82
|
});
|
|
84
83
|
if (entrypoint.nestedRoutesEntry && isUseSSRBundle(config2)) {
|
|
85
|
-
var _config_output1
|
|
84
|
+
var _config_output1;
|
|
86
85
|
const routesServerFile = getServerLoadersFile(internalDirectory, entryName);
|
|
87
86
|
const filtedRoutesForServer = filterRoutesForServer(routes);
|
|
88
87
|
const routesForServerLoaderMatches = filterRoutesLoader(routes);
|
|
@@ -101,16 +100,6 @@ const generateCode = async (appContext, config, entrypoints, api) => {
|
|
|
101
100
|
splitRouteChunks: config2 === null || config2 === void 0 ? void 0 : (_config_output1 = config2.output) === null || _config_output1 === void 0 ? void 0 : _config_output1.splitRouteChunks
|
|
102
101
|
});
|
|
103
102
|
await fs.outputFile(path.resolve(internalDirectory, `./${entryName}/routes.server.js`), serverRoutesCode, "utf8");
|
|
104
|
-
const mfServerRoutesCode = await templates.fileSystemRoutes({
|
|
105
|
-
metaName,
|
|
106
|
-
routes,
|
|
107
|
-
ssrMode: useSSG ? "string" : mode,
|
|
108
|
-
nestedRoutesEntry: entrypoint.nestedRoutesEntry,
|
|
109
|
-
entryName: entrypoint.entryName,
|
|
110
|
-
internalDirectory,
|
|
111
|
-
splitRouteChunks: config2 === null || config2 === void 0 ? void 0 : (_config_output2 = config2.output) === null || _config_output2 === void 0 ? void 0 : _config_output2.splitRouteChunks
|
|
112
|
-
});
|
|
113
|
-
await fs.outputFile(path.resolve(internalDirectory, `./${entryName}/mf-routes.js`), mfServerRoutesCode, "utf8");
|
|
114
103
|
}
|
|
115
104
|
const serverLoaderCombined = templates.ssrLoaderCombinedModule(entrypoints, entrypoint, config2, appContext);
|
|
116
105
|
if (serverLoaderCombined) {
|
|
@@ -122,6 +111,25 @@ const generateCode = async (appContext, config, entrypoints, api) => {
|
|
|
122
111
|
}
|
|
123
112
|
}
|
|
124
113
|
};
|
|
114
|
+
function markRoutes(routes, routeIds) {
|
|
115
|
+
return routes.map((route) => {
|
|
116
|
+
if (route.type !== "nested") {
|
|
117
|
+
return route;
|
|
118
|
+
}
|
|
119
|
+
if (route.children && route.children.length > 0) {
|
|
120
|
+
route.children = markRoutes(route.children, routeIds);
|
|
121
|
+
}
|
|
122
|
+
if (route.children && route.children.length > 0) {
|
|
123
|
+
route.inValidSSRRoute = route.children.every((child) => {
|
|
124
|
+
var _child_inValidSSRRoute;
|
|
125
|
+
return (_child_inValidSSRRoute = child.inValidSSRRoute) !== null && _child_inValidSSRRoute !== void 0 ? _child_inValidSSRRoute : false;
|
|
126
|
+
});
|
|
127
|
+
} else if (route.id) {
|
|
128
|
+
route.inValidSSRRoute = !routeIds.includes(route.id);
|
|
129
|
+
}
|
|
130
|
+
return route;
|
|
131
|
+
});
|
|
132
|
+
}
|
|
125
133
|
function generatorRegisterCode(internalDirectory, entryName, code) {
|
|
126
134
|
fs.outputFileSync(path.resolve(internalDirectory, `./${entryName}/${ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME}`), code, "utf8");
|
|
127
135
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import { fs, NESTED_ROUTE_SPEC_FILE, createRuntimeExportsUtils, getEntryOptions, isRouterV5 as isV5 } from "@modern-js/utils";
|
|
3
|
-
import { filterRoutesForServer } from "@modern-js/utils/universal/route";
|
|
2
|
+
import { fs, NESTED_ROUTE_SPEC_FILE, createRuntimeExportsUtils, filterRoutesForServer, getEntryOptions, isRouterV5 as isV5 } from "@modern-js/utils";
|
|
4
3
|
import { isRouteEntry } from "./entry";
|
|
5
4
|
import { handleFileChange, handleGeneratorEntryCode, handleModifyEntrypoints } from "./handler";
|
|
6
5
|
import { isRouteEntry as isRouteEntry2 } from "./entry";
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { useLocation, useNavigate } from '@modern-js/runtime-utils/router';
|
|
2
2
|
import type React from 'react';
|
|
3
|
-
export interface WithRouterProps {
|
|
3
|
+
export interface WithRouterProps<Params extends {
|
|
4
|
+
[K in keyof Params]?: string;
|
|
5
|
+
} = {}> {
|
|
4
6
|
location: ReturnType<typeof useLocation>;
|
|
5
|
-
params:
|
|
7
|
+
params: Params;
|
|
6
8
|
navigate: ReturnType<typeof useNavigate>;
|
|
7
9
|
}
|
|
8
|
-
export declare const withRouter: <Props extends WithRouterProps
|
|
10
|
+
export declare const withRouter: <Props extends WithRouterProps<{}>>(Component: React.ComponentType<Props>) => (props: Omit<Props, keyof WithRouterProps<{}>>) => JSX.Element;
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"modern",
|
|
16
16
|
"modern.js"
|
|
17
17
|
],
|
|
18
|
-
"version": "2.
|
|
18
|
+
"version": "2.59.0",
|
|
19
19
|
"engines": {
|
|
20
20
|
"node": ">=14.17.6"
|
|
21
21
|
},
|
|
@@ -199,11 +199,11 @@
|
|
|
199
199
|
"react-is": "^18",
|
|
200
200
|
"react-side-effect": "^2.1.1",
|
|
201
201
|
"styled-components": "^5.3.1",
|
|
202
|
-
"@modern-js/plugin": "2.
|
|
203
|
-
"@modern-js/
|
|
204
|
-
"@modern-js/runtime-utils": "2.
|
|
205
|
-
"@modern-js/
|
|
206
|
-
"@modern-js/
|
|
202
|
+
"@modern-js/plugin": "2.59.0",
|
|
203
|
+
"@modern-js/plugin-data-loader": "2.59.0",
|
|
204
|
+
"@modern-js/runtime-utils": "2.59.0",
|
|
205
|
+
"@modern-js/utils": "2.59.0",
|
|
206
|
+
"@modern-js/types": "2.59.0"
|
|
207
207
|
},
|
|
208
208
|
"peerDependencies": {
|
|
209
209
|
"react": ">=17",
|
|
@@ -211,7 +211,7 @@
|
|
|
211
211
|
},
|
|
212
212
|
"devDependencies": {
|
|
213
213
|
"@remix-run/web-fetch": "^4.1.3",
|
|
214
|
-
"@rsbuild/core": "1.0.1-
|
|
214
|
+
"@rsbuild/core": "1.0.1-rc.4",
|
|
215
215
|
"@testing-library/react": "^13.4.0",
|
|
216
216
|
"@types/cookie": "0.5.1",
|
|
217
217
|
"@types/invariant": "^2.2.30",
|
|
@@ -225,11 +225,11 @@
|
|
|
225
225
|
"react-dom": "^18",
|
|
226
226
|
"ts-jest": "^29.1.0",
|
|
227
227
|
"typescript": "^5",
|
|
228
|
-
"webpack": "^5.
|
|
229
|
-
"@modern-js/
|
|
230
|
-
"@
|
|
231
|
-
"@scripts/jest-config": "2.
|
|
232
|
-
"@
|
|
228
|
+
"webpack": "^5.94.0",
|
|
229
|
+
"@modern-js/core": "2.59.0",
|
|
230
|
+
"@scripts/build": "2.59.0",
|
|
231
|
+
"@scripts/jest-config": "2.59.0",
|
|
232
|
+
"@modern-js/app-tools": "2.59.0"
|
|
233
233
|
},
|
|
234
234
|
"sideEffects": false,
|
|
235
235
|
"publishConfig": {
|