@modern-js/plugin-data-loader 2.52.0 → 2.54.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.
@@ -53,6 +53,18 @@ const handleDeferredResponse = async (res) => {
53
53
  }
54
54
  return res;
55
55
  };
56
+ const isErrorResponse = (res) => {
57
+ return res.headers.get("X-Modernjs-Error") != null;
58
+ };
59
+ const handleErrorResponse = async (res) => {
60
+ if (isErrorResponse(res)) {
61
+ const data = await res.json();
62
+ const error = new Error(data.message);
63
+ error.stack = data.stack;
64
+ throw error;
65
+ }
66
+ return res;
67
+ };
56
68
  const createRequest = (routeId, method = "get") => {
57
69
  return async ({ params, request }) => {
58
70
  const url = getRequestUrl({
@@ -65,10 +77,8 @@ const createRequest = (routeId, method = "get") => {
65
77
  method,
66
78
  signal: request.signal
67
79
  });
68
- if (!res.ok) {
69
- throw res;
70
- }
71
80
  res = handleRedirectResponse(res);
81
+ res = await handleErrorResponse(res);
72
82
  res = await handleDeferredResponse(res);
73
83
  return res;
74
84
  };
@@ -56,6 +56,41 @@ var handleDeferredResponse = function() {
56
56
  return _ref.apply(this, arguments);
57
57
  };
58
58
  }();
59
+ var isErrorResponse = function(res) {
60
+ return res.headers.get("X-Modernjs-Error") != null;
61
+ };
62
+ var handleErrorResponse = function() {
63
+ var _ref = _async_to_generator(function(res) {
64
+ var data, error;
65
+ return _ts_generator(this, function(_state) {
66
+ switch (_state.label) {
67
+ case 0:
68
+ if (!isErrorResponse(res))
69
+ return [
70
+ 3,
71
+ 2
72
+ ];
73
+ return [
74
+ 4,
75
+ res.json()
76
+ ];
77
+ case 1:
78
+ data = _state.sent();
79
+ error = new Error(data.message);
80
+ error.stack = data.stack;
81
+ throw error;
82
+ case 2:
83
+ return [
84
+ 2,
85
+ res
86
+ ];
87
+ }
88
+ });
89
+ });
90
+ return function handleErrorResponse2(res) {
91
+ return _ref.apply(this, arguments);
92
+ };
93
+ }();
59
94
  var createRequest = function(routeId) {
60
95
  var method = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "get";
61
96
  return function() {
@@ -79,15 +114,18 @@ var createRequest = function(routeId) {
79
114
  ];
80
115
  case 1:
81
116
  res = _state.sent();
82
- if (!res.ok) {
83
- throw res;
84
- }
85
117
  res = handleRedirectResponse(res);
86
118
  return [
87
119
  4,
88
- handleDeferredResponse(res)
120
+ handleErrorResponse(res)
89
121
  ];
90
122
  case 2:
123
+ res = _state.sent();
124
+ return [
125
+ 4,
126
+ handleDeferredResponse(res)
127
+ ];
128
+ case 3:
91
129
  res = _state.sent();
92
130
  return [
93
131
  2,
@@ -28,6 +28,18 @@ const handleDeferredResponse = async (res) => {
28
28
  }
29
29
  return res;
30
30
  };
31
+ const isErrorResponse = (res) => {
32
+ return res.headers.get("X-Modernjs-Error") != null;
33
+ };
34
+ const handleErrorResponse = async (res) => {
35
+ if (isErrorResponse(res)) {
36
+ const data = await res.json();
37
+ const error = new Error(data.message);
38
+ error.stack = data.stack;
39
+ throw error;
40
+ }
41
+ return res;
42
+ };
31
43
  const createRequest = (routeId, method = "get") => {
32
44
  return async ({ params, request }) => {
33
45
  const url = getRequestUrl({
@@ -40,10 +52,8 @@ const createRequest = (routeId, method = "get") => {
40
52
  method,
41
53
  signal: request.signal
42
54
  });
43
- if (!res.ok) {
44
- throw res;
45
- }
46
55
  res = handleRedirectResponse(res);
56
+ res = await handleErrorResponse(res);
47
57
  res = await handleDeferredResponse(res);
48
58
  return res;
49
59
  };
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "modern",
16
16
  "modern.js"
17
17
  ],
18
- "version": "2.52.0",
18
+ "version": "2.54.0",
19
19
  "engines": {
20
20
  "node": ">=16.2.0"
21
21
  },
@@ -49,8 +49,8 @@
49
49
  "@babel/core": "^7.23.2",
50
50
  "path-to-regexp": "^6.2.0",
51
51
  "@swc/helpers": "0.5.3",
52
- "@modern-js/utils": "2.52.0",
53
- "@modern-js/runtime-utils": "2.52.0"
52
+ "@modern-js/utils": "2.54.0",
53
+ "@modern-js/runtime-utils": "2.54.0"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@types/babel__core": "^7.20.1",
@@ -63,14 +63,14 @@
63
63
  "supertest": "^6.1.6",
64
64
  "ts-jest": "^29.1.0",
65
65
  "typescript": "^5",
66
- "webpack": "^5.91.0",
66
+ "webpack": "^5.92.0",
67
67
  "react": "^18",
68
68
  "react-dom": "^18",
69
- "@modern-js/server-core": "2.52.0",
70
- "@modern-js/types": "2.52.0",
71
- "@scripts/build": "2.52.0",
72
- "@scripts/jest-config": "2.52.0",
73
- "@modern-js/core": "2.52.0"
69
+ "@modern-js/core": "2.54.0",
70
+ "@modern-js/server-core": "2.54.0",
71
+ "@modern-js/types": "2.54.0",
72
+ "@scripts/build": "2.54.0",
73
+ "@scripts/jest-config": "2.54.0"
74
74
  },
75
75
  "peerDependencies": {
76
76
  "react": ">=17.0.0"