@modern-js/plugin-data-loader 2.63.6 → 2.64.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/dist/cjs/cli/createRequest.js +38 -15
- package/dist/cjs/runtime/errors.js +1 -1
- package/dist/cjs/runtime/index.js +1 -0
- package/dist/esm/cli/createRequest.js +79 -43
- package/dist/esm/runtime/errors.js +1 -1
- package/dist/esm/runtime/index.js +1 -0
- package/dist/esm-node/cli/createRequest.js +38 -15
- package/dist/esm-node/runtime/errors.js +1 -1
- package/dist/esm-node/runtime/index.js +1 -0
- package/package.json +8 -8
|
@@ -46,24 +46,33 @@ const handleRedirectResponse = (res) => {
|
|
|
46
46
|
}
|
|
47
47
|
return res;
|
|
48
48
|
};
|
|
49
|
-
const
|
|
49
|
+
const isDeferredResponse = (res) => {
|
|
50
50
|
var _res_headers_get;
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
return res;
|
|
51
|
+
return ((_res_headers_get = res.headers.get("Content-Type")) === null || _res_headers_get === void 0 ? void 0 : _res_headers_get.match(import_constants.CONTENT_TYPE_DEFERRED)) && res.body;
|
|
52
|
+
};
|
|
53
|
+
const isRedirectResponse = (res) => {
|
|
54
|
+
return res.headers.get("X-Modernjs-Redirect") != null;
|
|
55
55
|
};
|
|
56
56
|
const isErrorResponse = (res) => {
|
|
57
57
|
return res.headers.get("X-Modernjs-Error") != null;
|
|
58
58
|
};
|
|
59
|
+
function isOtherErrorResponse(res) {
|
|
60
|
+
return res.status >= 400 && res.headers.get("X-Modernjs-Error") == null && res.headers.get("X-Modernjs-Catch") == null && res.headers.get("X-Modernjs-Response") == null;
|
|
61
|
+
}
|
|
62
|
+
const isCatchResponse = (res) => {
|
|
63
|
+
return res.headers.get("X-Modernjs-Catch") != null;
|
|
64
|
+
};
|
|
59
65
|
const handleErrorResponse = async (res) => {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
const data = await res.json();
|
|
67
|
+
const error = new Error(data.message);
|
|
68
|
+
error.stack = data.stack;
|
|
69
|
+
throw error;
|
|
70
|
+
};
|
|
71
|
+
const handleNetworkErrorResponse = async (res) => {
|
|
72
|
+
const text = await res.text();
|
|
73
|
+
const error = new Error(text);
|
|
74
|
+
error.stack = void 0;
|
|
75
|
+
throw error;
|
|
67
76
|
};
|
|
68
77
|
const createRequest = (routeId, method = "get") => {
|
|
69
78
|
return async ({ params, request }) => {
|
|
@@ -76,10 +85,24 @@ const createRequest = (routeId, method = "get") => {
|
|
|
76
85
|
res = await fetch(url, {
|
|
77
86
|
method,
|
|
78
87
|
signal: request.signal
|
|
88
|
+
}).catch((error) => {
|
|
89
|
+
throw error;
|
|
79
90
|
});
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
91
|
+
if (isRedirectResponse(res)) {
|
|
92
|
+
return handleRedirectResponse(res);
|
|
93
|
+
}
|
|
94
|
+
if (isErrorResponse(res)) {
|
|
95
|
+
return await handleErrorResponse(res);
|
|
96
|
+
}
|
|
97
|
+
if (isCatchResponse(res)) {
|
|
98
|
+
throw res;
|
|
99
|
+
}
|
|
100
|
+
if (isDeferredResponse(res)) {
|
|
101
|
+
return await (0, import_data.parseDeferredReadableStream)(res.body);
|
|
102
|
+
}
|
|
103
|
+
if (isOtherErrorResponse(res)) {
|
|
104
|
+
return await handleNetworkErrorResponse(res);
|
|
105
|
+
}
|
|
83
106
|
return res;
|
|
84
107
|
};
|
|
85
108
|
};
|
|
@@ -28,7 +28,7 @@ module.exports = __toCommonJS(errors_exports);
|
|
|
28
28
|
var import_remix_router = require("@modern-js/runtime-utils/remix-router");
|
|
29
29
|
function sanitizeError(error) {
|
|
30
30
|
if (error instanceof Error && process.env.NODE_ENV !== "development" && process.env.NODE_ENV !== "test") {
|
|
31
|
-
const sanitized = new Error("Unexpected Server Error");
|
|
31
|
+
const sanitized = new Error(error.message || "Unexpected Server Error");
|
|
32
32
|
sanitized.stack = void 0;
|
|
33
33
|
return sanitized;
|
|
34
34
|
}
|
|
@@ -106,6 +106,7 @@ const handleRequest = async ({ request, serverRoutes, routes: routesConfig, cont
|
|
|
106
106
|
});
|
|
107
107
|
}
|
|
108
108
|
const cost = end();
|
|
109
|
+
response.headers.set("X-Modernjs-Response", "yes");
|
|
109
110
|
onTiming === null || onTiming === void 0 ? void 0 : onTiming(`${import_constants.LOADER_REPORTER_NAME}-navigation`, cost);
|
|
110
111
|
} catch (error) {
|
|
111
112
|
if (isResponse(error)) {
|
|
@@ -24,70 +24,63 @@ var handleRedirectResponse = function(res) {
|
|
|
24
24
|
}
|
|
25
25
|
return res;
|
|
26
26
|
};
|
|
27
|
-
var
|
|
27
|
+
var isDeferredResponse = function(res) {
|
|
28
|
+
var _res_headers_get;
|
|
29
|
+
return ((_res_headers_get = res.headers.get("Content-Type")) === null || _res_headers_get === void 0 ? void 0 : _res_headers_get.match(CONTENT_TYPE_DEFERRED)) && res.body;
|
|
30
|
+
};
|
|
31
|
+
var isRedirectResponse = function(res) {
|
|
32
|
+
return res.headers.get("X-Modernjs-Redirect") != null;
|
|
33
|
+
};
|
|
34
|
+
var isErrorResponse = function(res) {
|
|
35
|
+
return res.headers.get("X-Modernjs-Error") != null;
|
|
36
|
+
};
|
|
37
|
+
function isOtherErrorResponse(res) {
|
|
38
|
+
return res.status >= 400 && res.headers.get("X-Modernjs-Error") == null && res.headers.get("X-Modernjs-Catch") == null && res.headers.get("X-Modernjs-Response") == null;
|
|
39
|
+
}
|
|
40
|
+
var isCatchResponse = function(res) {
|
|
41
|
+
return res.headers.get("X-Modernjs-Catch") != null;
|
|
42
|
+
};
|
|
43
|
+
var handleErrorResponse = function() {
|
|
28
44
|
var _ref = _async_to_generator(function(res) {
|
|
29
|
-
var
|
|
45
|
+
var data, error;
|
|
30
46
|
return _ts_generator(this, function(_state) {
|
|
31
47
|
switch (_state.label) {
|
|
32
48
|
case 0:
|
|
33
|
-
if (!(((_res_headers_get = res.headers.get("Content-Type")) === null || _res_headers_get === void 0 ? void 0 : _res_headers_get.match(CONTENT_TYPE_DEFERRED)) && res.body))
|
|
34
|
-
return [
|
|
35
|
-
3,
|
|
36
|
-
2
|
|
37
|
-
];
|
|
38
49
|
return [
|
|
39
50
|
4,
|
|
40
|
-
|
|
51
|
+
res.json()
|
|
41
52
|
];
|
|
42
53
|
case 1:
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
case 2:
|
|
48
|
-
return [
|
|
49
|
-
2,
|
|
50
|
-
res
|
|
51
|
-
];
|
|
54
|
+
data = _state.sent();
|
|
55
|
+
error = new Error(data.message);
|
|
56
|
+
error.stack = data.stack;
|
|
57
|
+
throw error;
|
|
52
58
|
}
|
|
53
59
|
});
|
|
54
60
|
});
|
|
55
|
-
return function
|
|
61
|
+
return function handleErrorResponse2(res) {
|
|
56
62
|
return _ref.apply(this, arguments);
|
|
57
63
|
};
|
|
58
64
|
}();
|
|
59
|
-
var
|
|
60
|
-
return res.headers.get("X-Modernjs-Error") != null;
|
|
61
|
-
};
|
|
62
|
-
var handleErrorResponse = function() {
|
|
65
|
+
var handleNetworkErrorResponse = function() {
|
|
63
66
|
var _ref = _async_to_generator(function(res) {
|
|
64
|
-
var
|
|
67
|
+
var text, error;
|
|
65
68
|
return _ts_generator(this, function(_state) {
|
|
66
69
|
switch (_state.label) {
|
|
67
70
|
case 0:
|
|
68
|
-
if (!isErrorResponse(res))
|
|
69
|
-
return [
|
|
70
|
-
3,
|
|
71
|
-
2
|
|
72
|
-
];
|
|
73
71
|
return [
|
|
74
72
|
4,
|
|
75
|
-
res.
|
|
73
|
+
res.text()
|
|
76
74
|
];
|
|
77
75
|
case 1:
|
|
78
|
-
|
|
79
|
-
error = new Error(
|
|
80
|
-
error.stack =
|
|
76
|
+
text = _state.sent();
|
|
77
|
+
error = new Error(text);
|
|
78
|
+
error.stack = void 0;
|
|
81
79
|
throw error;
|
|
82
|
-
case 2:
|
|
83
|
-
return [
|
|
84
|
-
2,
|
|
85
|
-
res
|
|
86
|
-
];
|
|
87
80
|
}
|
|
88
81
|
});
|
|
89
82
|
});
|
|
90
|
-
return function
|
|
83
|
+
return function handleNetworkErrorResponse2(res) {
|
|
91
84
|
return _ref.apply(this, arguments);
|
|
92
85
|
};
|
|
93
86
|
}();
|
|
@@ -110,23 +103,66 @@ var createRequest = function(routeId) {
|
|
|
110
103
|
fetch(url, {
|
|
111
104
|
method,
|
|
112
105
|
signal: request.signal
|
|
106
|
+
}).catch(function(error) {
|
|
107
|
+
throw error;
|
|
113
108
|
})
|
|
114
109
|
];
|
|
115
110
|
case 1:
|
|
116
111
|
res = _state.sent();
|
|
117
|
-
|
|
112
|
+
if (isRedirectResponse(res)) {
|
|
113
|
+
return [
|
|
114
|
+
2,
|
|
115
|
+
handleRedirectResponse(res)
|
|
116
|
+
];
|
|
117
|
+
}
|
|
118
|
+
if (!isErrorResponse(res))
|
|
119
|
+
return [
|
|
120
|
+
3,
|
|
121
|
+
3
|
|
122
|
+
];
|
|
118
123
|
return [
|
|
119
124
|
4,
|
|
120
125
|
handleErrorResponse(res)
|
|
121
126
|
];
|
|
122
127
|
case 2:
|
|
123
|
-
res = _state.sent();
|
|
124
128
|
return [
|
|
125
|
-
|
|
126
|
-
|
|
129
|
+
2,
|
|
130
|
+
_state.sent()
|
|
127
131
|
];
|
|
128
132
|
case 3:
|
|
129
|
-
|
|
133
|
+
if (isCatchResponse(res)) {
|
|
134
|
+
throw res;
|
|
135
|
+
}
|
|
136
|
+
if (!isDeferredResponse(res))
|
|
137
|
+
return [
|
|
138
|
+
3,
|
|
139
|
+
5
|
|
140
|
+
];
|
|
141
|
+
return [
|
|
142
|
+
4,
|
|
143
|
+
parseDeferredReadableStream(res.body)
|
|
144
|
+
];
|
|
145
|
+
case 4:
|
|
146
|
+
return [
|
|
147
|
+
2,
|
|
148
|
+
_state.sent()
|
|
149
|
+
];
|
|
150
|
+
case 5:
|
|
151
|
+
if (!isOtherErrorResponse(res))
|
|
152
|
+
return [
|
|
153
|
+
3,
|
|
154
|
+
7
|
|
155
|
+
];
|
|
156
|
+
return [
|
|
157
|
+
4,
|
|
158
|
+
handleNetworkErrorResponse(res)
|
|
159
|
+
];
|
|
160
|
+
case 6:
|
|
161
|
+
return [
|
|
162
|
+
2,
|
|
163
|
+
_state.sent()
|
|
164
|
+
];
|
|
165
|
+
case 7:
|
|
130
166
|
return [
|
|
131
167
|
2,
|
|
132
168
|
res
|
|
@@ -6,7 +6,7 @@ import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
|
|
|
6
6
|
import { isRouteErrorResponse, json } from "@modern-js/runtime-utils/remix-router";
|
|
7
7
|
function sanitizeError(error) {
|
|
8
8
|
if (_instanceof(error, Error) && process.env.NODE_ENV !== "development" && process.env.NODE_ENV !== "test") {
|
|
9
|
-
var sanitized = new Error("Unexpected Server Error");
|
|
9
|
+
var sanitized = new Error(error.message || "Unexpected Server Error");
|
|
10
10
|
sanitized.stack = void 0;
|
|
11
11
|
return sanitized;
|
|
12
12
|
}
|
|
@@ -104,6 +104,7 @@ var handleRequest = function() {
|
|
|
104
104
|
});
|
|
105
105
|
}
|
|
106
106
|
cost = end();
|
|
107
|
+
response.headers.set("X-Modernjs-Response", "yes");
|
|
107
108
|
onTiming === null || onTiming === void 0 ? void 0 : onTiming("".concat(LOADER_REPORTER_NAME, "-navigation"), cost);
|
|
108
109
|
return [
|
|
109
110
|
3,
|
|
@@ -21,24 +21,33 @@ const handleRedirectResponse = (res) => {
|
|
|
21
21
|
}
|
|
22
22
|
return res;
|
|
23
23
|
};
|
|
24
|
-
const
|
|
24
|
+
const isDeferredResponse = (res) => {
|
|
25
25
|
var _res_headers_get;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return res;
|
|
26
|
+
return ((_res_headers_get = res.headers.get("Content-Type")) === null || _res_headers_get === void 0 ? void 0 : _res_headers_get.match(CONTENT_TYPE_DEFERRED)) && res.body;
|
|
27
|
+
};
|
|
28
|
+
const isRedirectResponse = (res) => {
|
|
29
|
+
return res.headers.get("X-Modernjs-Redirect") != null;
|
|
30
30
|
};
|
|
31
31
|
const isErrorResponse = (res) => {
|
|
32
32
|
return res.headers.get("X-Modernjs-Error") != null;
|
|
33
33
|
};
|
|
34
|
+
function isOtherErrorResponse(res) {
|
|
35
|
+
return res.status >= 400 && res.headers.get("X-Modernjs-Error") == null && res.headers.get("X-Modernjs-Catch") == null && res.headers.get("X-Modernjs-Response") == null;
|
|
36
|
+
}
|
|
37
|
+
const isCatchResponse = (res) => {
|
|
38
|
+
return res.headers.get("X-Modernjs-Catch") != null;
|
|
39
|
+
};
|
|
34
40
|
const handleErrorResponse = async (res) => {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
41
|
+
const data = await res.json();
|
|
42
|
+
const error = new Error(data.message);
|
|
43
|
+
error.stack = data.stack;
|
|
44
|
+
throw error;
|
|
45
|
+
};
|
|
46
|
+
const handleNetworkErrorResponse = async (res) => {
|
|
47
|
+
const text = await res.text();
|
|
48
|
+
const error = new Error(text);
|
|
49
|
+
error.stack = void 0;
|
|
50
|
+
throw error;
|
|
42
51
|
};
|
|
43
52
|
const createRequest = (routeId, method = "get") => {
|
|
44
53
|
return async ({ params, request }) => {
|
|
@@ -51,10 +60,24 @@ const createRequest = (routeId, method = "get") => {
|
|
|
51
60
|
res = await fetch(url, {
|
|
52
61
|
method,
|
|
53
62
|
signal: request.signal
|
|
63
|
+
}).catch((error) => {
|
|
64
|
+
throw error;
|
|
54
65
|
});
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
66
|
+
if (isRedirectResponse(res)) {
|
|
67
|
+
return handleRedirectResponse(res);
|
|
68
|
+
}
|
|
69
|
+
if (isErrorResponse(res)) {
|
|
70
|
+
return await handleErrorResponse(res);
|
|
71
|
+
}
|
|
72
|
+
if (isCatchResponse(res)) {
|
|
73
|
+
throw res;
|
|
74
|
+
}
|
|
75
|
+
if (isDeferredResponse(res)) {
|
|
76
|
+
return await parseDeferredReadableStream(res.body);
|
|
77
|
+
}
|
|
78
|
+
if (isOtherErrorResponse(res)) {
|
|
79
|
+
return await handleNetworkErrorResponse(res);
|
|
80
|
+
}
|
|
58
81
|
return res;
|
|
59
82
|
};
|
|
60
83
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isRouteErrorResponse, json } from "@modern-js/runtime-utils/remix-router";
|
|
2
2
|
function sanitizeError(error) {
|
|
3
3
|
if (error instanceof Error && process.env.NODE_ENV !== "development" && process.env.NODE_ENV !== "test") {
|
|
4
|
-
const sanitized = new Error("Unexpected Server Error");
|
|
4
|
+
const sanitized = new Error(error.message || "Unexpected Server Error");
|
|
5
5
|
sanitized.stack = void 0;
|
|
6
6
|
return sanitized;
|
|
7
7
|
}
|
|
@@ -81,6 +81,7 @@ const handleRequest = async ({ request, serverRoutes, routes: routesConfig, cont
|
|
|
81
81
|
});
|
|
82
82
|
}
|
|
83
83
|
const cost = end();
|
|
84
|
+
response.headers.set("X-Modernjs-Response", "yes");
|
|
84
85
|
onTiming === null || onTiming === void 0 ? void 0 : onTiming(`${LOADER_REPORTER_NAME}-navigation`, cost);
|
|
85
86
|
} catch (error) {
|
|
86
87
|
if (isResponse(error)) {
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"modern",
|
|
16
16
|
"modern.js"
|
|
17
17
|
],
|
|
18
|
-
"version": "2.
|
|
18
|
+
"version": "2.64.0",
|
|
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.
|
|
53
|
-
"@modern-js/utils": "2.
|
|
52
|
+
"@modern-js/runtime-utils": "2.64.0",
|
|
53
|
+
"@modern-js/utils": "2.64.0"
|
|
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.97.1",
|
|
69
|
-
"@modern-js/core": "2.
|
|
70
|
-
"@modern-js/
|
|
71
|
-
"@modern-js/
|
|
72
|
-
"@scripts/build": "2.
|
|
73
|
-
"@scripts/jest-config": "2.
|
|
69
|
+
"@modern-js/core": "2.64.0",
|
|
70
|
+
"@modern-js/server-core": "2.64.0",
|
|
71
|
+
"@modern-js/types": "2.64.0",
|
|
72
|
+
"@scripts/build": "2.64.0",
|
|
73
|
+
"@scripts/jest-config": "2.64.0"
|
|
74
74
|
},
|
|
75
75
|
"peerDependencies": {
|
|
76
76
|
"react": ">=17.0.0"
|