@modern-js/runtime 2.31.2 → 2.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -0
- package/LICENSE +1 -1
- package/dist/cjs/document/Style.js +2 -2
- package/dist/cjs/router/runtime/plugin.node.js +15 -2
- package/dist/cjs/router/runtime/utils.js +6 -4
- package/dist/esm/document/Style.js +2 -2
- package/dist/esm/router/runtime/plugin.node.js +16 -3
- package/dist/esm/router/runtime/utils.js +6 -4
- package/dist/esm-node/document/Style.js +2 -2
- package/dist/esm-node/router/runtime/plugin.node.js +15 -2
- package/dist/esm-node/router/runtime/utils.js +6 -4
- package/dist/types/router/runtime/index.d.ts +2 -1
- package/dist/types/router/runtime/types.d.ts +12 -2
- package/dist/types/router/runtime/utils.d.ts +7 -3
- package/package.json +22 -22
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
# @modern-js/runtime
|
|
2
2
|
|
|
3
|
+
## 2.32.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- a030aff: feat: support loader context
|
|
8
|
+
feat: 支持 loader context
|
|
9
|
+
|
|
10
|
+
### Patch Changes
|
|
11
|
+
|
|
12
|
+
- e5a3fb4: fix: integration test, and export LoaderContext from utils
|
|
13
|
+
fix: 集成测试,然后导出 LoaderContext
|
|
14
|
+
- 6076166: fix: packaging errors found by publint
|
|
15
|
+
|
|
16
|
+
fix: 修复 publint 检测到的 packaging 问题
|
|
17
|
+
|
|
18
|
+
- 92591c6: fix: component Style render error content
|
|
19
|
+
fix: component Style 渲染了错误的内容
|
|
20
|
+
- 5255eba: feat: report time for server loader
|
|
21
|
+
feat: 上报 server loader 执行的时间
|
|
22
|
+
- Updated dependencies [e5a3fb4]
|
|
23
|
+
- Updated dependencies [6076166]
|
|
24
|
+
- Updated dependencies [a030aff]
|
|
25
|
+
- Updated dependencies [4323e68]
|
|
26
|
+
- Updated dependencies [3c91100]
|
|
27
|
+
- Updated dependencies [5255eba]
|
|
28
|
+
- @modern-js/utils@2.32.0
|
|
29
|
+
- @modern-js/plugin@2.32.0
|
|
30
|
+
- @modern-js/types@2.32.0
|
|
31
|
+
|
|
3
32
|
## 2.31.2
|
|
4
33
|
|
|
5
34
|
### Patch Changes
|
package/LICENSE
CHANGED
|
@@ -15,11 +15,11 @@ const _constants = require("./constants");
|
|
|
15
15
|
function Style(props) {
|
|
16
16
|
const { content, children } = props;
|
|
17
17
|
const contentStr = children || content;
|
|
18
|
-
const
|
|
18
|
+
const styleContent = encodeURIComponent(`${contentStr}`);
|
|
19
19
|
return /* @__PURE__ */ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
|
|
20
20
|
children: [
|
|
21
21
|
`${_constants.DOCUMENT_STYLE_PLACEHOLDER_START}`,
|
|
22
|
-
`${
|
|
22
|
+
`${styleContent}`,
|
|
23
23
|
`${_constants.DOCUMENT_STYLE_PLACEHOLDER_END}`
|
|
24
24
|
]
|
|
25
25
|
});
|
|
@@ -28,6 +28,9 @@ const _remixrouter = require("@modern-js/utils/runtime/remix-router");
|
|
|
28
28
|
const _router = require("@modern-js/utils/runtime-node/router");
|
|
29
29
|
const _hoistnonreactstatics = /* @__PURE__ */ _interop_require_default._(require("hoist-non-react-statics"));
|
|
30
30
|
const _router1 = require("@modern-js/utils/runtime/router");
|
|
31
|
+
const _runtimenode = require("@modern-js/utils/runtime-node");
|
|
32
|
+
const _time = require("@modern-js/utils/universal/time");
|
|
33
|
+
const _constants = require("@modern-js/utils/universal/constants");
|
|
31
34
|
const _core = require("../../core");
|
|
32
35
|
const _utils = require("./utils");
|
|
33
36
|
const _fetch = require("./fetch");
|
|
@@ -76,12 +79,16 @@ const routerPlugin = ({ basename = "", routesConfig, createRoutes }) => {
|
|
|
76
79
|
const { request, mode: ssrMode, nonce } = context.ssrContext;
|
|
77
80
|
const baseUrl = request.baseUrl;
|
|
78
81
|
const _basename = baseUrl === "/" ? (0, _utils.urlJoin)(baseUrl, basename) : baseUrl;
|
|
82
|
+
const { reporter, serverTiming } = context.ssrContext;
|
|
83
|
+
const requestContext = (0, _runtimenode.createRequestContext)();
|
|
84
|
+
requestContext.set(_runtimenode.reporterCtx, reporter);
|
|
79
85
|
let routes = createRoutes ? createRoutes() : (0, _router1.createRoutesFromElements)((0, _utils.renderRoutes)({
|
|
80
86
|
routesConfig,
|
|
81
87
|
ssrMode,
|
|
82
88
|
props: {
|
|
83
89
|
nonce
|
|
84
|
-
}
|
|
90
|
+
},
|
|
91
|
+
reporter
|
|
85
92
|
}));
|
|
86
93
|
const runner = api.useHookRunners();
|
|
87
94
|
routes = runner.modifyRoutes(routes);
|
|
@@ -89,7 +96,13 @@ const routerPlugin = ({ basename = "", routesConfig, createRoutes }) => {
|
|
|
89
96
|
basename: _basename
|
|
90
97
|
});
|
|
91
98
|
const remixRequest = createFetchRequest(request);
|
|
92
|
-
const
|
|
99
|
+
const end = (0, _time.time)();
|
|
100
|
+
const routerContext = await query(remixRequest, {
|
|
101
|
+
requestContext
|
|
102
|
+
});
|
|
103
|
+
const cost = end();
|
|
104
|
+
reporter.reportTiming(_constants.LOADER_REPORTER_NAME, cost);
|
|
105
|
+
serverTiming.addServeTiming(_constants.LOADER_REPORTER_NAME, cost);
|
|
93
106
|
if (routerContext instanceof Response) {
|
|
94
107
|
return routerContext;
|
|
95
108
|
}
|
|
@@ -40,7 +40,7 @@ const _remixrouter = require("@modern-js/utils/runtime/remix-router");
|
|
|
40
40
|
const _nestedroutes = require("@modern-js/utils/runtime/nested-routes");
|
|
41
41
|
const _DefaultNotFound = require("./DefaultNotFound");
|
|
42
42
|
const _DeferredDataScripts = /* @__PURE__ */ _interop_require_default._(require("./DeferredDataScripts"));
|
|
43
|
-
function getRouteComponents(routes, { globalApp, ssrMode, props }) {
|
|
43
|
+
function getRouteComponents(routes, { globalApp, ssrMode, props, reporter }) {
|
|
44
44
|
const Layout = ({ Component, ...props2 }) => {
|
|
45
45
|
const GlobalLayout = globalApp;
|
|
46
46
|
if (!GlobalLayout) {
|
|
@@ -58,7 +58,8 @@ function getRouteComponents(routes, { globalApp, ssrMode, props }) {
|
|
|
58
58
|
if (route.type === "nested") {
|
|
59
59
|
const routeElement = (0, _nestedroutes.renderNestedRoute)(route, {
|
|
60
60
|
DeferredDataComponent: ssrMode === "stream" ? _DeferredDataScripts.default : void 0,
|
|
61
|
-
props
|
|
61
|
+
props,
|
|
62
|
+
reporter
|
|
62
63
|
});
|
|
63
64
|
routeElements.push(routeElement);
|
|
64
65
|
} else {
|
|
@@ -77,7 +78,7 @@ function getRouteComponents(routes, { globalApp, ssrMode, props }) {
|
|
|
77
78
|
}, "*"));
|
|
78
79
|
return routeElements;
|
|
79
80
|
}
|
|
80
|
-
function renderRoutes({ routesConfig, props, ssrMode }) {
|
|
81
|
+
function renderRoutes({ routesConfig, props, ssrMode, reporter }) {
|
|
81
82
|
if (!routesConfig) {
|
|
82
83
|
return null;
|
|
83
84
|
}
|
|
@@ -88,7 +89,8 @@ function renderRoutes({ routesConfig, props, ssrMode }) {
|
|
|
88
89
|
const routeElements = getRouteComponents(routes, {
|
|
89
90
|
globalApp,
|
|
90
91
|
ssrMode,
|
|
91
|
-
props
|
|
92
|
+
props,
|
|
93
|
+
reporter
|
|
92
94
|
});
|
|
93
95
|
return routeElements;
|
|
94
96
|
}
|
|
@@ -3,11 +3,11 @@ import { DOCUMENT_STYLE_PLACEHOLDER_START, DOCUMENT_STYLE_PLACEHOLDER_END } from
|
|
|
3
3
|
export function Style(props) {
|
|
4
4
|
var content = props.content, children = props.children;
|
|
5
5
|
var contentStr = children || content;
|
|
6
|
-
var
|
|
6
|
+
var styleContent = encodeURIComponent("".concat(contentStr));
|
|
7
7
|
return /* @__PURE__ */ _jsxs(_Fragment, {
|
|
8
8
|
children: [
|
|
9
9
|
"".concat(DOCUMENT_STYLE_PLACEHOLDER_START),
|
|
10
|
-
"".concat(
|
|
10
|
+
"".concat(styleContent),
|
|
11
11
|
"".concat(DOCUMENT_STYLE_PLACEHOLDER_END)
|
|
12
12
|
]
|
|
13
13
|
});
|
|
@@ -10,6 +10,9 @@ import { createStaticHandler } from "@modern-js/utils/runtime/remix-router";
|
|
|
10
10
|
import { createStaticRouter, StaticRouterProvider } from "@modern-js/utils/runtime-node/router";
|
|
11
11
|
import hoistNonReactStatics from "hoist-non-react-statics";
|
|
12
12
|
import { createRoutesFromElements } from "@modern-js/utils/runtime/router";
|
|
13
|
+
import { createRequestContext, reporterCtx } from "@modern-js/utils/runtime-node";
|
|
14
|
+
import { time } from "@modern-js/utils/universal/time";
|
|
15
|
+
import { LOADER_REPORTER_NAME } from "@modern-js/utils/universal/constants";
|
|
13
16
|
import { RuntimeReactContext } from "../../core";
|
|
14
17
|
import { renderRoutes, urlJoin } from "./utils";
|
|
15
18
|
import { installGlobals } from "./fetch";
|
|
@@ -87,7 +90,7 @@ export var routerPlugin = function(param) {
|
|
|
87
90
|
init: function init(param2, next) {
|
|
88
91
|
var context = param2.context;
|
|
89
92
|
return _async_to_generator(function() {
|
|
90
|
-
var _context_ssrContext, request, ssrMode, nonce, baseUrl, _basename, routes, runner, query, remixRequest, routerContext, router;
|
|
93
|
+
var _context_ssrContext, request, ssrMode, nonce, baseUrl, _basename, _context_ssrContext1, reporter, serverTiming, requestContext, routes, runner, query, remixRequest, end, routerContext, cost, router;
|
|
91
94
|
return _ts_generator(this, function(_state) {
|
|
92
95
|
switch (_state.label) {
|
|
93
96
|
case 0:
|
|
@@ -102,12 +105,16 @@ export var routerPlugin = function(param) {
|
|
|
102
105
|
_context_ssrContext = context.ssrContext, request = _context_ssrContext.request, ssrMode = _context_ssrContext.mode, nonce = _context_ssrContext.nonce;
|
|
103
106
|
baseUrl = request.baseUrl;
|
|
104
107
|
_basename = baseUrl === "/" ? urlJoin(baseUrl, basename) : baseUrl;
|
|
108
|
+
_context_ssrContext1 = context.ssrContext, reporter = _context_ssrContext1.reporter, serverTiming = _context_ssrContext1.serverTiming;
|
|
109
|
+
requestContext = createRequestContext();
|
|
110
|
+
requestContext.set(reporterCtx, reporter);
|
|
105
111
|
routes = createRoutes ? createRoutes() : createRoutesFromElements(renderRoutes({
|
|
106
112
|
routesConfig: routesConfig,
|
|
107
113
|
ssrMode: ssrMode,
|
|
108
114
|
props: {
|
|
109
115
|
nonce: nonce
|
|
110
|
-
}
|
|
116
|
+
},
|
|
117
|
+
reporter: reporter
|
|
111
118
|
}));
|
|
112
119
|
runner = api.useHookRunners();
|
|
113
120
|
routes = runner.modifyRoutes(routes);
|
|
@@ -115,12 +122,18 @@ export var routerPlugin = function(param) {
|
|
|
115
122
|
basename: _basename
|
|
116
123
|
}).query;
|
|
117
124
|
remixRequest = createFetchRequest(request);
|
|
125
|
+
end = time();
|
|
118
126
|
return [
|
|
119
127
|
4,
|
|
120
|
-
query(remixRequest
|
|
128
|
+
query(remixRequest, {
|
|
129
|
+
requestContext: requestContext
|
|
130
|
+
})
|
|
121
131
|
];
|
|
122
132
|
case 1:
|
|
123
133
|
routerContext = _state.sent();
|
|
134
|
+
cost = end();
|
|
135
|
+
reporter.reportTiming(LOADER_REPORTER_NAME, cost);
|
|
136
|
+
serverTiming.addServeTiming(LOADER_REPORTER_NAME, cost);
|
|
124
137
|
if (_instanceof(routerContext, Response)) {
|
|
125
138
|
return [
|
|
126
139
|
2,
|
|
@@ -10,7 +10,7 @@ import { renderNestedRoute } from "@modern-js/utils/runtime/nested-routes";
|
|
|
10
10
|
import { DefaultNotFound } from "./DefaultNotFound";
|
|
11
11
|
import DeferredDataScripts from "./DeferredDataScripts";
|
|
12
12
|
export function getRouteComponents(routes, param) {
|
|
13
|
-
var globalApp = param.globalApp, ssrMode = param.ssrMode, props = param.props;
|
|
13
|
+
var globalApp = param.globalApp, ssrMode = param.ssrMode, props = param.props, reporter = param.reporter;
|
|
14
14
|
var Layout = function(_param) {
|
|
15
15
|
var Component = _param.Component, props2 = _object_without_properties(_param, [
|
|
16
16
|
"Component"
|
|
@@ -31,7 +31,8 @@ export function getRouteComponents(routes, param) {
|
|
|
31
31
|
if (route.type === "nested") {
|
|
32
32
|
var routeElement = renderNestedRoute(route, {
|
|
33
33
|
DeferredDataComponent: ssrMode === "stream" ? DeferredDataScripts : void 0,
|
|
34
|
-
props: props
|
|
34
|
+
props: props,
|
|
35
|
+
reporter: reporter
|
|
35
36
|
});
|
|
36
37
|
routeElements.push(routeElement);
|
|
37
38
|
} else {
|
|
@@ -65,7 +66,7 @@ export function getRouteComponents(routes, param) {
|
|
|
65
66
|
return routeElements;
|
|
66
67
|
}
|
|
67
68
|
export function renderRoutes(param) {
|
|
68
|
-
var routesConfig = param.routesConfig, props = param.props, ssrMode = param.ssrMode;
|
|
69
|
+
var routesConfig = param.routesConfig, props = param.props, ssrMode = param.ssrMode, reporter = param.reporter;
|
|
69
70
|
if (!routesConfig) {
|
|
70
71
|
return null;
|
|
71
72
|
}
|
|
@@ -76,7 +77,8 @@ export function renderRoutes(param) {
|
|
|
76
77
|
var routeElements = getRouteComponents(routes, {
|
|
77
78
|
globalApp: globalApp,
|
|
78
79
|
ssrMode: ssrMode,
|
|
79
|
-
props: props
|
|
80
|
+
props: props,
|
|
81
|
+
reporter: reporter
|
|
80
82
|
});
|
|
81
83
|
return routeElements;
|
|
82
84
|
}
|
|
@@ -3,11 +3,11 @@ import { DOCUMENT_STYLE_PLACEHOLDER_START, DOCUMENT_STYLE_PLACEHOLDER_END } from
|
|
|
3
3
|
export function Style(props) {
|
|
4
4
|
const { content, children } = props;
|
|
5
5
|
const contentStr = children || content;
|
|
6
|
-
const
|
|
6
|
+
const styleContent = encodeURIComponent(`${contentStr}`);
|
|
7
7
|
return /* @__PURE__ */ _jsxs(_Fragment, {
|
|
8
8
|
children: [
|
|
9
9
|
`${DOCUMENT_STYLE_PLACEHOLDER_START}`,
|
|
10
|
-
`${
|
|
10
|
+
`${styleContent}`,
|
|
11
11
|
`${DOCUMENT_STYLE_PLACEHOLDER_END}`
|
|
12
12
|
]
|
|
13
13
|
});
|
|
@@ -4,6 +4,9 @@ import { createStaticHandler } from "@modern-js/utils/runtime/remix-router";
|
|
|
4
4
|
import { createStaticRouter, StaticRouterProvider } from "@modern-js/utils/runtime-node/router";
|
|
5
5
|
import hoistNonReactStatics from "hoist-non-react-statics";
|
|
6
6
|
import { createRoutesFromElements } from "@modern-js/utils/runtime/router";
|
|
7
|
+
import { createRequestContext, reporterCtx } from "@modern-js/utils/runtime-node";
|
|
8
|
+
import { time } from "@modern-js/utils/universal/time";
|
|
9
|
+
import { LOADER_REPORTER_NAME } from "@modern-js/utils/universal/constants";
|
|
7
10
|
import { RuntimeReactContext } from "../../core";
|
|
8
11
|
import { renderRoutes, urlJoin } from "./utils";
|
|
9
12
|
import { installGlobals } from "./fetch";
|
|
@@ -52,12 +55,16 @@ export const routerPlugin = ({ basename = "", routesConfig, createRoutes }) => {
|
|
|
52
55
|
const { request, mode: ssrMode, nonce } = context.ssrContext;
|
|
53
56
|
const baseUrl = request.baseUrl;
|
|
54
57
|
const _basename = baseUrl === "/" ? urlJoin(baseUrl, basename) : baseUrl;
|
|
58
|
+
const { reporter, serverTiming } = context.ssrContext;
|
|
59
|
+
const requestContext = createRequestContext();
|
|
60
|
+
requestContext.set(reporterCtx, reporter);
|
|
55
61
|
let routes = createRoutes ? createRoutes() : createRoutesFromElements(renderRoutes({
|
|
56
62
|
routesConfig,
|
|
57
63
|
ssrMode,
|
|
58
64
|
props: {
|
|
59
65
|
nonce
|
|
60
|
-
}
|
|
66
|
+
},
|
|
67
|
+
reporter
|
|
61
68
|
}));
|
|
62
69
|
const runner = api.useHookRunners();
|
|
63
70
|
routes = runner.modifyRoutes(routes);
|
|
@@ -65,7 +72,13 @@ export const routerPlugin = ({ basename = "", routesConfig, createRoutes }) => {
|
|
|
65
72
|
basename: _basename
|
|
66
73
|
});
|
|
67
74
|
const remixRequest = createFetchRequest(request);
|
|
68
|
-
const
|
|
75
|
+
const end = time();
|
|
76
|
+
const routerContext = await query(remixRequest, {
|
|
77
|
+
requestContext
|
|
78
|
+
});
|
|
79
|
+
const cost = end();
|
|
80
|
+
reporter.reportTiming(LOADER_REPORTER_NAME, cost);
|
|
81
|
+
serverTiming.addServeTiming(LOADER_REPORTER_NAME, cost);
|
|
69
82
|
if (routerContext instanceof Response) {
|
|
70
83
|
return routerContext;
|
|
71
84
|
}
|
|
@@ -4,7 +4,7 @@ import { ErrorResponse } from "@modern-js/utils/runtime/remix-router";
|
|
|
4
4
|
import { renderNestedRoute } from "@modern-js/utils/runtime/nested-routes";
|
|
5
5
|
import { DefaultNotFound } from "./DefaultNotFound";
|
|
6
6
|
import DeferredDataScripts from "./DeferredDataScripts";
|
|
7
|
-
export function getRouteComponents(routes, { globalApp, ssrMode, props }) {
|
|
7
|
+
export function getRouteComponents(routes, { globalApp, ssrMode, props, reporter }) {
|
|
8
8
|
const Layout = ({ Component, ...props2 }) => {
|
|
9
9
|
const GlobalLayout = globalApp;
|
|
10
10
|
if (!GlobalLayout) {
|
|
@@ -22,7 +22,8 @@ export function getRouteComponents(routes, { globalApp, ssrMode, props }) {
|
|
|
22
22
|
if (route.type === "nested") {
|
|
23
23
|
const routeElement = renderNestedRoute(route, {
|
|
24
24
|
DeferredDataComponent: ssrMode === "stream" ? DeferredDataScripts : void 0,
|
|
25
|
-
props
|
|
25
|
+
props,
|
|
26
|
+
reporter
|
|
26
27
|
});
|
|
27
28
|
routeElements.push(routeElement);
|
|
28
29
|
} else {
|
|
@@ -41,7 +42,7 @@ export function getRouteComponents(routes, { globalApp, ssrMode, props }) {
|
|
|
41
42
|
}, "*"));
|
|
42
43
|
return routeElements;
|
|
43
44
|
}
|
|
44
|
-
export function renderRoutes({ routesConfig, props, ssrMode }) {
|
|
45
|
+
export function renderRoutes({ routesConfig, props, ssrMode, reporter }) {
|
|
45
46
|
if (!routesConfig) {
|
|
46
47
|
return null;
|
|
47
48
|
}
|
|
@@ -52,7 +53,8 @@ export function renderRoutes({ routesConfig, props, ssrMode }) {
|
|
|
52
53
|
const routeElements = getRouteComponents(routes, {
|
|
53
54
|
globalApp,
|
|
54
55
|
ssrMode,
|
|
55
|
-
props
|
|
56
|
+
props,
|
|
57
|
+
reporter
|
|
56
58
|
});
|
|
57
59
|
return routeElements;
|
|
58
60
|
}
|
|
@@ -8,5 +8,6 @@ export * from './withRouter';
|
|
|
8
8
|
export { Link, NavLink } from './PrefetchLink';
|
|
9
9
|
export type { LinkProps, NavLinkProps } from './PrefetchLink';
|
|
10
10
|
export declare const useRouteLoaderData: typeof useRouteData;
|
|
11
|
-
export type {
|
|
11
|
+
export type { LoaderFunction, LoaderFunctionArgs } from './types';
|
|
12
|
+
export type { FormEncType, FormMethod, GetScrollRestorationKeyFunction, ParamKeyValuePair, SubmitOptions, URLSearchParamsInit, FetcherWithComponents, BrowserRouterProps, HashRouterProps, HistoryRouterProps, FormProps, ScrollRestorationProps, SubmitFunction, ActionFunction, ActionFunctionArgs, AwaitProps, unstable_Blocker, unstable_BlockerFunction, DataRouteMatch, DataRouteObject, Fetcher, Hash, IndexRouteObject, IndexRouteProps, JsonFunction, LayoutRouteProps, Location, MemoryRouterProps, NavigateFunction, NavigateOptions, NavigateProps, Navigation, Navigator, NonIndexRouteObject, OutletProps, Params, ParamParseKey, Path, PathMatch, Pathname, PathPattern, PathRouteProps, RedirectFunction, RelativeRoutingType, RouteMatch, RouteObject, RouteProps, RouterProps, RouterProviderProps, RoutesProps, Search, ShouldRevalidateFunction, To } from '@modern-js/utils/runtime/router';
|
|
12
13
|
export { createBrowserRouter, createHashRouter, createMemoryRouter, RouterProvider, BrowserRouter, HashRouter, MemoryRouter, Router, Await, Form, Navigate, Outlet, Route, Routes, ScrollRestoration, useActionData, useAsyncError, useAsyncValue, useBeforeUnload, useFetcher, useFetchers, useFormAction, useHref, useInRouterContext, useLinkClickHandler, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRoutes, useSearchParams, useSubmit, createRoutesFromChildren, createRoutesFromElements, createSearchParams, generatePath, isRouteErrorResponse, matchPath, matchRoutes, renderMatches, resolvePath, createPath, unstable_useBlocker, unstable_usePrompt, defer, json, redirect } from '@modern-js/utils/runtime/router';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import type { RouteProps, RouteObject } from '@modern-js/utils/runtime/router';
|
|
2
|
+
import type { RouteProps, RouteObject, Params } from '@modern-js/utils/runtime/router';
|
|
3
3
|
import { PageRoute, NestedRoute } from '@modern-js/types';
|
|
4
|
+
import type { RequestContext } from '@modern-js/utils/runtime-node';
|
|
4
5
|
declare global {
|
|
5
6
|
interface Window {
|
|
6
7
|
_SERVER_DATA?: {
|
|
@@ -48,4 +49,13 @@ export interface RouteAssets {
|
|
|
48
49
|
chunkIds?: (string | number)[];
|
|
49
50
|
assets?: string[];
|
|
50
51
|
};
|
|
51
|
-
}
|
|
52
|
+
}
|
|
53
|
+
interface DataFunctionArgs<D = any> {
|
|
54
|
+
request: Request;
|
|
55
|
+
params: Params;
|
|
56
|
+
context?: D;
|
|
57
|
+
}
|
|
58
|
+
export type LoaderFunctionArgs = DataFunctionArgs<RequestContext>;
|
|
59
|
+
declare type DataFunctionValue = Response | NonNullable<unknown> | null;
|
|
60
|
+
export type LoaderFunction = (args: LoaderFunctionArgs) => Promise<DataFunctionValue> | DataFunctionValue;
|
|
61
|
+
export {};
|
|
@@ -1,24 +1,28 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { Reporter, NestedRoute, PageRoute, SSRMode } from '@modern-js/types';
|
|
3
3
|
import { type StaticHandlerContext, type Router } from '@modern-js/utils/runtime/remix-router';
|
|
4
4
|
import { RouterConfig } from './types';
|
|
5
5
|
export declare function getRouteComponents(routes: (NestedRoute | PageRoute)[], {
|
|
6
6
|
globalApp,
|
|
7
7
|
ssrMode,
|
|
8
|
-
props
|
|
8
|
+
props,
|
|
9
|
+
reporter
|
|
9
10
|
}: {
|
|
10
11
|
globalApp?: React.ComponentType<any>;
|
|
11
12
|
ssrMode?: SSRMode;
|
|
12
13
|
props?: Record<string, any>;
|
|
14
|
+
reporter?: Reporter;
|
|
13
15
|
}): React.ReactElement<any, string | React.JSXElementConstructor<any>>[];
|
|
14
16
|
export declare function renderRoutes({
|
|
15
17
|
routesConfig,
|
|
16
18
|
props,
|
|
17
|
-
ssrMode
|
|
19
|
+
ssrMode,
|
|
20
|
+
reporter
|
|
18
21
|
}: {
|
|
19
22
|
routesConfig: RouterConfig['routesConfig'];
|
|
20
23
|
props?: Record<string, any>;
|
|
21
24
|
ssrMode?: SSRMode;
|
|
25
|
+
reporter?: Reporter;
|
|
22
26
|
}): React.ReactElement<any, string | React.JSXElementConstructor<any>>[] | null;
|
|
23
27
|
export declare function getLocation(serverContext: any): string;
|
|
24
28
|
export declare const urlJoin: (...parts: string[]) => string;
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"modern",
|
|
16
16
|
"modern.js"
|
|
17
17
|
],
|
|
18
|
-
"version": "2.
|
|
18
|
+
"version": "2.32.0",
|
|
19
19
|
"engines": {
|
|
20
20
|
"node": ">=14.17.6"
|
|
21
21
|
},
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"module": "./dist/esm/index.js",
|
|
26
26
|
"exports": {
|
|
27
27
|
".": {
|
|
28
|
-
"jsnext:source": "./src/index.ts",
|
|
29
28
|
"types": "./dist/types/index.d.ts",
|
|
29
|
+
"jsnext:source": "./src/index.ts",
|
|
30
30
|
"default": "./dist/esm/index.js"
|
|
31
31
|
},
|
|
32
32
|
"./types": "./types/index.d.ts",
|
|
@@ -34,68 +34,68 @@
|
|
|
34
34
|
"./types/router": "./types/router.d.ts",
|
|
35
35
|
"./types/model": "./types/model.d.ts",
|
|
36
36
|
"./loadable": {
|
|
37
|
-
"jsnext:source": "./src/exports/loadable.ts",
|
|
38
37
|
"types": "./dist/types/exports/loadable.d.ts",
|
|
38
|
+
"jsnext:source": "./src/exports/loadable.ts",
|
|
39
39
|
"default": "./dist/esm/exports/loadable.js"
|
|
40
40
|
},
|
|
41
41
|
"./head": {
|
|
42
|
-
"jsnext:source": "./src/exports/head.ts",
|
|
43
42
|
"types": "./dist/types/exports/head.d.ts",
|
|
43
|
+
"jsnext:source": "./src/exports/head.ts",
|
|
44
44
|
"default": "./dist/esm/exports/head.js"
|
|
45
45
|
},
|
|
46
46
|
"./styled": {
|
|
47
|
-
"jsnext:source": "./src/exports/styled.ts",
|
|
48
47
|
"types": "./dist/types/exports/styled.d.ts",
|
|
48
|
+
"jsnext:source": "./src/exports/styled.ts",
|
|
49
49
|
"default": "./dist/esm/exports/styled.js"
|
|
50
50
|
},
|
|
51
51
|
"./server": {
|
|
52
|
+
"types": "./dist/types/exports/server.d.ts",
|
|
52
53
|
"jsnext:source": "./src/exports/server.ts",
|
|
53
54
|
"node": "./dist/cjs/exports/server.js",
|
|
54
|
-
"types": "./dist/types/exports/server.d.ts",
|
|
55
55
|
"default": "./dist/esm/exports/server.js"
|
|
56
56
|
},
|
|
57
57
|
"./document": {
|
|
58
|
+
"types": "./dist/types/document/index.d.ts",
|
|
58
59
|
"jsnext:source": "./src/document/index.ts",
|
|
59
60
|
"node": "./dist/cjs/document/index.js",
|
|
60
|
-
"types": "./dist/types/document/index.d.ts",
|
|
61
61
|
"default": "./dist/esm/document/index.js"
|
|
62
62
|
},
|
|
63
63
|
"./document/cli": {
|
|
64
|
+
"types": "./dist/types/document/index.d.ts",
|
|
64
65
|
"jsnext:source": "./src/document/cli/index.ts",
|
|
65
66
|
"node": "./dist/cjs/document/cli/index.js",
|
|
66
|
-
"types": "./dist/types/document/index.d.ts",
|
|
67
67
|
"default": "./dist/esm/document/cli/index.js"
|
|
68
68
|
},
|
|
69
69
|
"./ssr": {
|
|
70
|
+
"types": "./dist/types/ssr/index.d.ts",
|
|
70
71
|
"jsnext:source": "./src/ssr/index.ts",
|
|
71
72
|
"node": "./dist/esm/ssr/index.node.js",
|
|
72
73
|
"worker": "./dist/esm/ssr/index.node.js",
|
|
73
|
-
"types": "./dist/types/ssr/index.d.ts",
|
|
74
74
|
"default": "./dist/esm/ssr/index.js"
|
|
75
75
|
},
|
|
76
76
|
"./model": {
|
|
77
|
-
"jsnext:source": "./src/state/index.ts",
|
|
78
77
|
"types": "./types/model.d.ts",
|
|
78
|
+
"jsnext:source": "./src/state/index.ts",
|
|
79
79
|
"default": "./dist/esm/state/index.js"
|
|
80
80
|
},
|
|
81
81
|
"./cli": {
|
|
82
|
-
"jsnext:source": "./src/cli/index.ts",
|
|
83
82
|
"types": "./dist/types/cli/index.d.ts",
|
|
83
|
+
"jsnext:source": "./src/cli/index.ts",
|
|
84
84
|
"default": "./dist/cjs/cli/index.js"
|
|
85
85
|
},
|
|
86
86
|
"./router": {
|
|
87
|
-
"jsnext:source": "./src/router/index.ts",
|
|
88
87
|
"types": "./dist/types/router/index.d.ts",
|
|
88
|
+
"jsnext:source": "./src/router/index.ts",
|
|
89
89
|
"default": "./dist/esm/router/index.js"
|
|
90
90
|
},
|
|
91
91
|
"./router/server": {
|
|
92
|
-
"jsnext:source": "./src/router/runtime/server.ts",
|
|
93
92
|
"types": "./dist/types/router/runtime/server.d.ts",
|
|
93
|
+
"jsnext:source": "./src/router/runtime/server.ts",
|
|
94
94
|
"default": "./dist/esm/router/runtime/server.js"
|
|
95
95
|
},
|
|
96
96
|
"./loadable-bundler-plugin": {
|
|
97
|
-
"jsnext:source": "./src/ssr/cli/loadable-bundler-plugin.ts",
|
|
98
97
|
"types": "./dist/types/ssr/cli/loadable-bundler-plugin.d.ts",
|
|
98
|
+
"jsnext:source": "./src/ssr/cli/loadable-bundler-plugin.ts",
|
|
99
99
|
"default": "./dist/cjs/ssr/cli/loadable-bundler-plugin.js"
|
|
100
100
|
}
|
|
101
101
|
},
|
|
@@ -173,9 +173,9 @@
|
|
|
173
173
|
"redux-logger": "^3.0.6",
|
|
174
174
|
"styled-components": "^5.3.1",
|
|
175
175
|
"@swc/helpers": "0.5.1",
|
|
176
|
-
"@modern-js/plugin": "2.
|
|
177
|
-
"@modern-js/types": "2.
|
|
178
|
-
"@modern-js/utils": "2.
|
|
176
|
+
"@modern-js/plugin": "2.32.0",
|
|
177
|
+
"@modern-js/types": "2.32.0",
|
|
178
|
+
"@modern-js/utils": "2.32.0"
|
|
179
179
|
},
|
|
180
180
|
"peerDependencies": {
|
|
181
181
|
"react": ">=17",
|
|
@@ -196,11 +196,11 @@
|
|
|
196
196
|
"ts-jest": "^29.1.0",
|
|
197
197
|
"typescript": "^5",
|
|
198
198
|
"webpack": "^5.88.1",
|
|
199
|
-
"@modern-js/app-tools": "2.
|
|
200
|
-
"@modern-js/core": "2.
|
|
201
|
-
"@modern-js/server-core": "2.
|
|
202
|
-
"@scripts/
|
|
203
|
-
"@scripts/
|
|
199
|
+
"@modern-js/app-tools": "2.32.0",
|
|
200
|
+
"@modern-js/core": "2.32.0",
|
|
201
|
+
"@modern-js/server-core": "2.32.0",
|
|
202
|
+
"@scripts/jest-config": "2.32.0",
|
|
203
|
+
"@scripts/build": "2.32.0"
|
|
204
204
|
},
|
|
205
205
|
"sideEffects": false,
|
|
206
206
|
"publishConfig": {
|