@modern-js/plugin-data-loader 2.65.1 → 2.65.3
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/runtime/index.js +61 -52
- package/dist/esm/runtime/index.js +109 -94
- package/dist/esm-node/runtime/index.js +61 -52
- package/dist/types/runtime/index.d.ts +2 -12
- package/package.json +8 -8
|
@@ -25,9 +25,11 @@ __export(runtime_exports, {
|
|
|
25
25
|
module.exports = __toCommonJS(runtime_exports);
|
|
26
26
|
var import_browser = require("@modern-js/runtime-utils/browser");
|
|
27
27
|
var import_node = require("@modern-js/runtime-utils/node");
|
|
28
|
+
var import_node2 = require("@modern-js/runtime-utils/node");
|
|
28
29
|
var import_remix_router = require("@modern-js/runtime-utils/remix-router");
|
|
29
30
|
var import_server = require("@modern-js/runtime-utils/server");
|
|
30
31
|
var import_time = require("@modern-js/runtime-utils/time");
|
|
32
|
+
var import_request = require("@modern-js/runtime-utils/universal/request");
|
|
31
33
|
var import_lodash = require("@modern-js/utils/lodash");
|
|
32
34
|
var import_constants = require("@modern-js/utils/universal/constants");
|
|
33
35
|
var import_constants2 = require("../common/constants");
|
|
@@ -68,63 +70,70 @@ const handleRequest = async ({ request, serverRoutes, routes: routesConfig, cont
|
|
|
68
70
|
}
|
|
69
71
|
const basename = entry.urlPath;
|
|
70
72
|
const end = (0, import_time.time)();
|
|
71
|
-
const { reporter, loaderContext } = context;
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
routeId,
|
|
82
|
-
requestContext
|
|
73
|
+
const { reporter, loaderContext, monitors } = context;
|
|
74
|
+
const headersData = (0, import_request.parseHeaders)(request);
|
|
75
|
+
return import_node2.storage.run({
|
|
76
|
+
headers: headersData,
|
|
77
|
+
monitors,
|
|
78
|
+
request
|
|
79
|
+
}, async () => {
|
|
80
|
+
const routes = (0, import_browser.transformNestedRoutes)(routesConfig);
|
|
81
|
+
const { queryRoute } = (0, import_remix_router.createStaticHandler)(routes, {
|
|
82
|
+
basename
|
|
83
83
|
});
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
84
|
+
const requestContext = (0, import_node.createRequestContext)(loaderContext);
|
|
85
|
+
requestContext.set(import_node.reporterCtx, reporter);
|
|
86
|
+
let response;
|
|
87
|
+
try {
|
|
88
|
+
response = await queryRoute(request, {
|
|
89
|
+
routeId,
|
|
90
|
+
requestContext
|
|
91
|
+
});
|
|
92
|
+
if (isResponse(response) && isRedirectResponse(response.status)) {
|
|
93
|
+
response = convertModernRedirectResponse(response.headers, basename);
|
|
94
|
+
} else if ((0, import_lodash.isPlainObject)(response) && import_remix_router.UNSAFE_DEFERRED_SYMBOL in response) {
|
|
95
|
+
const deferredData = response[import_remix_router.UNSAFE_DEFERRED_SYMBOL];
|
|
96
|
+
const body = (0, import_response.createDeferredReadableStream)(deferredData, request.signal);
|
|
97
|
+
const init = deferredData.init || {};
|
|
98
|
+
if (init.status && isRedirectResponse(init.status)) {
|
|
99
|
+
if (!init.headers) {
|
|
100
|
+
throw new Error("redirect response includes no headers");
|
|
101
|
+
}
|
|
102
|
+
response = convertModernRedirectResponse(new Headers(init.headers), basename);
|
|
103
|
+
} else {
|
|
104
|
+
const headers = new Headers(init.headers);
|
|
105
|
+
headers.set("Content-Type", `${import_constants2.CONTENT_TYPE_DEFERRED}; charset=UTF-8`);
|
|
106
|
+
init.headers = headers;
|
|
107
|
+
response = new Response(body, init);
|
|
93
108
|
}
|
|
94
|
-
response = convertModernRedirectResponse(new Headers(init.headers), basename);
|
|
95
109
|
} else {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
110
|
+
response = isResponse(response) ? response : new Response(JSON.stringify(response), {
|
|
111
|
+
headers: {
|
|
112
|
+
"Content-Type": "application/json; charset=utf-8"
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
const cost = end();
|
|
117
|
+
response.headers.set("X-Modernjs-Response", "yes");
|
|
118
|
+
onTiming === null || onTiming === void 0 ? void 0 : onTiming(`${import_constants.LOADER_REPORTER_NAME}-navigation`, cost);
|
|
119
|
+
} catch (error) {
|
|
120
|
+
if (isResponse(error)) {
|
|
121
|
+
error.headers.set("X-Modernjs-Catch", "yes");
|
|
122
|
+
response = error;
|
|
123
|
+
} else if ((0, import_remix_router.isRouteErrorResponse)(error)) {
|
|
124
|
+
response = (0, import_errors.errorResponseToJson)(error);
|
|
125
|
+
} else {
|
|
126
|
+
const errorInstance = error instanceof Error || error instanceof DOMException ? error : new Error("Unexpected Server Error");
|
|
127
|
+
response = (0, import_remix_router.json)((0, import_errors.serializeError)(errorInstance), {
|
|
128
|
+
status: 500,
|
|
129
|
+
headers: {
|
|
130
|
+
"X-Modernjs-Error": "yes"
|
|
131
|
+
}
|
|
132
|
+
});
|
|
100
133
|
}
|
|
101
|
-
} else {
|
|
102
|
-
response = isResponse(response) ? response : new Response(JSON.stringify(response), {
|
|
103
|
-
headers: {
|
|
104
|
-
"Content-Type": "application/json; charset=utf-8"
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
const cost = end();
|
|
109
|
-
response.headers.set("X-Modernjs-Response", "yes");
|
|
110
|
-
onTiming === null || onTiming === void 0 ? void 0 : onTiming(`${import_constants.LOADER_REPORTER_NAME}-navigation`, cost);
|
|
111
|
-
} catch (error) {
|
|
112
|
-
if (isResponse(error)) {
|
|
113
|
-
error.headers.set("X-Modernjs-Catch", "yes");
|
|
114
|
-
response = error;
|
|
115
|
-
} else if ((0, import_remix_router.isRouteErrorResponse)(error)) {
|
|
116
|
-
response = (0, import_errors.errorResponseToJson)(error);
|
|
117
|
-
} else {
|
|
118
|
-
const errorInstance = error instanceof Error || error instanceof DOMException ? error : new Error("Unexpected Server Error");
|
|
119
|
-
response = (0, import_remix_router.json)((0, import_errors.serializeError)(errorInstance), {
|
|
120
|
-
status: 500,
|
|
121
|
-
headers: {
|
|
122
|
-
"X-Modernjs-Error": "yes"
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
134
|
}
|
|
126
|
-
|
|
127
|
-
|
|
135
|
+
return response;
|
|
136
|
+
});
|
|
128
137
|
};
|
|
129
138
|
// Annotate the CommonJS export names for ESM import in node:
|
|
130
139
|
0 && (module.exports = {
|
|
@@ -4,9 +4,11 @@ import { _ as _type_of } from "@swc/helpers/_/_type_of";
|
|
|
4
4
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
5
5
|
import { transformNestedRoutes } from "@modern-js/runtime-utils/browser";
|
|
6
6
|
import { createRequestContext, reporterCtx } from "@modern-js/runtime-utils/node";
|
|
7
|
+
import { storage } from "@modern-js/runtime-utils/node";
|
|
7
8
|
import { UNSAFE_DEFERRED_SYMBOL as DEFERRED_SYMBOL, createStaticHandler, isRouteErrorResponse, json } from "@modern-js/runtime-utils/remix-router";
|
|
8
9
|
import { matchEntry } from "@modern-js/runtime-utils/server";
|
|
9
10
|
import { time } from "@modern-js/runtime-utils/time";
|
|
11
|
+
import { parseHeaders } from "@modern-js/runtime-utils/universal/request";
|
|
10
12
|
import { isPlainObject } from "@modern-js/utils/lodash";
|
|
11
13
|
import { LOADER_REPORTER_NAME } from "@modern-js/utils/universal/constants";
|
|
12
14
|
import { CONTENT_TYPE_DEFERRED, LOADER_ID_PARAM } from "../common/constants";
|
|
@@ -40,102 +42,115 @@ function convertModernRedirectResponse(headers, basename) {
|
|
|
40
42
|
}
|
|
41
43
|
var handleRequest = function() {
|
|
42
44
|
var _ref = _async_to_generator(function(param) {
|
|
43
|
-
var request, serverRoutes, routesConfig, context, onTiming, url, routeId, entry, basename, end, reporter, loaderContext,
|
|
45
|
+
var request, serverRoutes, routesConfig, context, onTiming, url, routeId, entry, basename, end, reporter, loaderContext, monitors, headersData;
|
|
44
46
|
return _ts_generator(this, function(_state) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
2
|
|
54
|
-
];
|
|
55
|
-
}
|
|
56
|
-
basename = entry.urlPath;
|
|
57
|
-
end = time();
|
|
58
|
-
reporter = context.reporter, loaderContext = context.loaderContext;
|
|
59
|
-
routes = transformNestedRoutes(routesConfig, reporter);
|
|
60
|
-
queryRoute = createStaticHandler(routes, {
|
|
61
|
-
basename
|
|
62
|
-
}).queryRoute;
|
|
63
|
-
requestContext = createRequestContext(loaderContext);
|
|
64
|
-
requestContext.set(reporterCtx, reporter);
|
|
65
|
-
_state.label = 1;
|
|
66
|
-
case 1:
|
|
67
|
-
_state.trys.push([
|
|
68
|
-
1,
|
|
69
|
-
3,
|
|
70
|
-
,
|
|
71
|
-
4
|
|
72
|
-
]);
|
|
73
|
-
return [
|
|
74
|
-
4,
|
|
75
|
-
queryRoute(request, {
|
|
76
|
-
routeId,
|
|
77
|
-
requestContext
|
|
78
|
-
})
|
|
79
|
-
];
|
|
80
|
-
case 2:
|
|
81
|
-
response = _state.sent();
|
|
82
|
-
if (isResponse(response) && isRedirectResponse(response.status)) {
|
|
83
|
-
response = convertModernRedirectResponse(response.headers, basename);
|
|
84
|
-
} else if (isPlainObject(response) && DEFERRED_SYMBOL in response) {
|
|
85
|
-
deferredData = response[DEFERRED_SYMBOL];
|
|
86
|
-
body = createDeferredReadableStream(deferredData, request.signal);
|
|
87
|
-
init = deferredData.init || {};
|
|
88
|
-
if (init.status && isRedirectResponse(init.status)) {
|
|
89
|
-
if (!init.headers) {
|
|
90
|
-
throw new Error("redirect response includes no headers");
|
|
91
|
-
}
|
|
92
|
-
response = convertModernRedirectResponse(new Headers(init.headers), basename);
|
|
93
|
-
} else {
|
|
94
|
-
headers = new Headers(init.headers);
|
|
95
|
-
headers.set("Content-Type", "".concat(CONTENT_TYPE_DEFERRED, "; charset=UTF-8"));
|
|
96
|
-
init.headers = headers;
|
|
97
|
-
response = new Response(body, init);
|
|
98
|
-
}
|
|
99
|
-
} else {
|
|
100
|
-
response = isResponse(response) ? response : new Response(JSON.stringify(response), {
|
|
101
|
-
headers: {
|
|
102
|
-
"Content-Type": "application/json; charset=utf-8"
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
cost = end();
|
|
107
|
-
response.headers.set("X-Modernjs-Response", "yes");
|
|
108
|
-
onTiming === null || onTiming === void 0 ? void 0 : onTiming("".concat(LOADER_REPORTER_NAME, "-navigation"), cost);
|
|
109
|
-
return [
|
|
110
|
-
3,
|
|
111
|
-
4
|
|
112
|
-
];
|
|
113
|
-
case 3:
|
|
114
|
-
error = _state.sent();
|
|
115
|
-
if (isResponse(error)) {
|
|
116
|
-
error.headers.set("X-Modernjs-Catch", "yes");
|
|
117
|
-
response = error;
|
|
118
|
-
} else if (isRouteErrorResponse(error)) {
|
|
119
|
-
response = errorResponseToJson(error);
|
|
120
|
-
} else {
|
|
121
|
-
errorInstance = _instanceof(error, Error) || _instanceof(error, DOMException) ? error : new Error("Unexpected Server Error");
|
|
122
|
-
response = json(serializeError(errorInstance), {
|
|
123
|
-
status: 500,
|
|
124
|
-
headers: {
|
|
125
|
-
"X-Modernjs-Error": "yes"
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
return [
|
|
130
|
-
3,
|
|
131
|
-
4
|
|
132
|
-
];
|
|
133
|
-
case 4:
|
|
134
|
-
return [
|
|
135
|
-
2,
|
|
136
|
-
response
|
|
137
|
-
];
|
|
47
|
+
request = param.request, serverRoutes = param.serverRoutes, routesConfig = param.routes, context = param.context, onTiming = param.onTiming;
|
|
48
|
+
url = new URL(request.url);
|
|
49
|
+
routeId = url.searchParams.get(LOADER_ID_PARAM);
|
|
50
|
+
entry = matchEntry(url.pathname, serverRoutes);
|
|
51
|
+
if (!routeId || !entry) {
|
|
52
|
+
return [
|
|
53
|
+
2
|
|
54
|
+
];
|
|
138
55
|
}
|
|
56
|
+
basename = entry.urlPath;
|
|
57
|
+
end = time();
|
|
58
|
+
reporter = context.reporter, loaderContext = context.loaderContext, monitors = context.monitors;
|
|
59
|
+
headersData = parseHeaders(request);
|
|
60
|
+
return [
|
|
61
|
+
2,
|
|
62
|
+
storage.run({
|
|
63
|
+
headers: headersData,
|
|
64
|
+
monitors,
|
|
65
|
+
request
|
|
66
|
+
}, /* @__PURE__ */ _async_to_generator(function() {
|
|
67
|
+
var routes, queryRoute, requestContext, response, deferredData, body, init, headers, cost, error, errorInstance;
|
|
68
|
+
return _ts_generator(this, function(_state2) {
|
|
69
|
+
switch (_state2.label) {
|
|
70
|
+
case 0:
|
|
71
|
+
routes = transformNestedRoutes(routesConfig);
|
|
72
|
+
queryRoute = createStaticHandler(routes, {
|
|
73
|
+
basename
|
|
74
|
+
}).queryRoute;
|
|
75
|
+
requestContext = createRequestContext(loaderContext);
|
|
76
|
+
requestContext.set(reporterCtx, reporter);
|
|
77
|
+
_state2.label = 1;
|
|
78
|
+
case 1:
|
|
79
|
+
_state2.trys.push([
|
|
80
|
+
1,
|
|
81
|
+
3,
|
|
82
|
+
,
|
|
83
|
+
4
|
|
84
|
+
]);
|
|
85
|
+
return [
|
|
86
|
+
4,
|
|
87
|
+
queryRoute(request, {
|
|
88
|
+
routeId,
|
|
89
|
+
requestContext
|
|
90
|
+
})
|
|
91
|
+
];
|
|
92
|
+
case 2:
|
|
93
|
+
response = _state2.sent();
|
|
94
|
+
if (isResponse(response) && isRedirectResponse(response.status)) {
|
|
95
|
+
response = convertModernRedirectResponse(response.headers, basename);
|
|
96
|
+
} else if (isPlainObject(response) && DEFERRED_SYMBOL in response) {
|
|
97
|
+
deferredData = response[DEFERRED_SYMBOL];
|
|
98
|
+
body = createDeferredReadableStream(deferredData, request.signal);
|
|
99
|
+
init = deferredData.init || {};
|
|
100
|
+
if (init.status && isRedirectResponse(init.status)) {
|
|
101
|
+
if (!init.headers) {
|
|
102
|
+
throw new Error("redirect response includes no headers");
|
|
103
|
+
}
|
|
104
|
+
response = convertModernRedirectResponse(new Headers(init.headers), basename);
|
|
105
|
+
} else {
|
|
106
|
+
headers = new Headers(init.headers);
|
|
107
|
+
headers.set("Content-Type", "".concat(CONTENT_TYPE_DEFERRED, "; charset=UTF-8"));
|
|
108
|
+
init.headers = headers;
|
|
109
|
+
response = new Response(body, init);
|
|
110
|
+
}
|
|
111
|
+
} else {
|
|
112
|
+
response = isResponse(response) ? response : new Response(JSON.stringify(response), {
|
|
113
|
+
headers: {
|
|
114
|
+
"Content-Type": "application/json; charset=utf-8"
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
cost = end();
|
|
119
|
+
response.headers.set("X-Modernjs-Response", "yes");
|
|
120
|
+
onTiming === null || onTiming === void 0 ? void 0 : onTiming("".concat(LOADER_REPORTER_NAME, "-navigation"), cost);
|
|
121
|
+
return [
|
|
122
|
+
3,
|
|
123
|
+
4
|
|
124
|
+
];
|
|
125
|
+
case 3:
|
|
126
|
+
error = _state2.sent();
|
|
127
|
+
if (isResponse(error)) {
|
|
128
|
+
error.headers.set("X-Modernjs-Catch", "yes");
|
|
129
|
+
response = error;
|
|
130
|
+
} else if (isRouteErrorResponse(error)) {
|
|
131
|
+
response = errorResponseToJson(error);
|
|
132
|
+
} else {
|
|
133
|
+
errorInstance = _instanceof(error, Error) || _instanceof(error, DOMException) ? error : new Error("Unexpected Server Error");
|
|
134
|
+
response = json(serializeError(errorInstance), {
|
|
135
|
+
status: 500,
|
|
136
|
+
headers: {
|
|
137
|
+
"X-Modernjs-Error": "yes"
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
return [
|
|
142
|
+
3,
|
|
143
|
+
4
|
|
144
|
+
];
|
|
145
|
+
case 4:
|
|
146
|
+
return [
|
|
147
|
+
2,
|
|
148
|
+
response
|
|
149
|
+
];
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
}))
|
|
153
|
+
];
|
|
139
154
|
});
|
|
140
155
|
});
|
|
141
156
|
return function handleRequest2(_) {
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { transformNestedRoutes } from "@modern-js/runtime-utils/browser";
|
|
2
2
|
import { createRequestContext, reporterCtx } from "@modern-js/runtime-utils/node";
|
|
3
|
+
import { storage } from "@modern-js/runtime-utils/node";
|
|
3
4
|
import { UNSAFE_DEFERRED_SYMBOL as DEFERRED_SYMBOL, createStaticHandler, isRouteErrorResponse, json } from "@modern-js/runtime-utils/remix-router";
|
|
4
5
|
import { matchEntry } from "@modern-js/runtime-utils/server";
|
|
5
6
|
import { time } from "@modern-js/runtime-utils/time";
|
|
7
|
+
import { parseHeaders } from "@modern-js/runtime-utils/universal/request";
|
|
6
8
|
import { isPlainObject } from "@modern-js/utils/lodash";
|
|
7
9
|
import { LOADER_REPORTER_NAME } from "@modern-js/utils/universal/constants";
|
|
8
10
|
import { CONTENT_TYPE_DEFERRED, LOADER_ID_PARAM } from "../common/constants";
|
|
@@ -43,63 +45,70 @@ const handleRequest = async ({ request, serverRoutes, routes: routesConfig, cont
|
|
|
43
45
|
}
|
|
44
46
|
const basename = entry.urlPath;
|
|
45
47
|
const end = time();
|
|
46
|
-
const { reporter, loaderContext } = context;
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
routeId,
|
|
57
|
-
requestContext
|
|
48
|
+
const { reporter, loaderContext, monitors } = context;
|
|
49
|
+
const headersData = parseHeaders(request);
|
|
50
|
+
return storage.run({
|
|
51
|
+
headers: headersData,
|
|
52
|
+
monitors,
|
|
53
|
+
request
|
|
54
|
+
}, async () => {
|
|
55
|
+
const routes = transformNestedRoutes(routesConfig);
|
|
56
|
+
const { queryRoute } = createStaticHandler(routes, {
|
|
57
|
+
basename
|
|
58
58
|
});
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
59
|
+
const requestContext = createRequestContext(loaderContext);
|
|
60
|
+
requestContext.set(reporterCtx, reporter);
|
|
61
|
+
let response;
|
|
62
|
+
try {
|
|
63
|
+
response = await queryRoute(request, {
|
|
64
|
+
routeId,
|
|
65
|
+
requestContext
|
|
66
|
+
});
|
|
67
|
+
if (isResponse(response) && isRedirectResponse(response.status)) {
|
|
68
|
+
response = convertModernRedirectResponse(response.headers, basename);
|
|
69
|
+
} else if (isPlainObject(response) && DEFERRED_SYMBOL in response) {
|
|
70
|
+
const deferredData = response[DEFERRED_SYMBOL];
|
|
71
|
+
const body = createDeferredReadableStream(deferredData, request.signal);
|
|
72
|
+
const init = deferredData.init || {};
|
|
73
|
+
if (init.status && isRedirectResponse(init.status)) {
|
|
74
|
+
if (!init.headers) {
|
|
75
|
+
throw new Error("redirect response includes no headers");
|
|
76
|
+
}
|
|
77
|
+
response = convertModernRedirectResponse(new Headers(init.headers), basename);
|
|
78
|
+
} else {
|
|
79
|
+
const headers = new Headers(init.headers);
|
|
80
|
+
headers.set("Content-Type", `${CONTENT_TYPE_DEFERRED}; charset=UTF-8`);
|
|
81
|
+
init.headers = headers;
|
|
82
|
+
response = new Response(body, init);
|
|
68
83
|
}
|
|
69
|
-
response = convertModernRedirectResponse(new Headers(init.headers), basename);
|
|
70
84
|
} else {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
85
|
+
response = isResponse(response) ? response : new Response(JSON.stringify(response), {
|
|
86
|
+
headers: {
|
|
87
|
+
"Content-Type": "application/json; charset=utf-8"
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
const cost = end();
|
|
92
|
+
response.headers.set("X-Modernjs-Response", "yes");
|
|
93
|
+
onTiming === null || onTiming === void 0 ? void 0 : onTiming(`${LOADER_REPORTER_NAME}-navigation`, cost);
|
|
94
|
+
} catch (error) {
|
|
95
|
+
if (isResponse(error)) {
|
|
96
|
+
error.headers.set("X-Modernjs-Catch", "yes");
|
|
97
|
+
response = error;
|
|
98
|
+
} else if (isRouteErrorResponse(error)) {
|
|
99
|
+
response = errorResponseToJson(error);
|
|
100
|
+
} else {
|
|
101
|
+
const errorInstance = error instanceof Error || error instanceof DOMException ? error : new Error("Unexpected Server Error");
|
|
102
|
+
response = json(serializeError(errorInstance), {
|
|
103
|
+
status: 500,
|
|
104
|
+
headers: {
|
|
105
|
+
"X-Modernjs-Error": "yes"
|
|
106
|
+
}
|
|
107
|
+
});
|
|
75
108
|
}
|
|
76
|
-
} else {
|
|
77
|
-
response = isResponse(response) ? response : new Response(JSON.stringify(response), {
|
|
78
|
-
headers: {
|
|
79
|
-
"Content-Type": "application/json; charset=utf-8"
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
const cost = end();
|
|
84
|
-
response.headers.set("X-Modernjs-Response", "yes");
|
|
85
|
-
onTiming === null || onTiming === void 0 ? void 0 : onTiming(`${LOADER_REPORTER_NAME}-navigation`, cost);
|
|
86
|
-
} catch (error) {
|
|
87
|
-
if (isResponse(error)) {
|
|
88
|
-
error.headers.set("X-Modernjs-Catch", "yes");
|
|
89
|
-
response = error;
|
|
90
|
-
} else if (isRouteErrorResponse(error)) {
|
|
91
|
-
response = errorResponseToJson(error);
|
|
92
|
-
} else {
|
|
93
|
-
const errorInstance = error instanceof Error || error instanceof DOMException ? error : new Error("Unexpected Server Error");
|
|
94
|
-
response = json(serializeError(errorInstance), {
|
|
95
|
-
status: 500,
|
|
96
|
-
headers: {
|
|
97
|
-
"X-Modernjs-Error": "yes"
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
109
|
}
|
|
101
|
-
|
|
102
|
-
|
|
110
|
+
return response;
|
|
111
|
+
});
|
|
103
112
|
};
|
|
104
113
|
export {
|
|
105
114
|
handleRequest,
|
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ServerLoaderBundle } from '@modern-js/server-core';
|
|
2
2
|
export declare function isRedirectResponse(status: number): boolean;
|
|
3
3
|
export declare function isResponse(value: any): value is Response;
|
|
4
|
-
export declare const handleRequest:
|
|
5
|
-
request: Request;
|
|
6
|
-
serverRoutes: ServerRoute[];
|
|
7
|
-
routes: NestedRoute[];
|
|
8
|
-
onError?: ((error: unknown) => void) | undefined;
|
|
9
|
-
onTiming?: ((name: string, dur: number) => void) | undefined;
|
|
10
|
-
context: {
|
|
11
|
-
loaderContext?: Map<string, unknown>;
|
|
12
|
-
reporter?: Reporter;
|
|
13
|
-
};
|
|
14
|
-
}) => Promise<Response | void>;
|
|
4
|
+
export declare const handleRequest: ServerLoaderBundle['handleRequest'];
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"modern",
|
|
16
16
|
"modern.js"
|
|
17
17
|
],
|
|
18
|
-
"version": "2.65.
|
|
18
|
+
"version": "2.65.3",
|
|
19
19
|
"engines": {
|
|
20
20
|
"node": ">=16.2.0"
|
|
21
21
|
},
|
|
@@ -49,8 +49,8 @@
|
|
|
49
49
|
"@babel/core": "^7.26.0",
|
|
50
50
|
"@swc/helpers": "0.5.13",
|
|
51
51
|
"path-to-regexp": "^6.2.0",
|
|
52
|
-
"@modern-js/runtime-utils": "2.65.
|
|
53
|
-
"@modern-js/utils": "2.65.
|
|
52
|
+
"@modern-js/runtime-utils": "2.65.3",
|
|
53
|
+
"@modern-js/utils": "2.65.3"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"@types/babel__core": "^7.20.5",
|
|
@@ -66,11 +66,11 @@
|
|
|
66
66
|
"ts-jest": "^29.1.0",
|
|
67
67
|
"typescript": "^5",
|
|
68
68
|
"webpack": "^5.98.0",
|
|
69
|
-
"@modern-js/core": "2.65.
|
|
70
|
-
"@modern-js/server-core": "2.65.
|
|
71
|
-
"@modern-js/types": "2.65.
|
|
72
|
-
"@scripts/build": "2.65.
|
|
73
|
-
"@scripts/jest-config": "2.65.
|
|
69
|
+
"@modern-js/core": "2.65.3",
|
|
70
|
+
"@modern-js/server-core": "2.65.3",
|
|
71
|
+
"@modern-js/types": "2.65.3",
|
|
72
|
+
"@scripts/build": "2.65.3",
|
|
73
|
+
"@scripts/jest-config": "2.65.3"
|
|
74
74
|
},
|
|
75
75
|
"peerDependencies": {
|
|
76
76
|
"react": ">=17.0.0"
|