@modern-js/plugin-data-loader 0.0.0-next-20250224040415 → 0.0.0-next-20250224065439
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 +60 -52
- package/dist/esm/runtime/index.js +108 -94
- package/dist/esm-node/runtime/index.js +60 -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,69 @@ 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
|
-
response = await queryRoute(request, {
|
|
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
|
+
}, async () => {
|
|
79
|
+
const routes = (0, import_browser.transformNestedRoutes)(routesConfig, reporter);
|
|
80
|
+
const { queryRoute } = (0, import_remix_router.createStaticHandler)(routes, {
|
|
81
|
+
basename
|
|
83
82
|
});
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
83
|
+
const requestContext = (0, import_node.createRequestContext)(loaderContext);
|
|
84
|
+
requestContext.set(import_node.reporterCtx, reporter);
|
|
85
|
+
let response;
|
|
86
|
+
try {
|
|
87
|
+
response = await queryRoute(request, {
|
|
88
|
+
routeId,
|
|
89
|
+
requestContext
|
|
90
|
+
});
|
|
91
|
+
if (isResponse(response) && isRedirectResponse(response.status)) {
|
|
92
|
+
response = convertModernRedirectResponse(response.headers, basename);
|
|
93
|
+
} else if ((0, import_lodash.isPlainObject)(response) && import_remix_router.UNSAFE_DEFERRED_SYMBOL in response) {
|
|
94
|
+
const deferredData = response[import_remix_router.UNSAFE_DEFERRED_SYMBOL];
|
|
95
|
+
const body = (0, import_response.createDeferredReadableStream)(deferredData, request.signal);
|
|
96
|
+
const init = deferredData.init || {};
|
|
97
|
+
if (init.status && isRedirectResponse(init.status)) {
|
|
98
|
+
if (!init.headers) {
|
|
99
|
+
throw new Error("redirect response includes no headers");
|
|
100
|
+
}
|
|
101
|
+
response = convertModernRedirectResponse(new Headers(init.headers), basename);
|
|
102
|
+
} else {
|
|
103
|
+
const headers = new Headers(init.headers);
|
|
104
|
+
headers.set("Content-Type", `${import_constants2.CONTENT_TYPE_DEFERRED}; charset=UTF-8`);
|
|
105
|
+
init.headers = headers;
|
|
106
|
+
response = new Response(body, init);
|
|
93
107
|
}
|
|
94
|
-
response = convertModernRedirectResponse(new Headers(init.headers), basename);
|
|
95
108
|
} else {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
109
|
+
response = isResponse(response) ? response : new Response(JSON.stringify(response), {
|
|
110
|
+
headers: {
|
|
111
|
+
"Content-Type": "application/json; charset=utf-8"
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
const cost = end();
|
|
116
|
+
response.headers.set("X-Modernjs-Response", "yes");
|
|
117
|
+
onTiming === null || onTiming === void 0 ? void 0 : onTiming(`${import_constants.LOADER_REPORTER_NAME}-navigation`, cost);
|
|
118
|
+
} catch (error) {
|
|
119
|
+
if (isResponse(error)) {
|
|
120
|
+
error.headers.set("X-Modernjs-Catch", "yes");
|
|
121
|
+
response = error;
|
|
122
|
+
} else if ((0, import_remix_router.isRouteErrorResponse)(error)) {
|
|
123
|
+
response = (0, import_errors.errorResponseToJson)(error);
|
|
124
|
+
} else {
|
|
125
|
+
const errorInstance = error instanceof Error || error instanceof DOMException ? error : new Error("Unexpected Server Error");
|
|
126
|
+
response = (0, import_remix_router.json)((0, import_errors.serializeError)(errorInstance), {
|
|
127
|
+
status: 500,
|
|
128
|
+
headers: {
|
|
129
|
+
"X-Modernjs-Error": "yes"
|
|
130
|
+
}
|
|
131
|
+
});
|
|
100
132
|
}
|
|
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
133
|
}
|
|
126
|
-
|
|
127
|
-
|
|
134
|
+
return response;
|
|
135
|
+
});
|
|
128
136
|
};
|
|
129
137
|
// Annotate the CommonJS export names for ESM import in node:
|
|
130
138
|
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,114 @@ 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
|
+
}, /* @__PURE__ */ _async_to_generator(function() {
|
|
66
|
+
var routes, queryRoute, requestContext, response, deferredData, body, init, headers, cost, error, errorInstance;
|
|
67
|
+
return _ts_generator(this, function(_state2) {
|
|
68
|
+
switch (_state2.label) {
|
|
69
|
+
case 0:
|
|
70
|
+
routes = transformNestedRoutes(routesConfig, reporter);
|
|
71
|
+
queryRoute = createStaticHandler(routes, {
|
|
72
|
+
basename
|
|
73
|
+
}).queryRoute;
|
|
74
|
+
requestContext = createRequestContext(loaderContext);
|
|
75
|
+
requestContext.set(reporterCtx, reporter);
|
|
76
|
+
_state2.label = 1;
|
|
77
|
+
case 1:
|
|
78
|
+
_state2.trys.push([
|
|
79
|
+
1,
|
|
80
|
+
3,
|
|
81
|
+
,
|
|
82
|
+
4
|
|
83
|
+
]);
|
|
84
|
+
return [
|
|
85
|
+
4,
|
|
86
|
+
queryRoute(request, {
|
|
87
|
+
routeId,
|
|
88
|
+
requestContext
|
|
89
|
+
})
|
|
90
|
+
];
|
|
91
|
+
case 2:
|
|
92
|
+
response = _state2.sent();
|
|
93
|
+
if (isResponse(response) && isRedirectResponse(response.status)) {
|
|
94
|
+
response = convertModernRedirectResponse(response.headers, basename);
|
|
95
|
+
} else if (isPlainObject(response) && DEFERRED_SYMBOL in response) {
|
|
96
|
+
deferredData = response[DEFERRED_SYMBOL];
|
|
97
|
+
body = createDeferredReadableStream(deferredData, request.signal);
|
|
98
|
+
init = deferredData.init || {};
|
|
99
|
+
if (init.status && isRedirectResponse(init.status)) {
|
|
100
|
+
if (!init.headers) {
|
|
101
|
+
throw new Error("redirect response includes no headers");
|
|
102
|
+
}
|
|
103
|
+
response = convertModernRedirectResponse(new Headers(init.headers), basename);
|
|
104
|
+
} else {
|
|
105
|
+
headers = new Headers(init.headers);
|
|
106
|
+
headers.set("Content-Type", "".concat(CONTENT_TYPE_DEFERRED, "; charset=UTF-8"));
|
|
107
|
+
init.headers = headers;
|
|
108
|
+
response = new Response(body, init);
|
|
109
|
+
}
|
|
110
|
+
} else {
|
|
111
|
+
response = isResponse(response) ? response : new Response(JSON.stringify(response), {
|
|
112
|
+
headers: {
|
|
113
|
+
"Content-Type": "application/json; charset=utf-8"
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
cost = end();
|
|
118
|
+
response.headers.set("X-Modernjs-Response", "yes");
|
|
119
|
+
onTiming === null || onTiming === void 0 ? void 0 : onTiming("".concat(LOADER_REPORTER_NAME, "-navigation"), cost);
|
|
120
|
+
return [
|
|
121
|
+
3,
|
|
122
|
+
4
|
|
123
|
+
];
|
|
124
|
+
case 3:
|
|
125
|
+
error = _state2.sent();
|
|
126
|
+
if (isResponse(error)) {
|
|
127
|
+
error.headers.set("X-Modernjs-Catch", "yes");
|
|
128
|
+
response = error;
|
|
129
|
+
} else if (isRouteErrorResponse(error)) {
|
|
130
|
+
response = errorResponseToJson(error);
|
|
131
|
+
} else {
|
|
132
|
+
errorInstance = _instanceof(error, Error) || _instanceof(error, DOMException) ? error : new Error("Unexpected Server Error");
|
|
133
|
+
response = json(serializeError(errorInstance), {
|
|
134
|
+
status: 500,
|
|
135
|
+
headers: {
|
|
136
|
+
"X-Modernjs-Error": "yes"
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
return [
|
|
141
|
+
3,
|
|
142
|
+
4
|
|
143
|
+
];
|
|
144
|
+
case 4:
|
|
145
|
+
return [
|
|
146
|
+
2,
|
|
147
|
+
response
|
|
148
|
+
];
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
}))
|
|
152
|
+
];
|
|
139
153
|
});
|
|
140
154
|
});
|
|
141
155
|
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,69 @@ 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
|
-
response = await queryRoute(request, {
|
|
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
|
+
}, async () => {
|
|
54
|
+
const routes = transformNestedRoutes(routesConfig, reporter);
|
|
55
|
+
const { queryRoute } = createStaticHandler(routes, {
|
|
56
|
+
basename
|
|
58
57
|
});
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
58
|
+
const requestContext = createRequestContext(loaderContext);
|
|
59
|
+
requestContext.set(reporterCtx, reporter);
|
|
60
|
+
let response;
|
|
61
|
+
try {
|
|
62
|
+
response = await queryRoute(request, {
|
|
63
|
+
routeId,
|
|
64
|
+
requestContext
|
|
65
|
+
});
|
|
66
|
+
if (isResponse(response) && isRedirectResponse(response.status)) {
|
|
67
|
+
response = convertModernRedirectResponse(response.headers, basename);
|
|
68
|
+
} else if (isPlainObject(response) && DEFERRED_SYMBOL in response) {
|
|
69
|
+
const deferredData = response[DEFERRED_SYMBOL];
|
|
70
|
+
const body = createDeferredReadableStream(deferredData, request.signal);
|
|
71
|
+
const init = deferredData.init || {};
|
|
72
|
+
if (init.status && isRedirectResponse(init.status)) {
|
|
73
|
+
if (!init.headers) {
|
|
74
|
+
throw new Error("redirect response includes no headers");
|
|
75
|
+
}
|
|
76
|
+
response = convertModernRedirectResponse(new Headers(init.headers), basename);
|
|
77
|
+
} else {
|
|
78
|
+
const headers = new Headers(init.headers);
|
|
79
|
+
headers.set("Content-Type", `${CONTENT_TYPE_DEFERRED}; charset=UTF-8`);
|
|
80
|
+
init.headers = headers;
|
|
81
|
+
response = new Response(body, init);
|
|
68
82
|
}
|
|
69
|
-
response = convertModernRedirectResponse(new Headers(init.headers), basename);
|
|
70
83
|
} else {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
84
|
+
response = isResponse(response) ? response : new Response(JSON.stringify(response), {
|
|
85
|
+
headers: {
|
|
86
|
+
"Content-Type": "application/json; charset=utf-8"
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
const cost = end();
|
|
91
|
+
response.headers.set("X-Modernjs-Response", "yes");
|
|
92
|
+
onTiming === null || onTiming === void 0 ? void 0 : onTiming(`${LOADER_REPORTER_NAME}-navigation`, cost);
|
|
93
|
+
} catch (error) {
|
|
94
|
+
if (isResponse(error)) {
|
|
95
|
+
error.headers.set("X-Modernjs-Catch", "yes");
|
|
96
|
+
response = error;
|
|
97
|
+
} else if (isRouteErrorResponse(error)) {
|
|
98
|
+
response = errorResponseToJson(error);
|
|
99
|
+
} else {
|
|
100
|
+
const errorInstance = error instanceof Error || error instanceof DOMException ? error : new Error("Unexpected Server Error");
|
|
101
|
+
response = json(serializeError(errorInstance), {
|
|
102
|
+
status: 500,
|
|
103
|
+
headers: {
|
|
104
|
+
"X-Modernjs-Error": "yes"
|
|
105
|
+
}
|
|
106
|
+
});
|
|
75
107
|
}
|
|
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
108
|
}
|
|
101
|
-
|
|
102
|
-
|
|
109
|
+
return response;
|
|
110
|
+
});
|
|
103
111
|
};
|
|
104
112
|
export {
|
|
105
113
|
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": "0.0.0-next-
|
|
18
|
+
"version": "0.0.0-next-20250224065439",
|
|
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": "0.0.0-next-
|
|
53
|
-
"@modern-js/utils": "0.0.0-next-
|
|
52
|
+
"@modern-js/runtime-utils": "0.0.0-next-20250224065439",
|
|
53
|
+
"@modern-js/utils": "0.0.0-next-20250224065439"
|
|
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": "0.0.0-next-
|
|
70
|
-
"@modern-js/server-core": "0.0.0-next-
|
|
71
|
-
"@modern-js/types": "0.0.0-next-
|
|
72
|
-
"@scripts/build": "0.0.0-next-
|
|
73
|
-
"@scripts/jest-config": "0.0.0-next-
|
|
69
|
+
"@modern-js/core": "0.0.0-next-20250224065439",
|
|
70
|
+
"@modern-js/server-core": "0.0.0-next-20250224065439",
|
|
71
|
+
"@modern-js/types": "0.0.0-next-20250224065439",
|
|
72
|
+
"@scripts/build": "0.0.0-next-20250224065439",
|
|
73
|
+
"@scripts/jest-config": "0.0.0-next-20250224065439"
|
|
74
74
|
},
|
|
75
75
|
"peerDependencies": {
|
|
76
76
|
"react": ">=17.0.0"
|