@modern-js/runtime 2.68.0 → 2.68.2
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/code.js +6 -3
- package/dist/cjs/cli/template.js +72 -21
- package/dist/cjs/cli/template.server.js +62 -13
- package/dist/cjs/core/context/index.js +19 -2
- package/dist/cjs/core/context/serverPayload.server.js +40 -0
- package/dist/cjs/core/server/requestHandler.js +47 -11
- package/dist/cjs/router/cli/code/index.js +13 -6
- package/dist/cjs/router/cli/code/templates.js +44 -20
- package/dist/cjs/router/cli/handler.js +17 -2
- package/dist/cjs/router/cli/index.js +6 -5
- package/dist/cjs/router/index.js +0 -21
- package/dist/cjs/router/internal.js +30 -0
- package/dist/cjs/router/runtime/PrefetchLink.js +3 -4
- package/dist/cjs/router/runtime/constants.js +2 -2
- package/dist/cjs/router/runtime/index.js +1 -12
- package/dist/cjs/router/runtime/internal.js +36 -0
- package/dist/cjs/router/runtime/plugin.js +134 -76
- package/dist/cjs/router/runtime/plugin.node.js +73 -32
- package/dist/cjs/router/runtime/rsc-router.js +322 -0
- package/dist/cjs/router/runtime/utils.js +76 -1
- package/dist/cjs/rsc/client.js +11 -0
- package/dist/cjs/rsc/server.js +40 -0
- package/dist/esm/cli/code.js +6 -3
- package/dist/esm/cli/template.js +25 -6
- package/dist/esm/cli/template.server.js +3 -3
- package/dist/esm/core/context/index.js +14 -1
- package/dist/esm/core/context/serverPayload.server.js +15 -0
- package/dist/esm/core/server/requestHandler.js +102 -9
- package/dist/esm/router/cli/code/index.js +12 -6
- package/dist/esm/router/cli/code/templates.js +29 -13
- package/dist/esm/router/cli/handler.js +33 -6
- package/dist/esm/router/cli/index.js +6 -5
- package/dist/esm/router/index.js +0 -6
- package/dist/esm/router/internal.js +5 -0
- package/dist/esm/router/runtime/PrefetchLink.js +2 -2
- package/dist/esm/router/runtime/constants.js +2 -2
- package/dist/esm/router/runtime/index.js +1 -9
- package/dist/esm/router/runtime/internal.js +10 -0
- package/dist/esm/router/runtime/plugin.js +134 -85
- package/dist/esm/router/runtime/plugin.node.js +110 -40
- package/dist/esm/router/runtime/rsc-router.js +437 -0
- package/dist/esm/router/runtime/utils.js +95 -1
- package/dist/esm/rsc/client.js +6 -0
- package/dist/esm/rsc/server.js +86 -0
- package/dist/esm-node/cli/code.js +6 -3
- package/dist/esm-node/cli/template.js +72 -21
- package/dist/esm-node/cli/template.server.js +62 -13
- package/dist/esm-node/core/context/index.js +14 -1
- package/dist/esm-node/core/context/serverPayload.server.js +15 -0
- package/dist/esm-node/core/server/requestHandler.js +45 -9
- package/dist/esm-node/router/cli/code/index.js +12 -6
- package/dist/esm-node/router/cli/code/templates.js +44 -20
- package/dist/esm-node/router/cli/handler.js +17 -2
- package/dist/esm-node/router/cli/index.js +6 -5
- package/dist/esm-node/router/index.js +0 -6
- package/dist/esm-node/router/internal.js +5 -0
- package/dist/esm-node/router/runtime/PrefetchLink.js +2 -2
- package/dist/esm-node/router/runtime/constants.js +2 -2
- package/dist/esm-node/router/runtime/index.js +1 -9
- package/dist/esm-node/router/runtime/internal.js +10 -0
- package/dist/esm-node/router/runtime/plugin.js +126 -78
- package/dist/esm-node/router/runtime/plugin.node.js +75 -34
- package/dist/esm-node/router/runtime/rsc-router.js +284 -0
- package/dist/esm-node/router/runtime/utils.js +74 -1
- package/dist/esm-node/rsc/client.js +6 -0
- package/dist/esm-node/rsc/server.js +35 -0
- package/dist/types/cli/template.d.ts +4 -2
- package/dist/types/cli/template.server.d.ts +2 -1
- package/dist/types/common.d.ts +1 -1
- package/dist/types/config.d.ts +1 -1
- package/dist/types/core/context/index.d.ts +38 -3
- package/dist/types/core/context/serverPayload.server.d.ts +3 -0
- package/dist/types/core/server/requestHandler.d.ts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/router/cli/code/index.d.ts +1 -0
- package/dist/types/router/cli/code/templates.d.ts +4 -2
- package/dist/types/router/index.d.ts +0 -2
- package/dist/types/router/internal.d.ts +2 -0
- package/dist/types/router/runtime/PrefetchLink.d.ts +0 -1
- package/dist/types/router/runtime/constants.d.ts +3 -3
- package/dist/types/router/runtime/index.d.ts +1 -9
- package/dist/types/router/runtime/internal.d.ts +8 -0
- package/dist/types/router/runtime/rsc-router.d.ts +14 -0
- package/dist/types/router/runtime/utils.d.ts +26 -5
- package/dist/types/rsc/client.d.ts +1 -0
- package/dist/types/rsc/server.d.ts +1 -0
- package/package.json +21 -12
- package/static/modern-inline.js +1 -1
package/dist/esm/cli/code.js
CHANGED
|
@@ -63,7 +63,8 @@ var generateCode = function() {
|
|
|
63
63
|
mountId,
|
|
64
64
|
urlPath: (_serverRoutes_find = serverRoutes.find(function(route) {
|
|
65
65
|
return route.entryName === entryName;
|
|
66
|
-
})) === null || _serverRoutes_find === void 0 ? void 0 : _serverRoutes_find.urlPath
|
|
66
|
+
})) === null || _serverRoutes_find === void 0 ? void 0 : _serverRoutes_find.urlPath,
|
|
67
|
+
isNestedRouter: entrypoint.nestedRoutesEntry
|
|
67
68
|
});
|
|
68
69
|
} else {
|
|
69
70
|
indexCode = template.index({
|
|
@@ -75,7 +76,8 @@ var generateCode = function() {
|
|
|
75
76
|
customEntry,
|
|
76
77
|
customBootstrap,
|
|
77
78
|
mountId,
|
|
78
|
-
enableRsc: config.server.rsc
|
|
79
|
+
enableRsc: config.server.rsc,
|
|
80
|
+
isNestedRouter: !!entrypoint.nestedRoutesEntry
|
|
79
81
|
});
|
|
80
82
|
}
|
|
81
83
|
indexFile = path.resolve(internalDirectory, "./".concat(entryName, "/").concat(ENTRY_POINT_FILE_NAME));
|
|
@@ -145,6 +147,7 @@ var generateCode = function() {
|
|
|
145
147
|
];
|
|
146
148
|
indexServerFile1 = path.resolve(internalDirectory, "./".concat(entryName, "/").concat(SERVER_ENTRY_POINT_FILE_NAME));
|
|
147
149
|
indexServerCode1 = serverTemplate.entryForCSRWithRSC({
|
|
150
|
+
entryName,
|
|
148
151
|
metaName
|
|
149
152
|
});
|
|
150
153
|
return [
|
|
@@ -179,7 +182,7 @@ var generateCode = function() {
|
|
|
179
182
|
case 11:
|
|
180
183
|
_state2.sent();
|
|
181
184
|
contextCode = "";
|
|
182
|
-
if (
|
|
185
|
+
if (!(!config.server.rsc || entrypoint.nestedRoutesEntry))
|
|
183
186
|
return [
|
|
184
187
|
3,
|
|
185
188
|
12
|
package/dist/esm/cli/template.js
CHANGED
|
@@ -1,19 +1,37 @@
|
|
|
1
1
|
import path from "path";
|
|
2
2
|
import { JS_EXTENSIONS, findExists, formatImportPath } from "@modern-js/utils";
|
|
3
3
|
import { ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME, ENTRY_POINT_RUNTIME_REGISTER_FILE_NAME } from "./constants";
|
|
4
|
+
var genRenderStatement = function(param) {
|
|
5
|
+
var customBootstrap = param.customBootstrap, enableRsc = param.enableRsc, mountId = param.mountId, isNestedRouter = param.isNestedRouter;
|
|
6
|
+
if (customBootstrap) {
|
|
7
|
+
return "customBootstrap(ModernRoot, () => render(<ModernRoot />, '".concat(mountId || "root", "'));");
|
|
8
|
+
}
|
|
9
|
+
if (enableRsc) {
|
|
10
|
+
if (!isNestedRouter) {
|
|
11
|
+
return "render(<ModernRoot>\n <RscClientRoot rscPayload={data} />\n </ModernRoot>, '".concat(mountId || "root", "');");
|
|
12
|
+
}
|
|
13
|
+
return "render(<ModernRoot rscPayload={data} />, '".concat(mountId || "root", "');");
|
|
14
|
+
}
|
|
15
|
+
return "render(<ModernRoot />, '".concat(mountId || "root", "');");
|
|
16
|
+
};
|
|
4
17
|
var genRenderCode = function(param) {
|
|
5
|
-
var srcDirectory = param.srcDirectory, internalSrcAlias = param.internalSrcAlias, metaName = param.metaName, entry = param.entry, customEntry = param.customEntry, customBootstrap = param.customBootstrap, mountId = param.mountId, enableRsc = param.enableRsc;
|
|
18
|
+
var srcDirectory = param.srcDirectory, internalSrcAlias = param.internalSrcAlias, metaName = param.metaName, entry = param.entry, customEntry = param.customEntry, customBootstrap = param.customBootstrap, mountId = param.mountId, enableRsc = param.enableRsc, isNestedRouter = param.isNestedRouter;
|
|
6
19
|
if (customEntry) {
|
|
7
20
|
return "import '".concat(formatImportPath(entry.replace(srcDirectory, internalSrcAlias)), "'");
|
|
8
21
|
}
|
|
9
|
-
return "import { createRoot } from '@".concat(metaName, "/runtime/react';\nimport { render } from '@").concat(metaName, "/runtime/browser';\n\n").concat(enableRsc ? "import { RscClientRoot, createFromReadableStream, rscStream, callServer } from '@".concat(metaName, "/runtime/rsc/client';") : "", "\n\n").concat(enableRsc ? "const data = createFromReadableStream(rscStream, {\n callServer: callServer,\n });" : "", "\n\n").concat(customBootstrap ? "import customBootstrap from '".concat(formatImportPath(customBootstrap.replace(srcDirectory, internalSrcAlias)), "';") : "", "\n\n\n\nconst ModernRoot = createRoot();\n\n").concat(
|
|
22
|
+
return "import { createRoot } from '@".concat(metaName, "/runtime/react';\nimport { render } from '@").concat(metaName, "/runtime/browser';\n\n").concat(enableRsc ? "import { RscClientRoot, createFromReadableStream, rscStream, callServer } from '@".concat(metaName, "/runtime/rsc/client';") : "", "\n\n").concat(enableRsc ? "const data = createFromReadableStream(rscStream, {\n callServer: callServer,\n });" : "", "\n\n").concat(customBootstrap ? "import customBootstrap from '".concat(formatImportPath(customBootstrap.replace(srcDirectory, internalSrcAlias)), "';") : "", "\n\n\n\nconst ModernRoot = createRoot();\n\n").concat(genRenderStatement({
|
|
23
|
+
customBootstrap,
|
|
24
|
+
enableRsc,
|
|
25
|
+
mountId,
|
|
26
|
+
isNestedRouter
|
|
27
|
+
}));
|
|
10
28
|
};
|
|
11
29
|
var entryForCSRWithRSC = function(param) {
|
|
12
|
-
var metaName = param.metaName, entryName = param.entryName, _param_urlPath = param.urlPath, urlPath = _param_urlPath === void 0 ? "/" : _param_urlPath, _param_mountId = param.mountId, mountId = _param_mountId === void 0 ? "root" : _param_mountId;
|
|
13
|
-
return "\n import '@".concat(metaName, "/runtime/registry/").concat(entryName, "';\n import { render } from '@").concat(metaName, "/runtime/browser';\n import { createRoot } from '@").concat(metaName, "/runtime/react';\n\n import {\n RscClientRoot,\n createFromFetch\n } from '@").concat(metaName, "/runtime/rsc/client';\n\n const
|
|
30
|
+
var metaName = param.metaName, entryName = param.entryName, _param_urlPath = param.urlPath, urlPath = _param_urlPath === void 0 ? "/" : _param_urlPath, _param_mountId = param.mountId, mountId = _param_mountId === void 0 ? "root" : _param_mountId, isNestedRouter = param.isNestedRouter;
|
|
31
|
+
return "\n import '@".concat(metaName, "/runtime/registry/").concat(entryName, "';\n import { render } from '@").concat(metaName, "/runtime/browser';\n import { createRoot } from '@").concat(metaName, "/runtime/react';\n\n import {\n RscClientRoot,\n createFromFetch,\n isRedirectResponse,\n rscStream,\n callServer,\n createFromReadableStream\n } from '@").concat(metaName, "/runtime/rsc/client';\n\n const handleRedirectResponse = (res: Response) => {\n const { headers } = res;\n const location = headers.get('X-Modernjs-Redirect');\n const baseUrl = headers.get('X-Modernjs-BaseUrl');\n if (location) {\n if (baseUrl !== '/') {\n window.location.replace(baseUrl + location);\n } else {\n window.location.replace(location);\n }\n return;\n }\n return res;\n };\n\n ").concat(process.env.MODERN_DISABLE_INJECT_RSC_DATA ? "\n const data = createFromFetch(\n fetch(location.pathname, {\n headers: {\n 'x-rsc-tree': 'true',\n },\n }).then(handleRedirectResponse),\n )\n " : "\n const data = createFromReadableStream(rscStream, {\n callServer: callServer,\n });\n ", "\n\n const ModernRoot = createRoot();\n\n ").concat(isNestedRouter ? "\n render(\n <ModernRoot rscPayload={data}>\n </ModernRoot>,\n '".concat(mountId, "',\n );\n ") : "\n render(\n <ModernRoot>\n <RscClientRoot rscPayload={data} />\n </ModernRoot>,\n '".concat(mountId, "',\n );\n "), "\n ");
|
|
14
32
|
};
|
|
15
33
|
var index = function(param) {
|
|
16
|
-
var srcDirectory = param.srcDirectory, internalSrcAlias = param.internalSrcAlias, metaName = param.metaName, entry = param.entry, entryName = param.entryName, customEntry = param.customEntry, customBootstrap = param.customBootstrap, mountId = param.mountId, enableRsc = param.enableRsc;
|
|
34
|
+
var srcDirectory = param.srcDirectory, internalSrcAlias = param.internalSrcAlias, metaName = param.metaName, entry = param.entry, entryName = param.entryName, customEntry = param.customEntry, customBootstrap = param.customBootstrap, mountId = param.mountId, enableRsc = param.enableRsc, isNestedRouter = param.isNestedRouter;
|
|
17
35
|
return "import '@".concat(metaName, "/runtime/registry/").concat(entryName, "';\n").concat(genRenderCode({
|
|
18
36
|
srcDirectory,
|
|
19
37
|
internalSrcAlias,
|
|
@@ -22,7 +40,8 @@ var index = function(param) {
|
|
|
22
40
|
customEntry,
|
|
23
41
|
customBootstrap,
|
|
24
42
|
mountId,
|
|
25
|
-
enableRsc
|
|
43
|
+
enableRsc,
|
|
44
|
+
isNestedRouter
|
|
26
45
|
}), "\n");
|
|
27
46
|
};
|
|
28
47
|
var register = function() {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { formatImportPath } from "@modern-js/utils";
|
|
2
2
|
var SERVER_ENTRY = "\nimport {\n #render,\n createRequestHandler,\n} from '@#metaName/runtime/ssr/server';\n\nconst handleRequest = async (request, ServerRoot, options) => {\n\n const body = await #render(request, <ServerRoot />, options);\n\n return new Response(body, {\n headers: {\n 'content-type': 'text/html; charset=utf-8'\n },\n })\n};\n\nexport const requestHandler = createRequestHandler(handleRequest);\n";
|
|
3
|
-
var SERVER_ENTRY_RSC = "\nimport {\n renderStreaming,\n createRequestHandler,\n} from '@#metaName/runtime/ssr/server';\nimport { RSCServerSlot } from '@#metaName/runtime/rsc/client';\nexport { handleAction } from '@#metaName/runtime/rsc/server';\n\nconst handleRequest = async (request, ServerRoot, options) => {\n\n const body = await renderStreaming(request,\n <ServerRoot>\n <RSCServerSlot />\n </ServerRoot>,\n {\n ...options,\n rscRoot:
|
|
3
|
+
var SERVER_ENTRY_RSC = "\nimport {\n renderStreaming,\n createRequestHandler,\n} from '@#metaName/runtime/ssr/server';\nimport { RSCServerSlot } from '@#metaName/runtime/rsc/client';\nimport { renderRsc } from '@#metaName/runtime/rsc/server';\nexport { handleAction } from '@#metaName/runtime/rsc/server';\n\nconst handleRequest = async (request, ServerRoot, options) => {\n\n const body = await renderStreaming(request,\n <ServerRoot>\n <RSCServerSlot />\n </ServerRoot>,\n {\n ...options,\n rscRoot: options.rscRoot,\n },\n );\n\n return new Response(body, {\n headers: {\n 'content-type': 'text/html; charset=utf-8'\n },\n })\n};\n\nexport const requestHandler = createRequestHandler(handleRequest, {\n enableRsc: true\n});\n\nconst handleRSCRequest = async (request, ServerRoot, options) => {\n const { serverPayload } = options;\n const stream = renderRsc({\n element: options.rscRoot,\n clientManifest: options.rscClientManifest!,\n });\n\n return new Response(stream);\n}\n\n\nexport const rscPayloadHandler = createRequestHandler(handleRSCRequest, {\n enableRsc: true\n});\n";
|
|
4
4
|
var serverIndex = function(options) {
|
|
5
5
|
var _options_metaName = options.metaName, metaName = _options_metaName === void 0 ? "modern-js" : _options_metaName, entryName = options.entryName;
|
|
6
6
|
return "\n import '@".concat(metaName, "/runtime/registry/").concat(entryName, "';\n ").concat(genHandlerCode(options), "\n ");
|
|
7
7
|
};
|
|
8
8
|
var entryForCSRWithRSC = function(param) {
|
|
9
|
-
var metaName = param.metaName;
|
|
10
|
-
return "\n import
|
|
9
|
+
var metaName = param.metaName, entryName = param.entryName;
|
|
10
|
+
return "\n import '@".concat(metaName, "/runtime/registry/").concat(entryName, "';\n import {\n createRequestHandler,\n } from '@").concat(metaName, "/runtime/ssr/server';\n import { renderRsc, processRSCStream } from '@").concat(metaName, "/runtime/rsc/server'\n export { handleAction } from '@").concat(metaName, "/runtime/rsc/server';\n\n const handleCSRRender = async (request, ServerRoot, options) => {\n const rscPayloadStream = renderRsc({\n element: options.rscRoot,\n clientManifest: options.rscClientManifest!,\n });\n const stream = new ReadableStream({\n start(controller) {\n const encoder = new TextEncoder();\n\n controller.enqueue(encoder.encode(options.html));\n\n processRSCStream(rscPayloadStream, controller, encoder)\n .catch(err => {\n controller.error(err);\n });\n }\n });\n\n return new Response(stream, {\n status: 200,\n headers: new Headers({\n 'content-type': 'text/html; charset=UTF-8',\n }),\n });\n }\n\n export const renderRscStreamHandler = createRequestHandler(handleCSRRender, {\n enableRsc: true\n });\n\n const handleRequest = async (request, ServerRoot, options) => {\n const stream = renderRsc({\n element: options.rscRoot,\n clientManifest: options.rscClientManifest!,\n });\n\n return new Response(stream);\n }\n\n export const rscPayloadHandler = createRequestHandler(handleRequest, {\n enableRsc: true\n });\n");
|
|
11
11
|
};
|
|
12
12
|
function genHandlerCode(param) {
|
|
13
13
|
var mode = param.mode, metaName = param.metaName, customServerEntry = param.customServerEntry, srcDirectory = param.srcDirectory, internalSrcAlias = param.internalSrcAlias, enableRsc = param.enableRsc;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { RuntimeReactContext, getInitialContext } from "./runtime";
|
|
2
2
|
var globalContext = {};
|
|
3
|
+
import { getServerPayload, setServerPayload } from "./serverPayload.server";
|
|
4
|
+
function getGlobalIsRscClient() {
|
|
5
|
+
return globalContext.isRscClient;
|
|
6
|
+
}
|
|
7
|
+
function getGlobalEnableRsc() {
|
|
8
|
+
return globalContext.enableRsc;
|
|
9
|
+
}
|
|
3
10
|
function setGlobalContext(context) {
|
|
4
11
|
globalContext.entryName = context.entryName;
|
|
5
12
|
globalContext.App = context.App;
|
|
@@ -8,6 +15,8 @@ function setGlobalContext(context) {
|
|
|
8
15
|
globalContext.appConfig = typeof context.appConfig === "function" ? context.appConfig() : context.appConfig;
|
|
9
16
|
globalContext.layoutApp = context.layoutApp;
|
|
10
17
|
globalContext.RSCRoot = context.RSCRoot;
|
|
18
|
+
globalContext.isRscClient = context.isRscClient;
|
|
19
|
+
globalContext.enableRsc = context.enableRsc;
|
|
11
20
|
}
|
|
12
21
|
function getCurrentEntryName() {
|
|
13
22
|
return globalContext.entryName;
|
|
@@ -44,11 +53,15 @@ export {
|
|
|
44
53
|
getGlobalApp,
|
|
45
54
|
getGlobalAppConfig,
|
|
46
55
|
getGlobalAppInit,
|
|
56
|
+
getGlobalEnableRsc,
|
|
47
57
|
getGlobalInternalRuntimeContext,
|
|
58
|
+
getGlobalIsRscClient,
|
|
48
59
|
getGlobalLayoutApp,
|
|
49
60
|
getGlobalRSCRoot,
|
|
50
61
|
getGlobalRoutes,
|
|
51
62
|
getInitialContext,
|
|
63
|
+
getServerPayload,
|
|
52
64
|
setGlobalContext,
|
|
53
|
-
setGlobalInternalRuntimeContext
|
|
65
|
+
setGlobalInternalRuntimeContext,
|
|
66
|
+
setServerPayload
|
|
54
67
|
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { storage } from "@modern-js/runtime-utils/node";
|
|
2
|
+
var getServerPayload = function() {
|
|
3
|
+
var context = storage.useContext();
|
|
4
|
+
return context === null || context === void 0 ? void 0 : context.serverPayload;
|
|
5
|
+
};
|
|
6
|
+
var setServerPayload = function(payload) {
|
|
7
|
+
var context = storage.useContext();
|
|
8
|
+
if (context) {
|
|
9
|
+
context.serverPayload = payload;
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
export {
|
|
13
|
+
getServerPayload,
|
|
14
|
+
setServerPayload
|
|
15
|
+
};
|
|
@@ -5,15 +5,81 @@ 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 _type_of } from "@swc/helpers/_/_type_of";
|
|
7
7
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
9
|
import { storage } from "@modern-js/runtime-utils/node";
|
|
9
10
|
import { getPathname, parseCookie, parseHeaders, parseQuery } from "@modern-js/runtime-utils/universal/request";
|
|
11
|
+
import { Fragment } from "react";
|
|
10
12
|
import { getGlobalAppInit, getGlobalInternalRuntimeContext, getGlobalRSCRoot } from "../context";
|
|
11
13
|
import { getInitialContext } from "../context/runtime";
|
|
14
|
+
import { getServerPayload } from "../context/serverPayload.server";
|
|
12
15
|
import { createLoaderManager } from "../loader/loaderManager";
|
|
13
16
|
import { createRoot } from "../react";
|
|
14
17
|
import { CHUNK_CSS_PLACEHOLDER } from "./constants";
|
|
15
18
|
import { SSRErrors } from "./tracer";
|
|
16
19
|
import { getSSRConfigByEntry, getSSRMode } from "./utils";
|
|
20
|
+
function handleRSCRequest(request, Root, context, options, handleRequest) {
|
|
21
|
+
return _handleRSCRequest.apply(this, arguments);
|
|
22
|
+
}
|
|
23
|
+
function _handleRSCRequest() {
|
|
24
|
+
_handleRSCRequest = _async_to_generator(function(request, Root, context, options, handleRequest) {
|
|
25
|
+
var serverPayload, App;
|
|
26
|
+
return _ts_generator(this, function(_state) {
|
|
27
|
+
switch (_state.label) {
|
|
28
|
+
case 0:
|
|
29
|
+
serverPayload = getServerPayload();
|
|
30
|
+
if (!(typeof serverPayload !== "undefined"))
|
|
31
|
+
return [
|
|
32
|
+
3,
|
|
33
|
+
2
|
|
34
|
+
];
|
|
35
|
+
return [
|
|
36
|
+
4,
|
|
37
|
+
handleRequest(request, Root, _object_spread_props(_object_spread({}, options), {
|
|
38
|
+
runtimeContext: context,
|
|
39
|
+
rscRoot: serverPayload
|
|
40
|
+
}))
|
|
41
|
+
];
|
|
42
|
+
case 1:
|
|
43
|
+
return [
|
|
44
|
+
2,
|
|
45
|
+
_state.sent()
|
|
46
|
+
];
|
|
47
|
+
case 2:
|
|
48
|
+
App = getGlobalRSCRoot();
|
|
49
|
+
if (!App)
|
|
50
|
+
return [
|
|
51
|
+
3,
|
|
52
|
+
4
|
|
53
|
+
];
|
|
54
|
+
return [
|
|
55
|
+
4,
|
|
56
|
+
handleRequest(request, Fragment, _object_spread_props(_object_spread({}, options), {
|
|
57
|
+
runtimeContext: context,
|
|
58
|
+
rscRoot: /* @__PURE__ */ _jsx(App, {})
|
|
59
|
+
}))
|
|
60
|
+
];
|
|
61
|
+
case 3:
|
|
62
|
+
return [
|
|
63
|
+
2,
|
|
64
|
+
_state.sent()
|
|
65
|
+
];
|
|
66
|
+
case 4:
|
|
67
|
+
return [
|
|
68
|
+
4,
|
|
69
|
+
handleRequest(request, Root, _object_spread_props(_object_spread({}, options), {
|
|
70
|
+
runtimeContext: context
|
|
71
|
+
}))
|
|
72
|
+
];
|
|
73
|
+
case 5:
|
|
74
|
+
return [
|
|
75
|
+
2,
|
|
76
|
+
_state.sent()
|
|
77
|
+
];
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
return _handleRSCRequest.apply(this, arguments);
|
|
82
|
+
}
|
|
17
83
|
function createSSRContext(request, options) {
|
|
18
84
|
var config = options.config, loaderContext = options.loaderContext, onError = options.onError, onTiming = options.onTiming, locals = options.locals, resource = options.resource, params = options.params, responseProxy = options.responseProxy, logger = options.logger, metrics = options.metrics, reporter = options.reporter;
|
|
19
85
|
var nonce = config.nonce, useJsonScript = config.useJsonScript;
|
|
@@ -92,7 +158,8 @@ var createRequestHandler = function() {
|
|
|
92
158
|
request,
|
|
93
159
|
monitors: options.monitors,
|
|
94
160
|
responseProxy,
|
|
95
|
-
activeDeferreds
|
|
161
|
+
activeDeferreds,
|
|
162
|
+
serverPayload: void 0
|
|
96
163
|
}, /* @__PURE__ */ _async_to_generator(function() {
|
|
97
164
|
var _context_routerContext, _context_routerContext1, _context_routerContext2, Root, internalRuntimeContext, hooks, routeManifest, context, runBeforeRender, ssrContext, getRedirectResponse, initialData, _context_routerContext3, _context_ssrContext, errors, redirectResponse, htmlTemplate, response;
|
|
98
165
|
return _ts_generator(this, function(_state3) {
|
|
@@ -179,22 +246,48 @@ var createRequestHandler = function() {
|
|
|
179
246
|
context.initialData = initialData;
|
|
180
247
|
redirectResponse = getRedirectResponse(initialData);
|
|
181
248
|
if (redirectResponse) {
|
|
249
|
+
if (createRequestOptions === null || createRequestOptions === void 0 ? void 0 : createRequestOptions.enableRsc) {
|
|
250
|
+
return [
|
|
251
|
+
2,
|
|
252
|
+
initialData
|
|
253
|
+
];
|
|
254
|
+
} else {
|
|
255
|
+
return [
|
|
256
|
+
2,
|
|
257
|
+
redirectResponse
|
|
258
|
+
];
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
if (!(createRequestOptions === null || createRequestOptions === void 0 ? void 0 : createRequestOptions.enableRsc)) {
|
|
262
|
+
htmlTemplate = options.resource.htmlTemplate;
|
|
263
|
+
options.resource.htmlTemplate = htmlTemplate.replace("</head>", "".concat(CHUNK_CSS_PLACEHOLDER, "</head>"));
|
|
264
|
+
}
|
|
265
|
+
if (!(createRequestOptions === null || createRequestOptions === void 0 ? void 0 : createRequestOptions.enableRsc))
|
|
182
266
|
return [
|
|
183
|
-
|
|
184
|
-
|
|
267
|
+
3,
|
|
268
|
+
3
|
|
185
269
|
];
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
270
|
+
return [
|
|
271
|
+
4,
|
|
272
|
+
handleRSCRequest(request, Root, context, options, handleRequest)
|
|
273
|
+
];
|
|
274
|
+
case 2:
|
|
275
|
+
response = _state3.sent();
|
|
276
|
+
return [
|
|
277
|
+
3,
|
|
278
|
+
5
|
|
279
|
+
];
|
|
280
|
+
case 3:
|
|
189
281
|
return [
|
|
190
282
|
4,
|
|
191
283
|
handleRequest(request, Root, _object_spread_props(_object_spread({}, options), {
|
|
192
|
-
runtimeContext: context
|
|
193
|
-
RSCRoot: (createRequestOptions === null || createRequestOptions === void 0 ? void 0 : createRequestOptions.enableRsc) && getGlobalRSCRoot()
|
|
284
|
+
runtimeContext: context
|
|
194
285
|
}))
|
|
195
286
|
];
|
|
196
|
-
case
|
|
287
|
+
case 4:
|
|
197
288
|
response = _state3.sent();
|
|
289
|
+
_state3.label = 5;
|
|
290
|
+
case 5:
|
|
198
291
|
Object.entries(responseProxy.headers).forEach(function(param) {
|
|
199
292
|
var _param = _sliced_to_array(param, 2), key = _param[0], value = _param[1];
|
|
200
293
|
response.headers.set(key, value);
|
|
@@ -2,7 +2,7 @@ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
|
2
2
|
import { _ as _type_of } from "@swc/helpers/_/_type_of";
|
|
3
3
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
4
4
|
import path from "path";
|
|
5
|
-
import { fs, getEntryOptions, isSSGEntry, isUseSSRBundle, logger } from "@modern-js/utils";
|
|
5
|
+
import { fs, getEntryOptions, isSSGEntry, isUseRsc, isUseSSRBundle, logger } from "@modern-js/utils";
|
|
6
6
|
import { filterRoutesForServer, filterRoutesLoader, markRoutes } from "@modern-js/utils";
|
|
7
7
|
import { cloneDeep } from "@modern-js/utils/lodash";
|
|
8
8
|
import { ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME } from "../../../cli/constants";
|
|
@@ -125,11 +125,12 @@ var generateCode = function() {
|
|
|
125
125
|
templates.fileSystemRoutes({
|
|
126
126
|
metaName,
|
|
127
127
|
routes,
|
|
128
|
-
ssrMode: useSSG ? "string" : mode,
|
|
128
|
+
ssrMode: useSSG ? "string" : isUseRsc(_$config) ? "stream" : mode,
|
|
129
129
|
nestedRoutesEntry: entrypoint.nestedRoutesEntry,
|
|
130
130
|
entryName: entrypoint.entryName,
|
|
131
131
|
internalDirectory,
|
|
132
|
-
splitRouteChunks: _$config === null || _$config === void 0 ? void 0 : (_config_output = _$config.output) === null || _config_output === void 0 ? void 0 : _config_output.splitRouteChunks
|
|
132
|
+
splitRouteChunks: _$config === null || _$config === void 0 ? void 0 : (_config_output = _$config.output) === null || _config_output === void 0 ? void 0 : _config_output.splitRouteChunks,
|
|
133
|
+
isRscClient: isUseRsc(_$config)
|
|
133
134
|
})
|
|
134
135
|
];
|
|
135
136
|
case 4:
|
|
@@ -141,7 +142,7 @@ var generateCode = function() {
|
|
|
141
142
|
];
|
|
142
143
|
case 5:
|
|
143
144
|
code = _state.sent().code;
|
|
144
|
-
if (!(entrypoint.nestedRoutesEntry && isUseSSRBundle(_$config)))
|
|
145
|
+
if (!(entrypoint.nestedRoutesEntry && (isUseSSRBundle(_$config) || isUseRsc(_$config))))
|
|
145
146
|
return [
|
|
146
147
|
3,
|
|
147
148
|
10
|
|
@@ -173,7 +174,8 @@ var generateCode = function() {
|
|
|
173
174
|
nestedRoutesEntry: entrypoint.nestedRoutesEntry,
|
|
174
175
|
entryName: entrypoint.entryName,
|
|
175
176
|
internalDirectory,
|
|
176
|
-
splitRouteChunks: _$config === null || _$config === void 0 ? void 0 : (_config_output1 = _$config.output) === null || _config_output1 === void 0 ? void 0 : _config_output1.splitRouteChunks
|
|
177
|
+
splitRouteChunks: _$config === null || _$config === void 0 ? void 0 : (_config_output1 = _$config.output) === null || _config_output1 === void 0 ? void 0 : _config_output1.splitRouteChunks,
|
|
178
|
+
isRscClient: false
|
|
177
179
|
})
|
|
178
180
|
];
|
|
179
181
|
case 8:
|
|
@@ -243,7 +245,11 @@ var generateCode = function() {
|
|
|
243
245
|
function generatorRegisterCode(internalDirectory, entryName, code) {
|
|
244
246
|
fs.outputFileSync(path.resolve(internalDirectory, "./".concat(entryName, "/").concat(ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME, ".js")), code, "utf8");
|
|
245
247
|
}
|
|
248
|
+
function generatorServerRegisterCode(internalDirectory, entryName, code) {
|
|
249
|
+
fs.outputFileSync(path.resolve(internalDirectory, "./".concat(entryName, "/").concat(ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME, ".server.js")), code, "utf8");
|
|
250
|
+
}
|
|
246
251
|
export {
|
|
247
252
|
generateCode,
|
|
248
|
-
generatorRegisterCode
|
|
253
|
+
generatorRegisterCode,
|
|
254
|
+
generatorServerRegisterCode
|
|
249
255
|
};
|
|
@@ -120,11 +120,11 @@ var createMatchReg = function(keyword) {
|
|
|
120
120
|
};
|
|
121
121
|
var fileSystemRoutes = function() {
|
|
122
122
|
var _ref = _async_to_generator(function(param) {
|
|
123
|
-
var metaName, routes, ssrMode, nestedRoutesEntry, entryName, internalDirectory, _param_splitRouteChunks, splitRouteChunks, components, loadings, errors, loaders, loadersMap, configs, configsMap, loadersMapFile, importLazyCode, rootLayoutCode, getDataLoaderPath, createLazyImport, traverseRouteTree, routeComponentsCode, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, route, newRoute, routeStr, keywords, regs, newRouteStr, component, finalRoute, keywords1, routeStr1, regs1, newRouteStr1, importLoadingCode, importComponentsCode, importErrorComponentsCode, importLoadersCode, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, _step_value, key, loaderInfo, route1, importConfigsCode, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, _step_value1, key1, configPath, importRuntimeRouterCode, routeModulesCode;
|
|
123
|
+
var metaName, routes, ssrMode, nestedRoutesEntry, entryName, internalDirectory, _param_splitRouteChunks, splitRouteChunks, _param_isRscClient, isRscClient, components, loadings, errors, loaders, loadersMap, configs, configsMap, loadersMapFile, importLazyCode, rootLayoutCode, getDataLoaderPath, createLazyImport, traverseRouteTree, routeComponentsCode, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, route, newRoute, routeStr, keywords, regs, newRouteStr, component, finalRoute, keywords1, routeStr1, regs1, newRouteStr1, importLoadingCode, importComponentsCode, importErrorComponentsCode, importLoadersCode, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, _step_value, key, loaderInfo, route1, importConfigsCode, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, _step_value1, key1, configPath, importRuntimeRouterCode, routeModulesCode;
|
|
124
124
|
return _ts_generator(this, function(_state) {
|
|
125
125
|
switch (_state.label) {
|
|
126
126
|
case 0:
|
|
127
|
-
metaName = param.metaName, routes = param.routes, ssrMode = param.ssrMode, nestedRoutesEntry = param.nestedRoutesEntry, entryName = param.entryName, internalDirectory = param.internalDirectory, _param_splitRouteChunks = param.splitRouteChunks, splitRouteChunks = _param_splitRouteChunks === void 0 ? true : _param_splitRouteChunks;
|
|
127
|
+
metaName = param.metaName, routes = param.routes, ssrMode = param.ssrMode, nestedRoutesEntry = param.nestedRoutesEntry, entryName = param.entryName, internalDirectory = param.internalDirectory, _param_splitRouteChunks = param.splitRouteChunks, splitRouteChunks = _param_splitRouteChunks === void 0 ? true : _param_splitRouteChunks, _param_isRscClient = param.isRscClient, isRscClient = _param_isRscClient === void 0 ? false : _param_isRscClient;
|
|
128
128
|
components = [];
|
|
129
129
|
loadings = [];
|
|
130
130
|
errors = [];
|
|
@@ -149,14 +149,16 @@ var fileSystemRoutes = function() {
|
|
|
149
149
|
};
|
|
150
150
|
createLazyImport = function(param2) {
|
|
151
151
|
var componentPath = param2.componentPath, routeId = param2.routeId, webpackChunkName = param2.webpackChunkName, eager = param2.eager;
|
|
152
|
-
var importOptions = webpackChunkName ? '/* webpackChunkName: "'.concat(routeId, '" */
|
|
152
|
+
var importOptions = webpackChunkName ? '/* webpackChunkName: "'.concat(routeId, '" */ ') : eager ? '/* webpackMode: "eager" */ ' : "";
|
|
153
153
|
return "() => import(".concat(importOptions, "'").concat(componentPath, `').then(routeModule => handleRouteModule(routeModule, "`).concat(routeId, '")).catch(handleRouteModuleError)');
|
|
154
154
|
};
|
|
155
|
-
traverseRouteTree = function(route2) {
|
|
155
|
+
traverseRouteTree = function(route2, isRscClient2) {
|
|
156
156
|
var children;
|
|
157
157
|
if ("children" in route2 && route2.children) {
|
|
158
158
|
var _route_children;
|
|
159
|
-
children = route2 === null || route2 === void 0 ? void 0 : (_route_children = route2.children) === null || _route_children === void 0 ? void 0 : _route_children.map(
|
|
159
|
+
children = route2 === null || route2 === void 0 ? void 0 : (_route_children = route2.children) === null || _route_children === void 0 ? void 0 : _route_children.map(function(child) {
|
|
160
|
+
return traverseRouteTree(child, isRscClient2);
|
|
161
|
+
});
|
|
160
162
|
}
|
|
161
163
|
var loading;
|
|
162
164
|
var error;
|
|
@@ -238,7 +240,6 @@ var fileSystemRoutes = function() {
|
|
|
238
240
|
}
|
|
239
241
|
}
|
|
240
242
|
var finalRoute2 = _object_spread_props(_object_spread({}, route2), {
|
|
241
|
-
lazyImport,
|
|
242
243
|
loading,
|
|
243
244
|
loader,
|
|
244
245
|
action,
|
|
@@ -246,7 +247,10 @@ var fileSystemRoutes = function() {
|
|
|
246
247
|
error,
|
|
247
248
|
children
|
|
248
249
|
});
|
|
249
|
-
if (
|
|
250
|
+
if (!isRscClient2) {
|
|
251
|
+
finalRoute2.lazyImport = lazyImport;
|
|
252
|
+
}
|
|
253
|
+
if (route2._component && !isRscClient2) {
|
|
250
254
|
finalRoute2.component = component2;
|
|
251
255
|
}
|
|
252
256
|
if (route2.type === "nested" && route2._component && (route2.loader || route2.data)) {
|
|
@@ -260,7 +264,7 @@ var fileSystemRoutes = function() {
|
|
|
260
264
|
for (_iterator = routes[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
261
265
|
route = _step.value;
|
|
262
266
|
if ("type" in route) {
|
|
263
|
-
newRoute = traverseRouteTree(route);
|
|
267
|
+
newRoute = traverseRouteTree(route, isRscClient);
|
|
264
268
|
routeStr = JSON.stringify(newRoute, null, 2);
|
|
265
269
|
keywords = [
|
|
266
270
|
"component",
|
|
@@ -406,7 +410,7 @@ var fileSystemRoutes = function() {
|
|
|
406
410
|
routeModulesCode = "\n if(typeof document !== 'undefined'){\n window.".concat(ROUTE_MODULES, " = {}\n }\n ");
|
|
407
411
|
return [
|
|
408
412
|
2,
|
|
409
|
-
"\n ".concat(importLazyCode, "\n ").concat(importComponentsCode, "\n ").concat(importRuntimeRouterCode, "\n ").concat(rootLayoutCode, "\n ").concat(importLoadingCode, "\n ").concat(importErrorComponentsCode, "\n ").concat(importLoadersCode, "\n ").concat(importConfigsCode, "\n ").concat(routeModulesCode, "\n ").concat(routeComponentsCode, "\n ")
|
|
413
|
+
"\n ".concat(importLazyCode, "\n ").concat(!isRscClient ? importComponentsCode : "", "\n ").concat(importRuntimeRouterCode, "\n ").concat(!isRscClient ? rootLayoutCode : "", "\n ").concat(importLoadingCode, "\n ").concat(importErrorComponentsCode, "\n ").concat(importLoadersCode, "\n ").concat(importConfigsCode, "\n ").concat(routeModulesCode, "\n ").concat(routeComponentsCode, "\n ")
|
|
410
414
|
];
|
|
411
415
|
}
|
|
412
416
|
});
|
|
@@ -433,11 +437,11 @@ function ssrLoaderCombinedModule(entrypoints, entrypoint, config, appContext) {
|
|
|
433
437
|
}
|
|
434
438
|
var runtimeGlobalContext = function() {
|
|
435
439
|
var _ref = _async_to_generator(function(param) {
|
|
436
|
-
var entryName, metaName, srcDirectory, nestedRoutesEntry, internalSrcAlias, globalApp, imports, rootLayoutPath, rootLayoutFile, rootLayoutBuffer, rootLayout, _ref2, moduleExports, hasAppConfig, hasAppInit, layoutPath;
|
|
440
|
+
var entryName, metaName, srcDirectory, nestedRoutesEntry, internalSrcAlias, globalApp, _param_rscType, rscType, imports, rootLayoutPath, rootLayoutFile, rootLayoutBuffer, rootLayout, _ref2, moduleExports, hasAppConfig, hasAppInit, layoutPath, isClient, enableRsc;
|
|
437
441
|
return _ts_generator(this, function(_state) {
|
|
438
442
|
switch (_state.label) {
|
|
439
443
|
case 0:
|
|
440
|
-
entryName = param.entryName, metaName = param.metaName, srcDirectory = param.srcDirectory, nestedRoutesEntry = param.nestedRoutesEntry, internalSrcAlias = param.internalSrcAlias, globalApp = param.globalApp;
|
|
444
|
+
entryName = param.entryName, metaName = param.metaName, srcDirectory = param.srcDirectory, nestedRoutesEntry = param.nestedRoutesEntry, internalSrcAlias = param.internalSrcAlias, globalApp = param.globalApp, _param_rscType = param.rscType, rscType = _param_rscType === void 0 ? false : _param_rscType;
|
|
441
445
|
imports = [
|
|
442
446
|
"import { setGlobalContext } from '@".concat(metaName, "/runtime/context';")
|
|
443
447
|
];
|
|
@@ -519,9 +523,21 @@ var runtimeGlobalContext = function() {
|
|
|
519
523
|
} else {
|
|
520
524
|
imports.push("let layoutApp;");
|
|
521
525
|
}
|
|
526
|
+
isClient = rscType === "client";
|
|
527
|
+
enableRsc = Boolean(rscType);
|
|
528
|
+
if (isClient) {
|
|
529
|
+
return [
|
|
530
|
+
2,
|
|
531
|
+
"".concat(imports.join("\n"), "\n\n import { routes } from './routes';\n\n const entryName = '").concat(entryName, "';\n setGlobalContext({\n entryName,\n layoutApp,\n routes,\n appInit,\n appConfig,\n isRscClient: true,\n enableRsc: true,\n });\n ")
|
|
532
|
+
];
|
|
533
|
+
} else {
|
|
534
|
+
return [
|
|
535
|
+
2,
|
|
536
|
+
"".concat(imports.join("\n"), "\n\n import { routes } from './routes';\n\n const entryName = '").concat(entryName, "';\n setGlobalContext({\n entryName,\n layoutApp,\n routes,\n appInit,\n appConfig,\n enableRsc: ").concat(enableRsc, ",\n });\n ")
|
|
537
|
+
];
|
|
538
|
+
}
|
|
522
539
|
return [
|
|
523
|
-
2
|
|
524
|
-
"".concat(imports.join("\n"), "\n\nimport { routes } from './routes';\n\nconst entryName = '").concat(entryName, "';\nsetGlobalContext({\n entryName,\n layoutApp,\n routes,\n appInit,\n appConfig,\n});")
|
|
540
|
+
2
|
|
525
541
|
];
|
|
526
542
|
}
|
|
527
543
|
});
|
|
@@ -25,7 +25,7 @@ function handleGeneratorEntryCode(api, entrypoints, isRouterV5) {
|
|
|
25
25
|
}
|
|
26
26
|
function _handleGeneratorEntryCode() {
|
|
27
27
|
_handleGeneratorEntryCode = _async_to_generator(function(api, entrypoints, isRouterV5) {
|
|
28
|
-
var appContext, internalDirectory, resolvedConfig, _ref, generatorRegisterCode, generateCode;
|
|
28
|
+
var _resolvedConfig_server, appContext, internalDirectory, resolvedConfig, _ref, generatorRegisterCode, generateCode, generatorServerRegisterCode, enableRsc;
|
|
29
29
|
return _ts_generator(this, function(_state) {
|
|
30
30
|
switch (_state.label) {
|
|
31
31
|
case 0:
|
|
@@ -37,8 +37,9 @@ function _handleGeneratorEntryCode() {
|
|
|
37
37
|
import("./code")
|
|
38
38
|
];
|
|
39
39
|
case 1:
|
|
40
|
-
_ref = _state.sent(), generatorRegisterCode = _ref.generatorRegisterCode, generateCode = _ref.generateCode;
|
|
40
|
+
_ref = _state.sent(), generatorRegisterCode = _ref.generatorRegisterCode, generateCode = _ref.generateCode, generatorServerRegisterCode = _ref.generatorServerRegisterCode;
|
|
41
41
|
originEntrypoints = cloneDeep(entrypoints);
|
|
42
|
+
enableRsc = resolvedConfig === null || resolvedConfig === void 0 ? void 0 : (_resolvedConfig_server = resolvedConfig.server) === null || _resolvedConfig_server === void 0 ? void 0 : _resolvedConfig_server.rsc;
|
|
42
43
|
return [
|
|
43
44
|
4,
|
|
44
45
|
generateCode(appContext, resolvedConfig, entrypoints, api, isRouterV5)
|
|
@@ -49,14 +50,14 @@ function _handleGeneratorEntryCode() {
|
|
|
49
50
|
4,
|
|
50
51
|
Promise.all(entrypoints.map(function() {
|
|
51
52
|
var _ref2 = _async_to_generator(function(entrypoint) {
|
|
52
|
-
var _entrypoint_fileSystemRoutes, _tmp;
|
|
53
|
+
var _entrypoint_fileSystemRoutes, _tmp, _entrypoint_fileSystemRoutes1, _tmp1;
|
|
53
54
|
return _ts_generator(this, function(_state2) {
|
|
54
55
|
switch (_state2.label) {
|
|
55
56
|
case 0:
|
|
56
57
|
if (!(entrypoint.nestedRoutesEntry || entrypoint.pageRoutesEntry))
|
|
57
58
|
return [
|
|
58
59
|
3,
|
|
59
|
-
|
|
60
|
+
3
|
|
60
61
|
];
|
|
61
62
|
_tmp = [
|
|
62
63
|
internalDirectory,
|
|
@@ -70,15 +71,41 @@ function _handleGeneratorEntryCode() {
|
|
|
70
71
|
srcDirectory: appContext.srcDirectory,
|
|
71
72
|
nestedRoutesEntry: entrypoint.nestedRoutesEntry,
|
|
72
73
|
internalSrcAlias: appContext.internalSrcAlias,
|
|
73
|
-
globalApp: (_entrypoint_fileSystemRoutes = entrypoint.fileSystemRoutes) === null || _entrypoint_fileSystemRoutes === void 0 ? void 0 : _entrypoint_fileSystemRoutes.globalApp
|
|
74
|
+
globalApp: (_entrypoint_fileSystemRoutes = entrypoint.fileSystemRoutes) === null || _entrypoint_fileSystemRoutes === void 0 ? void 0 : _entrypoint_fileSystemRoutes.globalApp,
|
|
75
|
+
rscType: enableRsc ? "client" : void 0
|
|
74
76
|
})
|
|
75
77
|
];
|
|
76
78
|
case 1:
|
|
77
79
|
generatorRegisterCode.apply(void 0, _tmp.concat([
|
|
78
80
|
_state2.sent()
|
|
79
81
|
]));
|
|
80
|
-
|
|
82
|
+
if (!enableRsc)
|
|
83
|
+
return [
|
|
84
|
+
3,
|
|
85
|
+
3
|
|
86
|
+
];
|
|
87
|
+
_tmp1 = [
|
|
88
|
+
internalDirectory,
|
|
89
|
+
entrypoint.entryName
|
|
90
|
+
];
|
|
91
|
+
return [
|
|
92
|
+
4,
|
|
93
|
+
templates.runtimeGlobalContext({
|
|
94
|
+
entryName: entrypoint.entryName,
|
|
95
|
+
metaName: appContext.metaName,
|
|
96
|
+
srcDirectory: appContext.srcDirectory,
|
|
97
|
+
nestedRoutesEntry: entrypoint.nestedRoutesEntry,
|
|
98
|
+
internalSrcAlias: appContext.internalSrcAlias,
|
|
99
|
+
globalApp: (_entrypoint_fileSystemRoutes1 = entrypoint.fileSystemRoutes) === null || _entrypoint_fileSystemRoutes1 === void 0 ? void 0 : _entrypoint_fileSystemRoutes1.globalApp,
|
|
100
|
+
rscType: "server"
|
|
101
|
+
})
|
|
102
|
+
];
|
|
81
103
|
case 2:
|
|
104
|
+
generatorServerRegisterCode.apply(void 0, _tmp1.concat([
|
|
105
|
+
_state2.sent()
|
|
106
|
+
]));
|
|
107
|
+
_state2.label = 3;
|
|
108
|
+
case 3:
|
|
82
109
|
return [
|
|
83
110
|
2
|
|
84
111
|
];
|
|
@@ -37,7 +37,7 @@ var routerPlugin = function() {
|
|
|
37
37
|
if ((nestedRoutesEntry || pageRoutesEntry) && !isRouterV5) {
|
|
38
38
|
plugins.push({
|
|
39
39
|
name: "router",
|
|
40
|
-
path: "@".concat(metaName2, "/runtime/router"),
|
|
40
|
+
path: "@".concat(metaName2, "/runtime/router/internal"),
|
|
41
41
|
config: typeof routerConfig === "boolean" ? {
|
|
42
42
|
serverBase
|
|
43
43
|
} : _object_spread_props(_object_spread({}, routerConfig), {
|
|
@@ -64,9 +64,10 @@ var routerPlugin = function() {
|
|
|
64
64
|
// react-router v6 is no longer support ie 11
|
|
65
65
|
// so we need to compile these packages to ensure the compatibility
|
|
66
66
|
// https://github.com/remix-run/react-router/commit/f6df0697e1b2064a2b3a12e8b39577326fdd945b
|
|
67
|
-
/node_modules
|
|
68
|
-
/node_modules
|
|
69
|
-
/node_modules
|
|
67
|
+
/[\\/]node_modules[\\/]react-router[\\/]/,
|
|
68
|
+
/[\\/]node_modules[\\/]react-router-dom[\\/]/,
|
|
69
|
+
/[\\/]node_modules[\\/]@remix-run[\\/]router[\\/]/,
|
|
70
|
+
path.resolve(__dirname, "../runtime").replace("cjs", "esm")
|
|
70
71
|
],
|
|
71
72
|
globalVars: {
|
|
72
73
|
"process.env._MODERN_ROUTER_VERSION": "v6"
|
|
@@ -127,7 +128,7 @@ var routerPlugin = function() {
|
|
|
127
128
|
var _api_useAppContext = api.useAppContext(), internalDirectory = _api_useAppContext.internalDirectory, metaName2 = _api_useAppContext.metaName;
|
|
128
129
|
var pluginsExportsUtils = createRuntimeExportsUtils(internalDirectory, "plugins");
|
|
129
130
|
if (!isRouterV5) {
|
|
130
|
-
pluginsExportsUtils.addExport("export { default as router } from '@".concat(metaName2, "/runtime/router'"));
|
|
131
|
+
pluginsExportsUtils.addExport("export { default as router } from '@".concat(metaName2, "/runtime/router/internal'"));
|
|
131
132
|
}
|
|
132
133
|
});
|
|
133
134
|
api.onFileChanged(function() {
|
package/dist/esm/router/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
2
3
|
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
3
4
|
import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
|
|
@@ -242,6 +243,5 @@ var NavLink = createPrefetchLink(RouterNavLink);
|
|
|
242
243
|
NavLink.displayName = "NavLink";
|
|
243
244
|
export {
|
|
244
245
|
Link,
|
|
245
|
-
NavLink
|
|
246
|
-
composeEventHandlers
|
|
246
|
+
NavLink
|
|
247
247
|
};
|