@modern-js/plugin-data-loader 2.46.1 → 2.47.1-alpha.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.
@@ -59,66 +59,31 @@ function convertModernRedirectResponse(headers, basename) {
59
59
  headers: newHeaders
60
60
  });
61
61
  }
62
- const createLoaderHeaders = (requestHeaders) => {
63
- const headers = new Headers();
64
- for (const [key, values] of Object.entries(requestHeaders)) {
65
- if (values) {
66
- if (Array.isArray(values)) {
67
- for (const value of values) {
68
- headers.append(key, value);
69
- }
70
- } else {
71
- headers.set(key, values);
72
- }
73
- }
74
- }
75
- return headers;
76
- };
77
- const createRequest = (context) => {
78
- const origin = `${context.protocol}://${context.host}`;
79
- const url = new URL(context.url, origin);
80
- const controller = new AbortController();
62
+ const handleRequest = async ({ request: originRequest, serverRoutes, routes: routesConfig, context }) => {
63
+ var _originRequest_url;
81
64
  const init = {
82
- method: context.method,
83
- headers: createLoaderHeaders(context.headers),
84
- signal: controller.signal
65
+ method: originRequest.method,
66
+ headers: originRequest.headers,
67
+ signal: originRequest.signal
85
68
  };
86
- if (![
87
- "GET",
88
- "HEAD"
89
- ].includes(context.method.toUpperCase())) {
90
- init.body = context.req;
91
- }
92
- const request = new Request(url.href, init);
93
- return request;
94
- };
95
- const sendLoaderResponse = async (res, nodeResponse) => {
96
- res.statusMessage = nodeResponse.statusText;
97
- res.statusCode = nodeResponse.status;
98
- for (const [key, value] of nodeResponse.headers.entries()) {
99
- res.setHeader(key, value);
69
+ if (!(originRequest.method === "GET" || originRequest.method === "HEAD") && ((_originRequest_url = originRequest.url) === null || _originRequest_url === void 0 ? void 0 : _originRequest_url.includes("__loader"))) {
70
+ init.body = originRequest.__rawReq;
71
+ init.duplex = "half";
100
72
  }
101
- if (nodeResponse.body) {
102
- await (0, import_node.writeReadableStreamToWritable)(nodeResponse.body, res);
103
- } else {
104
- res.end();
105
- }
106
- };
107
- const handleRequest = async ({ context, serverRoutes, routes: routesConfig }) => {
108
- const { query } = context;
109
- const routeId = query[import_constants2.LOADER_ID_PARAM];
110
- const entry = (0, import_node2.matchEntry)(context.path, serverRoutes);
73
+ const request = new Request(originRequest.url, init);
74
+ const url = new URL(request.url);
75
+ const routeId = url.searchParams.get(import_constants2.LOADER_ID_PARAM);
76
+ const entry = (0, import_node2.matchEntry)(url.pathname, serverRoutes);
111
77
  if (!routeId || !entry) {
112
78
  return;
113
79
  }
114
80
  const basename = entry.urlPath;
115
81
  const end = (0, import_time.time)();
116
- const { res, logger, reporter } = context;
82
+ const { logger, reporter } = context;
117
83
  const routes = (0, import_browser.transformNestedRoutes)(routesConfig, reporter);
118
84
  const { queryRoute } = (0, import_remix_router.createStaticHandler)(routes, {
119
85
  basename
120
86
  });
121
- const request = createRequest(context);
122
87
  const requestContext = (0, import_node2.createRequestContext)();
123
88
  requestContext.set(import_node2.reporterCtx, reporter);
124
89
  let response;
@@ -132,17 +97,17 @@ const handleRequest = async ({ context, serverRoutes, routes: routesConfig }) =>
132
97
  } else if ((0, import_lodash.isPlainObject)(response) && import_remix_router.UNSAFE_DEFERRED_SYMBOL in response) {
133
98
  const deferredData = response[import_remix_router.UNSAFE_DEFERRED_SYMBOL];
134
99
  const body = (0, import_response.createDeferredReadableStream)(deferredData, request.signal);
135
- const init = deferredData.init || {};
136
- if (init.status && isRedirectResponse(init.status)) {
137
- if (!init.headers) {
100
+ const init2 = deferredData.init || {};
101
+ if (init2.status && isRedirectResponse(init2.status)) {
102
+ if (!init2.headers) {
138
103
  throw new Error("redirect response includes no headers");
139
104
  }
140
- response = convertModernRedirectResponse(new Headers(init.headers), basename);
105
+ response = convertModernRedirectResponse(new Headers(init2.headers), basename);
141
106
  } else {
142
- const headers = new Headers(init.headers);
107
+ const headers = new Headers(init2.headers);
143
108
  headers.set("Content-Type", `${import_constants2.CONTENT_TYPE_DEFERRED}; charset=UTF-8`);
144
- init.headers = headers;
145
- response = new import_node.Response(body, init);
109
+ init2.headers = headers;
110
+ response = new import_node.Response(body, init2);
146
111
  }
147
112
  } else {
148
113
  response = isResponse(response) ? response : new import_node.Response(JSON.stringify(response), {
@@ -151,6 +116,8 @@ const handleRequest = async ({ context, serverRoutes, routes: routesConfig }) =>
151
116
  }
152
117
  });
153
118
  }
119
+ const cost = end();
120
+ reporter === null || reporter === void 0 ? void 0 : reporter.reportTiming(`${import_constants.LOADER_REPORTER_NAME}-navigation`, cost);
154
121
  } catch (error) {
155
122
  const message = (0, import_remix_router.isRouteErrorResponse)(error) ? error.data : String(error);
156
123
  if (error instanceof Error) {
@@ -165,9 +132,7 @@ const handleRequest = async ({ context, serverRoutes, routes: routesConfig }) =>
165
132
  }
166
133
  });
167
134
  }
168
- const cost = end();
169
- reporter.reportTiming(`${import_constants.LOADER_REPORTER_NAME}-navigation`, cost);
170
- await sendLoaderResponse(res, response);
135
+ return response;
171
136
  };
172
137
  // Annotate the CommonJS export names for ESM import in node:
173
138
  0 && (module.exports = {
@@ -1,8 +1,7 @@
1
1
  import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
2
  import { _ as _instanceof } from "@swc/helpers/_/_instanceof";
3
- import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
4
3
  import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
5
- import { installGlobals, writeReadableStreamToWritable, Response as NodeResponse } from "@remix-run/node";
4
+ import { installGlobals, Response as NodeResponse } from "@remix-run/node";
6
5
  import { createStaticHandler, UNSAFE_DEFERRED_SYMBOL as DEFERRED_SYMBOL, isRouteErrorResponse } from "@modern-js/runtime-utils/remix-router";
7
6
  import { transformNestedRoutes } from "@modern-js/runtime-utils/browser";
8
7
  import { isPlainObject } from "@modern-js/utils/lodash";
@@ -38,140 +37,26 @@ function convertModernRedirectResponse(headers, basename) {
38
37
  headers: newHeaders
39
38
  });
40
39
  }
41
- var createLoaderHeaders = function(requestHeaders) {
42
- var headers = new Headers();
43
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
44
- try {
45
- for (var _iterator = Object.entries(requestHeaders)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
46
- var _step_value = _sliced_to_array(_step.value, 2), key = _step_value[0], values = _step_value[1];
47
- if (values) {
48
- if (Array.isArray(values)) {
49
- var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
50
- try {
51
- for (var _iterator1 = values[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
52
- var value = _step1.value;
53
- headers.append(key, value);
54
- }
55
- } catch (err) {
56
- _didIteratorError1 = true;
57
- _iteratorError1 = err;
58
- } finally {
59
- try {
60
- if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
61
- _iterator1.return();
62
- }
63
- } finally {
64
- if (_didIteratorError1) {
65
- throw _iteratorError1;
66
- }
67
- }
68
- }
69
- } else {
70
- headers.set(key, values);
71
- }
72
- }
73
- }
74
- } catch (err) {
75
- _didIteratorError = true;
76
- _iteratorError = err;
77
- } finally {
78
- try {
79
- if (!_iteratorNormalCompletion && _iterator.return != null) {
80
- _iterator.return();
81
- }
82
- } finally {
83
- if (_didIteratorError) {
84
- throw _iteratorError;
85
- }
86
- }
87
- }
88
- return headers;
89
- };
90
- var createRequest = function(context) {
91
- var origin = "".concat(context.protocol, "://").concat(context.host);
92
- var url = new URL(context.url, origin);
93
- var controller = new AbortController();
94
- var init = {
95
- method: context.method,
96
- headers: createLoaderHeaders(context.headers),
97
- signal: controller.signal
98
- };
99
- if (![
100
- "GET",
101
- "HEAD"
102
- ].includes(context.method.toUpperCase())) {
103
- init.body = context.req;
104
- }
105
- var request = new Request(url.href, init);
106
- return request;
107
- };
108
- var sendLoaderResponse = function() {
109
- var _ref = _async_to_generator(function(res, nodeResponse) {
110
- var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _step_value, key, value;
111
- return _ts_generator(this, function(_state) {
112
- switch (_state.label) {
113
- case 0:
114
- res.statusMessage = nodeResponse.statusText;
115
- res.statusCode = nodeResponse.status;
116
- _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
117
- try {
118
- for (_iterator = nodeResponse.headers.entries()[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
119
- _step_value = _sliced_to_array(_step.value, 2), key = _step_value[0], value = _step_value[1];
120
- res.setHeader(key, value);
121
- }
122
- } catch (err) {
123
- _didIteratorError = true;
124
- _iteratorError = err;
125
- } finally {
126
- try {
127
- if (!_iteratorNormalCompletion && _iterator.return != null) {
128
- _iterator.return();
129
- }
130
- } finally {
131
- if (_didIteratorError) {
132
- throw _iteratorError;
133
- }
134
- }
135
- }
136
- if (!nodeResponse.body)
137
- return [
138
- 3,
139
- 2
140
- ];
141
- return [
142
- 4,
143
- writeReadableStreamToWritable(nodeResponse.body, res)
144
- ];
145
- case 1:
146
- _state.sent();
147
- return [
148
- 3,
149
- 3
150
- ];
151
- case 2:
152
- res.end();
153
- _state.label = 3;
154
- case 3:
155
- return [
156
- 2
157
- ];
158
- }
159
- });
160
- });
161
- return function sendLoaderResponse2(res, nodeResponse) {
162
- return _ref.apply(this, arguments);
163
- };
164
- }();
165
40
  var handleRequest = function() {
166
41
  var _ref = _async_to_generator(function(param) {
167
- var context, serverRoutes, routesConfig, query, routeId, entry, basename, end, res, logger, reporter, routes, queryRoute, request, requestContext, response, deferredData, body, init, headers, error, message, cost;
42
+ var originRequest, serverRoutes, routesConfig, context, _originRequest_url, init, request, url, routeId, entry, basename, end, logger, reporter, routes, queryRoute, requestContext, response, deferredData, body, init1, headers, cost, error, message;
168
43
  return _ts_generator(this, function(_state) {
169
44
  switch (_state.label) {
170
45
  case 0:
171
- context = param.context, serverRoutes = param.serverRoutes, routesConfig = param.routes;
172
- query = context.query;
173
- routeId = query[LOADER_ID_PARAM];
174
- entry = matchEntry(context.path, serverRoutes);
46
+ originRequest = param.request, serverRoutes = param.serverRoutes, routesConfig = param.routes, context = param.context;
47
+ init = {
48
+ method: originRequest.method,
49
+ headers: originRequest.headers,
50
+ signal: originRequest.signal
51
+ };
52
+ if (!(originRequest.method === "GET" || originRequest.method === "HEAD") && ((_originRequest_url = originRequest.url) === null || _originRequest_url === void 0 ? void 0 : _originRequest_url.includes("__loader"))) {
53
+ init.body = originRequest.__rawReq;
54
+ init.duplex = "half";
55
+ }
56
+ request = new Request(originRequest.url, init);
57
+ url = new URL(request.url);
58
+ routeId = url.searchParams.get(LOADER_ID_PARAM);
59
+ entry = matchEntry(url.pathname, serverRoutes);
175
60
  if (!routeId || !entry) {
176
61
  return [
177
62
  2
@@ -179,12 +64,11 @@ var handleRequest = function() {
179
64
  }
180
65
  basename = entry.urlPath;
181
66
  end = time();
182
- res = context.res, logger = context.logger, reporter = context.reporter;
67
+ logger = context.logger, reporter = context.reporter;
183
68
  routes = transformNestedRoutes(routesConfig, reporter);
184
69
  queryRoute = createStaticHandler(routes, {
185
70
  basename
186
71
  }).queryRoute;
187
- request = createRequest(context);
188
72
  requestContext = createRequestContext();
189
73
  requestContext.set(reporterCtx, reporter);
190
74
  _state.label = 1;
@@ -209,17 +93,17 @@ var handleRequest = function() {
209
93
  } else if (isPlainObject(response) && DEFERRED_SYMBOL in response) {
210
94
  deferredData = response[DEFERRED_SYMBOL];
211
95
  body = createDeferredReadableStream(deferredData, request.signal);
212
- init = deferredData.init || {};
213
- if (init.status && isRedirectResponse(init.status)) {
214
- if (!init.headers) {
96
+ init1 = deferredData.init || {};
97
+ if (init1.status && isRedirectResponse(init1.status)) {
98
+ if (!init1.headers) {
215
99
  throw new Error("redirect response includes no headers");
216
100
  }
217
- response = convertModernRedirectResponse(new Headers(init.headers), basename);
101
+ response = convertModernRedirectResponse(new Headers(init1.headers), basename);
218
102
  } else {
219
- headers = new Headers(init.headers);
103
+ headers = new Headers(init1.headers);
220
104
  headers.set("Content-Type", "".concat(CONTENT_TYPE_DEFERRED, "; charset=UTF-8"));
221
- init.headers = headers;
222
- response = new NodeResponse(body, init);
105
+ init1.headers = headers;
106
+ response = new NodeResponse(body, init1);
223
107
  }
224
108
  } else {
225
109
  response = isResponse(response) ? response : new NodeResponse(JSON.stringify(response), {
@@ -228,6 +112,8 @@ var handleRequest = function() {
228
112
  }
229
113
  });
230
114
  }
115
+ cost = end();
116
+ reporter === null || reporter === void 0 ? void 0 : reporter.reportTiming("".concat(LOADER_REPORTER_NAME, "-navigation"), cost);
231
117
  return [
232
118
  3,
233
119
  4
@@ -251,16 +137,9 @@ var handleRequest = function() {
251
137
  4
252
138
  ];
253
139
  case 4:
254
- cost = end();
255
- reporter.reportTiming("".concat(LOADER_REPORTER_NAME, "-navigation"), cost);
256
- return [
257
- 4,
258
- sendLoaderResponse(res, response)
259
- ];
260
- case 5:
261
- _state.sent();
262
140
  return [
263
- 2
141
+ 2,
142
+ response
264
143
  ];
265
144
  }
266
145
  });
@@ -1,4 +1,4 @@
1
- import { installGlobals, writeReadableStreamToWritable, Response as NodeResponse } from "@remix-run/node";
1
+ import { installGlobals, Response as NodeResponse } from "@remix-run/node";
2
2
  import { createStaticHandler, UNSAFE_DEFERRED_SYMBOL as DEFERRED_SYMBOL, isRouteErrorResponse } from "@modern-js/runtime-utils/remix-router";
3
3
  import { transformNestedRoutes } from "@modern-js/runtime-utils/browser";
4
4
  import { isPlainObject } from "@modern-js/utils/lodash";
@@ -34,66 +34,31 @@ function convertModernRedirectResponse(headers, basename) {
34
34
  headers: newHeaders
35
35
  });
36
36
  }
37
- const createLoaderHeaders = (requestHeaders) => {
38
- const headers = new Headers();
39
- for (const [key, values] of Object.entries(requestHeaders)) {
40
- if (values) {
41
- if (Array.isArray(values)) {
42
- for (const value of values) {
43
- headers.append(key, value);
44
- }
45
- } else {
46
- headers.set(key, values);
47
- }
48
- }
49
- }
50
- return headers;
51
- };
52
- const createRequest = (context) => {
53
- const origin = `${context.protocol}://${context.host}`;
54
- const url = new URL(context.url, origin);
55
- const controller = new AbortController();
37
+ const handleRequest = async ({ request: originRequest, serverRoutes, routes: routesConfig, context }) => {
38
+ var _originRequest_url;
56
39
  const init = {
57
- method: context.method,
58
- headers: createLoaderHeaders(context.headers),
59
- signal: controller.signal
40
+ method: originRequest.method,
41
+ headers: originRequest.headers,
42
+ signal: originRequest.signal
60
43
  };
61
- if (![
62
- "GET",
63
- "HEAD"
64
- ].includes(context.method.toUpperCase())) {
65
- init.body = context.req;
66
- }
67
- const request = new Request(url.href, init);
68
- return request;
69
- };
70
- const sendLoaderResponse = async (res, nodeResponse) => {
71
- res.statusMessage = nodeResponse.statusText;
72
- res.statusCode = nodeResponse.status;
73
- for (const [key, value] of nodeResponse.headers.entries()) {
74
- res.setHeader(key, value);
44
+ if (!(originRequest.method === "GET" || originRequest.method === "HEAD") && ((_originRequest_url = originRequest.url) === null || _originRequest_url === void 0 ? void 0 : _originRequest_url.includes("__loader"))) {
45
+ init.body = originRequest.__rawReq;
46
+ init.duplex = "half";
75
47
  }
76
- if (nodeResponse.body) {
77
- await writeReadableStreamToWritable(nodeResponse.body, res);
78
- } else {
79
- res.end();
80
- }
81
- };
82
- const handleRequest = async ({ context, serverRoutes, routes: routesConfig }) => {
83
- const { query } = context;
84
- const routeId = query[LOADER_ID_PARAM];
85
- const entry = matchEntry(context.path, serverRoutes);
48
+ const request = new Request(originRequest.url, init);
49
+ const url = new URL(request.url);
50
+ const routeId = url.searchParams.get(LOADER_ID_PARAM);
51
+ const entry = matchEntry(url.pathname, serverRoutes);
86
52
  if (!routeId || !entry) {
87
53
  return;
88
54
  }
89
55
  const basename = entry.urlPath;
90
56
  const end = time();
91
- const { res, logger, reporter } = context;
57
+ const { logger, reporter } = context;
92
58
  const routes = transformNestedRoutes(routesConfig, reporter);
93
59
  const { queryRoute } = createStaticHandler(routes, {
94
60
  basename
95
61
  });
96
- const request = createRequest(context);
97
62
  const requestContext = createRequestContext();
98
63
  requestContext.set(reporterCtx, reporter);
99
64
  let response;
@@ -107,17 +72,17 @@ const handleRequest = async ({ context, serverRoutes, routes: routesConfig }) =>
107
72
  } else if (isPlainObject(response) && DEFERRED_SYMBOL in response) {
108
73
  const deferredData = response[DEFERRED_SYMBOL];
109
74
  const body = createDeferredReadableStream(deferredData, request.signal);
110
- const init = deferredData.init || {};
111
- if (init.status && isRedirectResponse(init.status)) {
112
- if (!init.headers) {
75
+ const init2 = deferredData.init || {};
76
+ if (init2.status && isRedirectResponse(init2.status)) {
77
+ if (!init2.headers) {
113
78
  throw new Error("redirect response includes no headers");
114
79
  }
115
- response = convertModernRedirectResponse(new Headers(init.headers), basename);
80
+ response = convertModernRedirectResponse(new Headers(init2.headers), basename);
116
81
  } else {
117
- const headers = new Headers(init.headers);
82
+ const headers = new Headers(init2.headers);
118
83
  headers.set("Content-Type", `${CONTENT_TYPE_DEFERRED}; charset=UTF-8`);
119
- init.headers = headers;
120
- response = new NodeResponse(body, init);
84
+ init2.headers = headers;
85
+ response = new NodeResponse(body, init2);
121
86
  }
122
87
  } else {
123
88
  response = isResponse(response) ? response : new NodeResponse(JSON.stringify(response), {
@@ -126,6 +91,8 @@ const handleRequest = async ({ context, serverRoutes, routes: routesConfig }) =>
126
91
  }
127
92
  });
128
93
  }
94
+ const cost = end();
95
+ reporter === null || reporter === void 0 ? void 0 : reporter.reportTiming(`${LOADER_REPORTER_NAME}-navigation`, cost);
129
96
  } catch (error) {
130
97
  const message = isRouteErrorResponse(error) ? error.data : String(error);
131
98
  if (error instanceof Error) {
@@ -140,9 +107,7 @@ const handleRequest = async ({ context, serverRoutes, routes: routesConfig }) =>
140
107
  }
141
108
  });
142
109
  }
143
- const cost = end();
144
- reporter.reportTiming(`${LOADER_REPORTER_NAME}-navigation`, cost);
145
- await sendLoaderResponse(res, response);
110
+ return response;
146
111
  };
147
112
  export {
148
113
  handleRequest,
@@ -7,7 +7,7 @@ export declare const getRequestUrl: ({ params, request, routeId, }: {
7
7
  export declare const createRequest: (routeId: string, method?: string) => ({ params, request, }: {
8
8
  params: Record<string, string>;
9
9
  request: Request;
10
- }) => Promise<DeferredData | Response>;
10
+ }) => Promise<Response | DeferredData>;
11
11
  export declare const createActionRequest: (routeId: string) => ({ params, request, }: {
12
12
  params: Record<string, string>;
13
13
  request: Request;
@@ -1,10 +1,20 @@
1
- import type { NestedRoute, ServerRoute } from '@modern-js/types';
1
+ /// <reference types="node" />
2
+ import type { IncomingMessage } from 'node:http';
3
+ import type { Logger, NestedRoute, Reporter, ServerRoute } from '@modern-js/types';
2
4
  import { Response as NodeResponse } from '@remix-run/node';
3
- import { ServerContext } from '@modern-js/runtime-utils/node';
5
+ declare global {
6
+ interface Request {
7
+ __rawReq?: IncomingMessage;
8
+ }
9
+ }
4
10
  export declare function isRedirectResponse(status: number): boolean;
5
11
  export declare function isResponse(value: any): value is NodeResponse;
6
- export declare const handleRequest: ({ context, serverRoutes, routes: routesConfig, }: {
7
- context: ServerContext;
12
+ export declare const handleRequest: ({ request: originRequest, serverRoutes, routes: routesConfig, context, }: {
13
+ request: Request;
8
14
  serverRoutes: ServerRoute[];
9
15
  routes: NestedRoute[];
10
- }) => Promise<void>;
16
+ context: {
17
+ logger: Logger;
18
+ reporter?: Reporter;
19
+ };
20
+ }) => Promise<Response | void>;
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "modern",
16
16
  "modern.js"
17
17
  ],
18
- "version": "2.46.1",
18
+ "version": "2.47.1-alpha.0",
19
19
  "engines": {
20
20
  "node": ">=14.17.6"
21
21
  },
@@ -29,11 +29,6 @@
29
29
  "jsnext:source": "./src/cli/loader.ts",
30
30
  "default": "./dist/cjs/cli/loader.js"
31
31
  },
32
- "./server": {
33
- "types": "./dist/types/server/index.d.ts",
34
- "jsnext:source": "./src/server/index.ts",
35
- "default": "./dist/cjs/server/index.js"
36
- },
37
32
  "./runtime": {
38
33
  "types": "./dist/types/runtime/index.d.ts",
39
34
  "jsnext:source": "./src/runtime/index.ts",
@@ -45,9 +40,6 @@
45
40
  "loader": [
46
41
  "./dist/types/cli/loader.d.ts"
47
42
  ],
48
- "server": [
49
- "./dist/types/server/index.d.ts"
50
- ],
51
43
  "runtime": [
52
44
  "./dist/types/runtime/index.d.ts"
53
45
  ]
@@ -58,8 +50,8 @@
58
50
  "@remix-run/node": "^1.12.0",
59
51
  "path-to-regexp": "^6.2.0",
60
52
  "@swc/helpers": "0.5.3",
61
- "@modern-js/utils": "2.46.1",
62
- "@modern-js/runtime-utils": "2.46.1"
53
+ "@modern-js/runtime-utils": "2.47.0",
54
+ "@modern-js/utils": "2.47.0"
63
55
  },
64
56
  "devDependencies": {
65
57
  "@types/babel__core": "^7.20.1",
@@ -75,11 +67,11 @@
75
67
  "webpack": "^5.89.0",
76
68
  "react": "^18",
77
69
  "react-dom": "^18",
78
- "@modern-js/core": "2.46.1",
79
- "@modern-js/server-core": "2.46.1",
80
- "@modern-js/types": "2.46.1",
81
- "@scripts/build": "2.46.1",
82
- "@scripts/jest-config": "2.46.1"
70
+ "@modern-js/core": "2.47.0",
71
+ "@scripts/build": "2.47.0",
72
+ "@modern-js/server-core": "2.47.1-alpha.6",
73
+ "@modern-js/types": "2.47.0",
74
+ "@scripts/jest-config": "2.47.0"
83
75
  },
84
76
  "peerDependencies": {
85
77
  "react": ">=17.0.0"
@@ -1,63 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var server_exports = {};
30
- __export(server_exports, {
31
- default: () => server_default
32
- });
33
- module.exports = __toCommonJS(server_exports);
34
- var import_path = __toESM(require("path"));
35
- var import_fs = __toESM(require("fs"));
36
- var import_utils = require("@modern-js/utils");
37
- var import_node = require("@modern-js/runtime-utils/node");
38
- var server_default = () => ({
39
- name: "@modern-js/plugin-data-loader",
40
- setup: () => ({
41
- prepareLoaderHandler({ serverRoutes, distDir }) {
42
- return async (context) => {
43
- const entry = (0, import_node.matchEntry)(context.path, serverRoutes);
44
- if (!entry) {
45
- return;
46
- }
47
- const routesPath = import_path.default.join(distDir, import_utils.SERVER_BUNDLE_DIRECTORY, `${entry.entryName || import_utils.MAIN_ENTRY_NAME}-server-loaders.js`);
48
- if (!import_fs.default.existsSync(routesPath)) {
49
- return;
50
- }
51
- const { routes, handleRequest } = await Promise.resolve().then(() => __toESM(require(routesPath)));
52
- if (!routes) {
53
- return;
54
- }
55
- return handleRequest({
56
- serverRoutes,
57
- context,
58
- routes
59
- });
60
- };
61
- }
62
- })
63
- });
@@ -1,66 +0,0 @@
1
- import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
- import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
- import path from "path";
4
- import fs from "fs";
5
- import { MAIN_ENTRY_NAME, SERVER_BUNDLE_DIRECTORY } from "@modern-js/utils";
6
- import { matchEntry } from "@modern-js/runtime-utils/node";
7
- function server_default() {
8
- return {
9
- name: "@modern-js/plugin-data-loader",
10
- setup: function() {
11
- return {
12
- prepareLoaderHandler: function prepareLoaderHandler(param) {
13
- var serverRoutes = param.serverRoutes, distDir = param.distDir;
14
- return function() {
15
- var _ref = _async_to_generator(function(context) {
16
- var entry, routesPath, _ref2, routes, handleRequest;
17
- return _ts_generator(this, function(_state) {
18
- switch (_state.label) {
19
- case 0:
20
- entry = matchEntry(context.path, serverRoutes);
21
- if (!entry) {
22
- return [
23
- 2
24
- ];
25
- }
26
- routesPath = path.join(distDir, SERVER_BUNDLE_DIRECTORY, "".concat(entry.entryName || MAIN_ENTRY_NAME, "-server-loaders.js"));
27
- if (!fs.existsSync(routesPath)) {
28
- return [
29
- 2
30
- ];
31
- }
32
- return [
33
- 4,
34
- import(routesPath)
35
- ];
36
- case 1:
37
- _ref2 = _state.sent(), routes = _ref2.routes, handleRequest = _ref2.handleRequest;
38
- if (!routes) {
39
- return [
40
- 2
41
- ];
42
- }
43
- return [
44
- 2,
45
- handleRequest({
46
- serverRoutes,
47
- context,
48
- routes
49
- })
50
- ];
51
- }
52
- });
53
- });
54
- return function(context) {
55
- return _ref.apply(this, arguments);
56
- };
57
- }();
58
- }
59
- };
60
- }
61
- };
62
- }
63
- ;
64
- export {
65
- server_default as default
66
- };
@@ -1,33 +0,0 @@
1
- import path from "path";
2
- import fs from "fs";
3
- import { MAIN_ENTRY_NAME, SERVER_BUNDLE_DIRECTORY } from "@modern-js/utils";
4
- import { matchEntry } from "@modern-js/runtime-utils/node";
5
- var server_default = () => ({
6
- name: "@modern-js/plugin-data-loader",
7
- setup: () => ({
8
- prepareLoaderHandler({ serverRoutes, distDir }) {
9
- return async (context) => {
10
- const entry = matchEntry(context.path, serverRoutes);
11
- if (!entry) {
12
- return;
13
- }
14
- const routesPath = path.join(distDir, SERVER_BUNDLE_DIRECTORY, `${entry.entryName || MAIN_ENTRY_NAME}-server-loaders.js`);
15
- if (!fs.existsSync(routesPath)) {
16
- return;
17
- }
18
- const { routes, handleRequest } = await import(routesPath);
19
- if (!routes) {
20
- return;
21
- }
22
- return handleRequest({
23
- serverRoutes,
24
- context,
25
- routes
26
- });
27
- };
28
- }
29
- })
30
- });
31
- export {
32
- server_default as default
33
- };
@@ -1,3 +0,0 @@
1
- import type { ServerPlugin } from '@modern-js/server-core';
2
- declare const _default: () => ServerPlugin;
3
- export default _default;