@modern-js/runtime 3.0.5 → 3.1.1
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 +9 -8
- package/dist/cjs/cli/template.js +46 -8
- package/dist/cjs/core/browser/index.js +4 -1
- package/dist/cjs/core/server/stream/createReadableStream.js +2 -0
- package/dist/cjs/core/server/string/index.js +4 -1
- package/dist/cjs/router/cli/code/index.js +1 -1
- package/dist/cjs/router/cli/code/utils.js +5 -5
- package/dist/cjs/router/runtime/PrefetchLink.js +1 -4
- package/dist/esm/cli/code.mjs +9 -8
- package/dist/esm/cli/index.mjs +2 -1
- package/dist/esm/cli/ssr/index.mjs +2 -1
- package/dist/esm/cli/ssr/loadable-bundler-plugin.mjs +1 -1
- package/dist/esm/cli/template.mjs +48 -10
- package/dist/esm/core/browser/index.mjs +4 -1
- package/dist/esm/core/constants.mjs +1 -1
- package/dist/esm/core/context/index.mjs +3 -3
- package/dist/esm/core/index.mjs +2 -3
- package/dist/esm/core/server/index.mjs +3 -2
- package/dist/esm/core/server/react/index.mjs +2 -3
- package/dist/esm/core/server/server.mjs +3 -4
- package/dist/esm/core/server/stream/createReadableStream.mjs +2 -0
- package/dist/esm/core/server/stream/shared.mjs +1 -1
- package/dist/esm/core/server/string/index.mjs +4 -1
- package/dist/esm/document/cli/index.mjs +2 -1
- package/dist/esm/exports/head.mjs +2 -1
- package/dist/esm/exports/loadable.mjs +2 -2
- package/dist/esm/index.mjs +5 -6
- package/dist/esm/internal.mjs +1 -2
- package/dist/esm/react-server.mjs +3 -4
- package/dist/esm/router/cli/code/getClientRoutes/index.mjs +1 -2
- package/dist/esm/router/cli/code/index.mjs +2 -2
- package/dist/esm/router/cli/code/utils.mjs +2 -2
- package/dist/esm/router/cli/index.mjs +2 -1
- package/dist/esm/router/internal.mjs +1 -2
- package/dist/esm/router/runtime/DeferredDataScripts.mjs +1 -1
- package/dist/esm/router/runtime/DeferredDataScripts.node.mjs +1 -1
- package/dist/esm/router/runtime/PrefetchLink.mjs +1 -5
- package/dist/esm/router/runtime/index.mjs +3 -3
- package/dist/esm/router/runtime/internal.mjs +3 -2
- package/dist/esm/router/runtime/plugin.mjs +1 -1
- package/dist/esm-node/cli/code.mjs +9 -8
- package/dist/esm-node/cli/index.mjs +2 -1
- package/dist/esm-node/cli/ssr/index.mjs +2 -1
- package/dist/esm-node/cli/ssr/loadable-bundler-plugin.mjs +1 -1
- package/dist/esm-node/cli/template.mjs +48 -10
- package/dist/esm-node/core/browser/index.mjs +4 -1
- package/dist/esm-node/core/constants.mjs +1 -1
- package/dist/esm-node/core/context/index.mjs +3 -3
- package/dist/esm-node/core/index.mjs +2 -3
- package/dist/esm-node/core/server/index.mjs +3 -2
- package/dist/esm-node/core/server/react/index.mjs +2 -3
- package/dist/esm-node/core/server/server.mjs +3 -4
- package/dist/esm-node/core/server/stream/createReadableStream.mjs +2 -0
- package/dist/esm-node/core/server/stream/shared.mjs +1 -1
- package/dist/esm-node/core/server/string/index.mjs +4 -1
- package/dist/esm-node/document/cli/index.mjs +2 -1
- package/dist/esm-node/exports/head.mjs +2 -1
- package/dist/esm-node/exports/loadable.mjs +2 -2
- package/dist/esm-node/index.mjs +5 -6
- package/dist/esm-node/internal.mjs +1 -2
- package/dist/esm-node/react-server.mjs +3 -4
- package/dist/esm-node/router/cli/code/getClientRoutes/index.mjs +1 -2
- package/dist/esm-node/router/cli/code/index.mjs +2 -2
- package/dist/esm-node/router/cli/code/utils.mjs +2 -2
- package/dist/esm-node/router/cli/index.mjs +2 -1
- package/dist/esm-node/router/internal.mjs +1 -2
- package/dist/esm-node/router/runtime/DeferredDataScripts.mjs +1 -1
- package/dist/esm-node/router/runtime/DeferredDataScripts.node.mjs +1 -1
- package/dist/esm-node/router/runtime/PrefetchLink.mjs +1 -5
- package/dist/esm-node/router/runtime/index.mjs +3 -3
- package/dist/esm-node/router/runtime/internal.mjs +3 -2
- package/dist/esm-node/router/runtime/plugin.mjs +1 -1
- package/dist/types/cli/template.d.ts +2 -1
- package/dist/types/router/cli/code/utils.d.ts +1 -1
- package/package.json +11 -11
- package/{rstest.config.ts → rstest.config.mts} +0 -6
|
@@ -2,11 +2,11 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { merge } from "@modern-js/runtime-utils/merge";
|
|
3
3
|
import { RouterProvider, createBrowserRouter, createHashRouter, createRoutesFromElements, useHref, useLocation, useMatches } from "@modern-js/runtime-utils/router";
|
|
4
4
|
import { normalizePathname } from "@modern-js/runtime-utils/url";
|
|
5
|
+
import * as __rspack_external_react from "react";
|
|
5
6
|
import { InternalRuntimeContext, getGlobalIsRscClient, getGlobalLayoutApp, getGlobalRoutes } from "../../core/context/index.mjs";
|
|
6
7
|
import { modifyRoutes, onBeforeCreateRoutes } from "./hooks.mjs";
|
|
7
8
|
import { createClientRouterFromPayload } from "./rsc-router.mjs";
|
|
8
9
|
import { createRouteObjectsFromConfig, deserializeErrors, renderRoutes, urlJoin } from "./utils.mjs";
|
|
9
|
-
import * as __rspack_external_react from "react";
|
|
10
10
|
let finalRouteConfig = {
|
|
11
11
|
routes: []
|
|
12
12
|
};
|
|
@@ -22,13 +22,7 @@ const generateCode = async (entrypoints, appContext, config, hooks)=>{
|
|
|
22
22
|
nestedRoutesEntry
|
|
23
23
|
});
|
|
24
24
|
let indexCode = '';
|
|
25
|
-
indexCode =
|
|
26
|
-
metaName,
|
|
27
|
-
entryName,
|
|
28
|
-
mountId,
|
|
29
|
-
urlPath: serverRoutes.find((route)=>route.entryName === entryName)?.urlPath,
|
|
30
|
-
isNestedRouter: entrypoint.nestedRoutesEntry
|
|
31
|
-
}) : index({
|
|
25
|
+
indexCode = ssrMode || !config.server.rsc || customEntry ? index({
|
|
32
26
|
srcDirectory,
|
|
33
27
|
internalSrcAlias,
|
|
34
28
|
metaName,
|
|
@@ -38,6 +32,12 @@ const generateCode = async (entrypoints, appContext, config, hooks)=>{
|
|
|
38
32
|
mountId,
|
|
39
33
|
enableRsc: config.server.rsc,
|
|
40
34
|
isNestedRouter: !!entrypoint.nestedRoutesEntry
|
|
35
|
+
}) : entryForCSRWithRSC({
|
|
36
|
+
metaName,
|
|
37
|
+
entryName,
|
|
38
|
+
mountId,
|
|
39
|
+
urlPath: serverRoutes.find((route)=>route.entryName === entryName)?.urlPath,
|
|
40
|
+
isNestedRouter: entrypoint.nestedRoutesEntry
|
|
41
41
|
});
|
|
42
42
|
const indexFile = path.resolve(internalDirectory, `./${entryName}/${ENTRY_POINT_FILE_NAME}`);
|
|
43
43
|
await fs.outputFile(indexFile, indexCode, 'utf8');
|
|
@@ -104,7 +104,8 @@ const generateCode = async (entrypoints, appContext, config, hooks)=>{
|
|
|
104
104
|
});
|
|
105
105
|
await fs.outputFile(AppProxyPath, appProxyCode);
|
|
106
106
|
contextCode = runtimeGlobalContextForRSCClient({
|
|
107
|
-
metaName
|
|
107
|
+
metaName,
|
|
108
|
+
customEntry
|
|
108
109
|
});
|
|
109
110
|
const contextServerCode = runtimeGlobalContextForRSCServer({
|
|
110
111
|
metaName
|
|
@@ -91,4 +91,5 @@ const runtimePlugin = (params)=>({
|
|
|
91
91
|
}
|
|
92
92
|
});
|
|
93
93
|
const cli = runtimePlugin;
|
|
94
|
-
export
|
|
94
|
+
export default cli;
|
|
95
|
+
export { documentPlugin, isRuntimeEntry, routerPlugin, runtimePlugin, ssrPlugin };
|
|
@@ -153,16 +153,54 @@ const runtimeGlobalContextForRSCServer = ({ metaName })=>`
|
|
|
153
153
|
App: DefaultRoot,
|
|
154
154
|
RSCRoot: AppProxy,
|
|
155
155
|
});`;
|
|
156
|
-
const runtimeGlobalContextForRSCClient = ({ metaName })=>`
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
156
|
+
const runtimeGlobalContextForRSCClient = ({ metaName, customEntry })=>`
|
|
157
|
+
${customEntry ? `import {
|
|
158
|
+
RscClientRoot,
|
|
159
|
+
createFromFetch,
|
|
160
|
+
createFromReadableStream,
|
|
161
|
+
isRedirectResponse,
|
|
162
|
+
rscStream,
|
|
163
|
+
callServer,
|
|
164
|
+
setServerCallback,
|
|
165
|
+
} from '@${metaName}/runtime/rsc/client';` : ''}
|
|
166
|
+
import { createElement, Fragment } from 'react';
|
|
167
|
+
import { setGlobalContext } from '@${metaName}/runtime/context';
|
|
168
|
+
|
|
169
|
+
${customEntry ? 'setServerCallback(callServer);' : ''}
|
|
170
|
+
|
|
171
|
+
${customEntry ? `const handleRedirectResponse = (res: Response) => {
|
|
172
|
+
const { headers } = res;
|
|
173
|
+
const location = headers.get('X-Modernjs-Redirect');
|
|
174
|
+
const baseUrl = headers.get('X-Modernjs-BaseUrl');
|
|
175
|
+
if (location) {
|
|
176
|
+
if (baseUrl && baseUrl !== '/') {
|
|
177
|
+
window.location.replace(baseUrl + location);
|
|
178
|
+
} else {
|
|
179
|
+
window.location.replace(location);
|
|
180
|
+
}
|
|
181
|
+
return res;
|
|
182
|
+
}
|
|
183
|
+
return res;
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
const data = ${process.env.MODERN_DISABLE_INJECT_RSC_DATA ? `createFromFetch(
|
|
187
|
+
fetch(location.pathname, {
|
|
188
|
+
headers: {
|
|
189
|
+
'x-rsc-tree': 'true',
|
|
190
|
+
},
|
|
191
|
+
}).then(handleRedirectResponse),
|
|
192
|
+
)` : `createFromReadableStream(rscStream, {
|
|
193
|
+
callServer: callServer,
|
|
194
|
+
})`};` : ''}
|
|
195
|
+
|
|
196
|
+
const DefaultRoot = ({ children }: { children?: ReactNode }) =>
|
|
197
|
+
createElement(Fragment, null, children);
|
|
198
|
+
|
|
199
|
+
${customEntry ? 'const RSCRoot = () => createElement(RscClientRoot, { rscPayload: data });' : ''}
|
|
200
|
+
|
|
201
|
+
setGlobalContext({
|
|
202
|
+
App: ${customEntry ? 'RSCRoot' : 'DefaultRoot'}
|
|
203
|
+
});`;
|
|
166
204
|
const AppProxyForRSC = ({ srcDirectory, internalSrcAlias, entry, customEntry })=>`
|
|
167
205
|
import App from '${formatImportPath(customEntry ? entry.replace(/entry\.[tj]sx/, 'App').replace(srcDirectory, internalSrcAlias) : entry.replace(srcDirectory, internalSrcAlias).replace('.tsx', ''))}';
|
|
168
206
|
import React from 'react';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import "node:module";
|
|
2
|
+
import { SSR_HYDRATION_ID_PREFIX } from "@modern-js/utils/universal/constants";
|
|
2
3
|
import cookie from "cookie";
|
|
3
4
|
import { getGlobalInternalRuntimeContext } from "../context/index.mjs";
|
|
4
5
|
import { getInitialContext } from "../context/runtime.mjs";
|
|
@@ -87,7 +88,9 @@ async function renderWithReact17(App, rootElement) {
|
|
|
87
88
|
}
|
|
88
89
|
async function hydrateWithReact18(App, rootElement) {
|
|
89
90
|
const ReactDOM = await import("react-dom/client");
|
|
90
|
-
const root = ReactDOM.hydrateRoot(rootElement, App
|
|
91
|
+
const root = ReactDOM.hydrateRoot(rootElement, App, {
|
|
92
|
+
identifierPrefix: SSR_HYDRATION_ID_PREFIX
|
|
93
|
+
});
|
|
91
94
|
return root;
|
|
92
95
|
}
|
|
93
96
|
async function hydrateWithReact17(App, rootElement, callback) {
|
|
@@ -6,4 +6,4 @@ var constants_RenderLevel = /*#__PURE__*/ function(RenderLevel) {
|
|
|
6
6
|
}({});
|
|
7
7
|
const SSR_DATA_JSON_ID = '__MODERN_SSR_DATA__';
|
|
8
8
|
const ROUTER_DATA_JSON_ID = '__MODERN_ROUTER_DATA__';
|
|
9
|
-
export { ROUTER_DATA_JSON_ID, constants_RenderLevel as RenderLevel
|
|
9
|
+
export { ROUTER_DATA_JSON_ID, SSR_DATA_JSON_ID, constants_RenderLevel as RenderLevel };
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import "node:module";
|
|
2
|
-
import { InternalRuntimeContext, RuntimeContext, getInitialContext } from "./runtime.mjs";
|
|
3
|
-
import { getServerPayload, setServerPayload } from "./serverPayload/index.mjs";
|
|
4
2
|
const globalContext = {};
|
|
5
3
|
function getGlobalIsRscClient() {
|
|
6
4
|
return globalContext.isRscClient;
|
|
@@ -43,4 +41,6 @@ function getGlobalLayoutApp() {
|
|
|
43
41
|
function getGlobalBasename() {
|
|
44
42
|
return globalContext.basename;
|
|
45
43
|
}
|
|
46
|
-
export { InternalRuntimeContext, RuntimeContext,
|
|
44
|
+
export { InternalRuntimeContext, RuntimeContext, getInitialContext } from "./runtime.mjs";
|
|
45
|
+
export { getServerPayload, setServerPayload } from "./serverPayload/index.mjs";
|
|
46
|
+
export { getCurrentEntryName, getGlobalApp, getGlobalBasename, getGlobalEnableRsc, getGlobalInternalRuntimeContext, getGlobalIsRscClient, getGlobalLayoutApp, getGlobalRSCRoot, getGlobalRoutes, setGlobalContext, setGlobalInternalRuntimeContext };
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import "node:module";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export { RuntimeContext, defineRuntimeConfig, useRuntimeContext };
|
|
2
|
+
export { defineRuntimeConfig } from "./config.mjs";
|
|
3
|
+
export { RuntimeContext, useRuntimeContext } from "./context/runtime.mjs";
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import "node:module";
|
|
2
|
-
import { NoSSR, NoSSRCache } from "./react/index.mjs";
|
|
3
2
|
const ssr = (_config)=>({
|
|
4
3
|
name: '@modern-js/plugin-ssr',
|
|
5
4
|
setup: (_api)=>{}
|
|
6
5
|
});
|
|
7
6
|
const server = ssr;
|
|
8
|
-
export { NoSSR, NoSSRCache
|
|
7
|
+
export { NoSSR, NoSSRCache } from "./react/index.mjs";
|
|
8
|
+
export default server;
|
|
9
|
+
export { ssr };
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import "node:module";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export { createRequestHandler, renderStreaming, renderString };
|
|
2
|
+
export { renderString } from "./string/index.mjs";
|
|
3
|
+
export { renderStreaming } from "./stream/index.mjs";
|
|
4
|
+
export { createRequestHandler } from "./requestHandler.mjs";
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import "node:module";
|
|
2
2
|
import { PassThrough, Readable, Transform } from "stream";
|
|
3
3
|
import { storage } from "@modern-js/runtime-utils/node";
|
|
4
|
+
import { SSR_HYDRATION_ID_PREFIX } from "@modern-js/utils/universal/constants";
|
|
4
5
|
import { ESCAPED_SHELL_STREAM_END_MARK } from "../../../common.mjs";
|
|
5
6
|
import { RenderLevel } from "../../constants.mjs";
|
|
6
7
|
import { getGlobalInternalRuntimeContext } from "../../context/index.mjs";
|
|
@@ -38,6 +39,7 @@ const createReadableStreamFromElement = async (request, rootElement, options)=>{
|
|
|
38
39
|
return new Promise((resolve)=>{
|
|
39
40
|
const { pipe: reactStreamingPipe } = renderToPipeableStream(processedRootElement, {
|
|
40
41
|
nonce: config.nonce,
|
|
42
|
+
identifierPrefix: SSR_HYDRATION_ID_PREFIX,
|
|
41
43
|
[onReady] () {
|
|
42
44
|
let styledComponentsStyleTags = '';
|
|
43
45
|
extenders.forEach((extender)=>{
|
|
@@ -106,4 +106,4 @@ function createRenderStreaming(createReadableStreamPromise) {
|
|
|
106
106
|
return stream;
|
|
107
107
|
};
|
|
108
108
|
}
|
|
109
|
-
export {
|
|
109
|
+
export { createRenderStreaming, encodeForWebStream, getReadableStreamFromString, resolveStreamingMode, shared_ShellChunkStatus as ShellChunkStatus };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import "node:module";
|
|
2
2
|
import { time } from "@modern-js/runtime-utils/time";
|
|
3
|
+
import { SSR_HYDRATION_ID_PREFIX } from "@modern-js/utils/universal/constants";
|
|
3
4
|
import server from "react-dom/server";
|
|
4
5
|
import react_helmet from "react-helmet";
|
|
5
6
|
import { RenderLevel } from "../../constants.mjs";
|
|
@@ -66,7 +67,9 @@ async function generateHtml(App, htmlTemplate, chunkSet, collectors, htmlModifie
|
|
|
66
67
|
const finalApp = collectors.reduce((pre, creator)=>creator.collect?.(pre) || pre, App);
|
|
67
68
|
try {
|
|
68
69
|
const end = time();
|
|
69
|
-
html = server.renderToString(finalApp
|
|
70
|
+
html = server.renderToString(finalApp, {
|
|
71
|
+
identifierPrefix: SSR_HYDRATION_ID_PREFIX
|
|
72
|
+
});
|
|
70
73
|
chunkSet.renderLevel = RenderLevel.SERVER_RENDER;
|
|
71
74
|
helmetData = react_helmet.renderStatic();
|
|
72
75
|
const cost = end();
|
package/dist/esm-node/index.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import "node:module";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export { RuntimeContext, defineRuntimeConfig, getMonitors, getRequest, isBrowser, redirect, setHeaders, setStatus, useRuntimeContext };
|
|
2
|
+
export { isBrowser } from "./common.mjs";
|
|
3
|
+
export { getMonitors } from "./core/context/monitors/index.mjs";
|
|
4
|
+
export { getRequest } from "./core/context/request/index.mjs";
|
|
5
|
+
export { redirect, setHeaders, setStatus } from "./core/context/response/index.mjs";
|
|
6
|
+
export { RuntimeContext, defineRuntimeConfig, useRuntimeContext } from "./core/index.mjs";
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import "node:module";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export { getMonitors, getRequest, redirect, setHeaders, setStatus };
|
|
2
|
+
export { getRequest } from "./core/context/request/index.mjs";
|
|
3
|
+
export { getMonitors } from "./core/context/monitors/index.mjs";
|
|
4
|
+
export { redirect, setHeaders, setStatus } from "./core/context/response/index.mjs";
|
|
@@ -7,7 +7,7 @@ import { resolveSSRMode } from "../../../cli/ssr/mode.mjs";
|
|
|
7
7
|
import { FILE_SYSTEM_ROUTES_FILE_NAME } from "../constants.mjs";
|
|
8
8
|
import { walk } from "./nestedRoutes.mjs";
|
|
9
9
|
import { fileSystemRoutes, routesForServer, ssrLoaderCombinedModule } from "./templates.mjs";
|
|
10
|
-
import {
|
|
10
|
+
import { getServerCombinedModuleFile, getServerLoadersFile } from "./utils.mjs";
|
|
11
11
|
async function generateRoutesForEntry(entrypoint, appContext) {
|
|
12
12
|
const routes = [];
|
|
13
13
|
if (entrypoint.nestedRoutesEntry) {
|
|
@@ -120,7 +120,7 @@ const generateCode = async (appContext, config, entrypoints, api)=>{
|
|
|
120
120
|
}
|
|
121
121
|
const serverLoaderCombined = ssrLoaderCombinedModule(entrypoints, entrypoint, config, appContext);
|
|
122
122
|
if (serverLoaderCombined) {
|
|
123
|
-
const serverLoaderFile =
|
|
123
|
+
const serverLoaderFile = getServerCombinedModuleFile(internalDirectory, entryName);
|
|
124
124
|
await fs.outputFile(serverLoaderFile, serverLoaderCombined);
|
|
125
125
|
}
|
|
126
126
|
await fs.outputFile(path.resolve(internalDirectory, `./${entryName}/${FILE_SYSTEM_ROUTES_FILE_NAME}`), code, 'utf8');
|
|
@@ -66,9 +66,9 @@ const hasAction = async (filename, source)=>{
|
|
|
66
66
|
return false;
|
|
67
67
|
};
|
|
68
68
|
const getServerLoadersFile = (internalDirectory, entryName)=>path.join(internalDirectory, entryName, 'route-server-loaders.js');
|
|
69
|
-
const
|
|
69
|
+
const getServerCombinedModuleFile = (internalDirectory, entryName)=>path.join(internalDirectory, entryName, 'server-loader-combined.js');
|
|
70
70
|
const getPathWithoutExt = (filename)=>{
|
|
71
71
|
const extname = path.extname(filename);
|
|
72
72
|
return extname ? filename.slice(0, -extname.length) : filename;
|
|
73
73
|
};
|
|
74
|
-
export { getPathWithoutExt,
|
|
74
|
+
export { getPathWithoutExt, getServerCombinedModuleFile, getServerLoadersFile, hasAction, hasLoader, isPageComponentFile, parseModule, replaceWithAlias, walkDirectory };
|
|
@@ -81,4 +81,5 @@ const routerPlugin = ()=>({
|
|
|
81
81
|
}
|
|
82
82
|
});
|
|
83
83
|
const cli = routerPlugin;
|
|
84
|
-
export
|
|
84
|
+
export default cli;
|
|
85
|
+
export { handleFileChange, handleModifyEntrypoints, isRouteEntry, routerPlugin };
|
|
@@ -4,10 +4,6 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
|
4
4
|
import { Link as router_Link, NavLink, matchRoutes, useHref, useMatches, useResolvedPath } from "@modern-js/runtime-utils/router";
|
|
5
5
|
import react, { useContext, useMemo } from "react";
|
|
6
6
|
import { InternalRuntimeContext } from "../../core/context/index.mjs";
|
|
7
|
-
var __webpack_require__ = {};
|
|
8
|
-
(()=>{
|
|
9
|
-
__webpack_require__.e = ()=>Promise.resolve();
|
|
10
|
-
})();
|
|
11
7
|
function composeEventHandlers(theirHandler, ourHandler) {
|
|
12
8
|
return (event)=>{
|
|
13
9
|
theirHandler?.(event);
|
|
@@ -146,7 +142,7 @@ const createPrefetchLink = (Link)=>/*#__PURE__*/ react.forwardRef(({ to, prefetc
|
|
|
146
142
|
...props,
|
|
147
143
|
...prefetchHandlers
|
|
148
144
|
}),
|
|
149
|
-
shouldPrefetch &&
|
|
145
|
+
shouldPrefetch && __webpack_chunk_load__ && !isAbsolute ? /*#__PURE__*/ jsx(PrefetchPageLinks, {
|
|
150
146
|
path: resolvedPath
|
|
151
147
|
}) : null
|
|
152
148
|
]
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import "node:module";
|
|
2
|
-
import { useRouteLoaderData } from "@modern-js/runtime-utils/router";
|
|
3
|
-
import { Link, NavLink } from "./PrefetchLink.mjs";
|
|
4
2
|
export * from "@modern-js/runtime-utils/router";
|
|
5
3
|
export * from "./withRouter.mjs";
|
|
4
|
+
import { useRouteLoaderData } from "@modern-js/runtime-utils/router";
|
|
6
5
|
const runtime_useRouteLoaderData = (routeId)=>{
|
|
7
6
|
const realRouteId = routeId.replace(/\[(.*?)\]/g, '($1)');
|
|
8
7
|
return useRouteLoaderData(realRouteId);
|
|
9
8
|
};
|
|
10
|
-
export { Link, NavLink
|
|
9
|
+
export { Link, NavLink } from "./PrefetchLink.mjs";
|
|
10
|
+
export { runtime_useRouteLoaderData as useRouteLoaderData };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import "node:module";
|
|
2
2
|
import { modifyRoutes, routerPlugin } from "./plugin.mjs";
|
|
3
|
-
import { renderRoutes } from "./utils.mjs";
|
|
4
3
|
const internal = routerPlugin;
|
|
5
|
-
export {
|
|
4
|
+
export { renderRoutes } from "./utils.mjs";
|
|
5
|
+
export default internal;
|
|
6
|
+
export { modifyRoutes, routerPlugin };
|
|
@@ -3,11 +3,11 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import { merge } from "@modern-js/runtime-utils/merge";
|
|
4
4
|
import { RouterProvider, createBrowserRouter, createHashRouter, createRoutesFromElements, useHref, useLocation, useMatches } from "@modern-js/runtime-utils/router";
|
|
5
5
|
import { normalizePathname } from "@modern-js/runtime-utils/url";
|
|
6
|
+
import * as __rspack_external_react from "react";
|
|
6
7
|
import { InternalRuntimeContext, getGlobalIsRscClient, getGlobalLayoutApp, getGlobalRoutes } from "../../core/context/index.mjs";
|
|
7
8
|
import { modifyRoutes, onBeforeCreateRoutes } from "./hooks.mjs";
|
|
8
9
|
import { createClientRouterFromPayload } from "./rsc-router.mjs";
|
|
9
10
|
import { createRouteObjectsFromConfig, deserializeErrors, renderRoutes, urlJoin } from "./utils.mjs";
|
|
10
|
-
import * as __rspack_external_react from "react";
|
|
11
11
|
let finalRouteConfig = {
|
|
12
12
|
routes: []
|
|
13
13
|
};
|
|
@@ -38,8 +38,9 @@ export declare const runtimeGlobalContext: ({ entryName, srcDirectory, internalS
|
|
|
38
38
|
export declare const runtimeGlobalContextForRSCServer: ({ metaName, }: {
|
|
39
39
|
metaName: string;
|
|
40
40
|
}) => string;
|
|
41
|
-
export declare const runtimeGlobalContextForRSCClient: ({ metaName, }: {
|
|
41
|
+
export declare const runtimeGlobalContextForRSCClient: ({ metaName, customEntry, }: {
|
|
42
42
|
metaName: string;
|
|
43
|
+
customEntry?: boolean;
|
|
43
44
|
}) => string;
|
|
44
45
|
export declare const AppProxyForRSC: ({ srcDirectory, internalSrcAlias, entry, customEntry, }: {
|
|
45
46
|
srcDirectory: string;
|
|
@@ -8,5 +8,5 @@ export declare const parseModule: ({ source, filename, }: {
|
|
|
8
8
|
export declare const hasLoader: (filename: string, source?: string) => Promise<boolean>;
|
|
9
9
|
export declare const hasAction: (filename: string, source?: string) => Promise<boolean>;
|
|
10
10
|
export declare const getServerLoadersFile: (internalDirectory: string, entryName: string) => string;
|
|
11
|
-
export declare const
|
|
11
|
+
export declare const getServerCombinedModuleFile: (internalDirectory: string, entryName: string) => string;
|
|
12
12
|
export declare const getPathWithoutExt: (filename: string) => string;
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"modern",
|
|
16
16
|
"modern.js"
|
|
17
17
|
],
|
|
18
|
-
"version": "3.
|
|
18
|
+
"version": "3.1.1",
|
|
19
19
|
"engines": {
|
|
20
20
|
"node": ">=20"
|
|
21
21
|
},
|
|
@@ -215,12 +215,12 @@
|
|
|
215
215
|
"isbot": "3.8.0",
|
|
216
216
|
"react-helmet": "^6.1.0",
|
|
217
217
|
"react-is": "^18.3.1",
|
|
218
|
-
"@modern-js/plugin": "3.
|
|
219
|
-
"@modern-js/
|
|
220
|
-
"@modern-js/
|
|
221
|
-
"@modern-js/
|
|
222
|
-
"@modern-js/
|
|
223
|
-
"@modern-js/utils": "3.
|
|
218
|
+
"@modern-js/plugin-data-loader": "3.1.1",
|
|
219
|
+
"@modern-js/render": "3.1.1",
|
|
220
|
+
"@modern-js/plugin": "3.1.1",
|
|
221
|
+
"@modern-js/runtime-utils": "3.1.1",
|
|
222
|
+
"@modern-js/types": "3.1.1",
|
|
223
|
+
"@modern-js/utils": "3.1.1"
|
|
224
224
|
},
|
|
225
225
|
"peerDependencies": {
|
|
226
226
|
"react": ">=17.0.2",
|
|
@@ -229,7 +229,7 @@
|
|
|
229
229
|
"devDependencies": {
|
|
230
230
|
"@remix-run/web-fetch": "^4.1.3",
|
|
231
231
|
"@rsbuild/core": "2.0.0-beta.4",
|
|
232
|
-
"@rslib/core": "0.
|
|
232
|
+
"@rslib/core": "0.20.0",
|
|
233
233
|
"@testing-library/dom": "^10.4.1",
|
|
234
234
|
"@testing-library/react": "^16.3.2",
|
|
235
235
|
"@types/cookie": "0.6.0",
|
|
@@ -240,9 +240,9 @@
|
|
|
240
240
|
"react-dom": "^19.2.4",
|
|
241
241
|
"ts-node": "^10.9.2",
|
|
242
242
|
"typescript": "^5",
|
|
243
|
-
"@modern-js/app-tools": "3.
|
|
244
|
-
"@
|
|
245
|
-
"@
|
|
243
|
+
"@modern-js/app-tools": "3.1.1",
|
|
244
|
+
"@scripts/rstest-config": "2.66.0",
|
|
245
|
+
"@modern-js/rslib": "2.68.10"
|
|
246
246
|
},
|
|
247
247
|
"sideEffects": false,
|
|
248
248
|
"publishConfig": {
|
|
@@ -5,12 +5,6 @@ const commonConfig: ProjectConfig = {
|
|
|
5
5
|
setupFiles: ['@scripts/rstest-config/setup.ts'],
|
|
6
6
|
globals: true,
|
|
7
7
|
tools: {
|
|
8
|
-
rspack: {
|
|
9
|
-
optimization: {
|
|
10
|
-
// Disable tree shaking to avoid issues with rstest mocking '@modern-js/utils'.
|
|
11
|
-
providedExports: false,
|
|
12
|
-
},
|
|
13
|
-
},
|
|
14
8
|
swc: {
|
|
15
9
|
jsc: {
|
|
16
10
|
transform: {
|