@modern-js/plugin-data-loader 2.67.3 → 2.67.5

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.
@@ -75,6 +75,7 @@ const handleNetworkErrorResponse = async (res) => {
75
75
  throw error;
76
76
  };
77
77
  const createRequest = (routeId, method = "get") => {
78
+ const isRouterV7 = process.env._MODERN_ROUTER_VERSION === "v7";
78
79
  return async ({ params, request }) => {
79
80
  const url = getRequestUrl({
80
81
  params,
@@ -98,7 +99,8 @@ const createRequest = (routeId, method = "get") => {
98
99
  throw res;
99
100
  }
100
101
  if (isDeferredResponse(res)) {
101
- return await (0, import_data.parseDeferredReadableStream)(res.body);
102
+ const deferredData = await (0, import_data.parseDeferredReadableStream)(res.body);
103
+ return isRouterV7 ? deferredData.data : deferredData;
102
104
  }
103
105
  if (isOtherErrorResponse(res)) {
104
106
  return await handleNetworkErrorResponse(res);
@@ -21,7 +21,7 @@ __export(data_exports, {
21
21
  parseDeferredReadableStream: () => parseDeferredReadableStream
22
22
  });
23
23
  module.exports = __toCommonJS(data_exports);
24
- var import_remix_router = require("@modern-js/runtime-utils/remix-router");
24
+ var import_browser = require("@modern-js/runtime-utils/browser");
25
25
  const DEFERRED_VALUE_PLACEHOLDER_PREFIX = "__deferred_promise:";
26
26
  async function parseDeferredReadableStream(stream) {
27
27
  if (!stream) {
@@ -80,7 +80,7 @@ async function parseDeferredReadableStream(stream) {
80
80
  }
81
81
  }
82
82
  for (const [key, resolver] of Object.entries(deferredResolvers)) {
83
- resolver.reject(new import_remix_router.AbortedDeferredError(`Deferred ${key} will never resolved`));
83
+ resolver.reject(new import_browser.AbortedDeferredError(`Deferred ${key} will never resolved`));
84
84
  }
85
85
  } catch (error) {
86
86
  for (const resolver of Object.values(deferredResolvers)) {
@@ -88,7 +88,7 @@ async function parseDeferredReadableStream(stream) {
88
88
  }
89
89
  }
90
90
  })();
91
- return new import_remix_router.UNSAFE_DeferredData({
91
+ return new import_browser.DeferredData({
92
92
  ...criticalData,
93
93
  ...deferredData
94
94
  });
@@ -72,10 +72,12 @@ const handleRequest = async ({ request, serverRoutes, routes: routesConfig, cont
72
72
  const end = (0, import_time.time)();
73
73
  const { reporter, loaderContext, monitors } = context;
74
74
  const headersData = (0, import_request.parseHeaders)(request);
75
+ const activeDeferreds = /* @__PURE__ */ new Map();
75
76
  return import_node2.storage.run({
76
77
  headers: headersData,
77
78
  monitors,
78
- request
79
+ request,
80
+ activeDeferreds
79
81
  }, async () => {
80
82
  const routes = (0, import_browser.transformNestedRoutes)(routesConfig);
81
83
  const { queryRoute } = (0, import_remix_router.createStaticHandler)(routes, {
@@ -91,9 +93,18 @@ const handleRequest = async ({ request, serverRoutes, routes: routesConfig, cont
91
93
  });
92
94
  if (isResponse(response) && isRedirectResponse(response.status)) {
93
95
  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);
96
+ } else if ((0, import_lodash.isPlainObject)(response) && (import_remix_router.UNSAFE_DEFERRED_SYMBOL in response || activeDeferreds.get(routeId))) {
97
+ let deferredData;
98
+ if (import_remix_router.UNSAFE_DEFERRED_SYMBOL in response) {
99
+ deferredData = response[import_remix_router.UNSAFE_DEFERRED_SYMBOL];
100
+ } else {
101
+ deferredData = activeDeferreds.get(routeId);
102
+ }
103
+ const body = (0, import_response.createDeferredReadableStream)(
104
+ // @ts-ignore
105
+ deferredData,
106
+ request.signal
107
+ );
97
108
  const init = deferredData.init || {};
98
109
  if (init.status && isRedirectResponse(init.status)) {
99
110
  if (!init.headers) {
@@ -124,10 +135,11 @@ const handleRequest = async ({ request, serverRoutes, routes: routesConfig, cont
124
135
  response = (0, import_errors.errorResponseToJson)(error);
125
136
  } else {
126
137
  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), {
138
+ response = new Response(JSON.stringify((0, import_errors.serializeError)(errorInstance)), {
128
139
  status: 500,
129
140
  headers: {
130
- "X-Modernjs-Error": "yes"
141
+ "X-Modernjs-Error": "yes",
142
+ "Content-Type": "application/json"
131
143
  }
132
144
  });
133
145
  }
@@ -86,9 +86,10 @@ var handleNetworkErrorResponse = function() {
86
86
  }();
87
87
  var createRequest = function(routeId) {
88
88
  var method = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "get";
89
+ var isRouterV7 = process.env._MODERN_ROUTER_VERSION === "v7";
89
90
  return function() {
90
91
  var _ref = _async_to_generator(function(param) {
91
- var params, request, url, res;
92
+ var params, request, url, res, deferredData;
92
93
  return _ts_generator(this, function(_state) {
93
94
  switch (_state.label) {
94
95
  case 0:
@@ -143,9 +144,10 @@ var createRequest = function(routeId) {
143
144
  parseDeferredReadableStream(res.body)
144
145
  ];
145
146
  case 4:
147
+ deferredData = _state.sent();
146
148
  return [
147
149
  2,
148
- _state.sent()
150
+ isRouterV7 ? deferredData.data : deferredData
149
151
  ];
150
152
  case 5:
151
153
  if (!isOtherErrorResponse(res))
@@ -8,7 +8,7 @@ import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
8
8
  import { _ as _type_of } from "@swc/helpers/_/_type_of";
9
9
  import { _ as _wrap_async_generator } from "@swc/helpers/_/_wrap_async_generator";
10
10
  import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
11
- import { AbortedDeferredError, UNSAFE_DeferredData as DeferredData } from "@modern-js/runtime-utils/remix-router";
11
+ import { AbortedDeferredError, DeferredData } from "@modern-js/runtime-utils/browser";
12
12
  var DEFERRED_VALUE_PLACEHOLDER_PREFIX = "__deferred_promise:";
13
13
  function parseDeferredReadableStream(stream) {
14
14
  return _parseDeferredReadableStream.apply(this, arguments);
@@ -5,7 +5,7 @@ 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
7
  import { storage } from "@modern-js/runtime-utils/node";
8
- import { UNSAFE_DEFERRED_SYMBOL as DEFERRED_SYMBOL, createStaticHandler, isRouteErrorResponse, json } from "@modern-js/runtime-utils/remix-router";
8
+ import { UNSAFE_DEFERRED_SYMBOL as DEFERRED_SYMBOL, createStaticHandler, isRouteErrorResponse } from "@modern-js/runtime-utils/remix-router";
9
9
  import { matchEntry } from "@modern-js/runtime-utils/server";
10
10
  import { time } from "@modern-js/runtime-utils/time";
11
11
  import { parseHeaders } from "@modern-js/runtime-utils/universal/request";
@@ -42,7 +42,7 @@ function convertModernRedirectResponse(headers, basename) {
42
42
  }
43
43
  var handleRequest = function() {
44
44
  var _ref = _async_to_generator(function(param) {
45
- var request, serverRoutes, routesConfig, context, onTiming, url, routeId, entry, basename, end, reporter, loaderContext, monitors, headersData;
45
+ var request, serverRoutes, routesConfig, context, onTiming, url, routeId, entry, basename, end, reporter, loaderContext, monitors, headersData, activeDeferreds;
46
46
  return _ts_generator(this, function(_state) {
47
47
  request = param.request, serverRoutes = param.serverRoutes, routesConfig = param.routes, context = param.context, onTiming = param.onTiming;
48
48
  url = new URL(request.url);
@@ -57,12 +57,14 @@ var handleRequest = function() {
57
57
  end = time();
58
58
  reporter = context.reporter, loaderContext = context.loaderContext, monitors = context.monitors;
59
59
  headersData = parseHeaders(request);
60
+ activeDeferreds = /* @__PURE__ */ new Map();
60
61
  return [
61
62
  2,
62
63
  storage.run({
63
64
  headers: headersData,
64
65
  monitors,
65
- request
66
+ request,
67
+ activeDeferreds
66
68
  }, /* @__PURE__ */ _async_to_generator(function() {
67
69
  var routes, queryRoute, requestContext, response, deferredData, body, init, headers, cost, error, errorInstance;
68
70
  return _ts_generator(this, function(_state2) {
@@ -93,9 +95,18 @@ var handleRequest = function() {
93
95
  response = _state2.sent();
94
96
  if (isResponse(response) && isRedirectResponse(response.status)) {
95
97
  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);
98
+ } else if (isPlainObject(response) && (DEFERRED_SYMBOL in response || activeDeferreds.get(routeId))) {
99
+ ;
100
+ if (DEFERRED_SYMBOL in response) {
101
+ deferredData = response[DEFERRED_SYMBOL];
102
+ } else {
103
+ deferredData = activeDeferreds.get(routeId);
104
+ }
105
+ body = createDeferredReadableStream(
106
+ // @ts-ignore
107
+ deferredData,
108
+ request.signal
109
+ );
99
110
  init = deferredData.init || {};
100
111
  if (init.status && isRedirectResponse(init.status)) {
101
112
  if (!init.headers) {
@@ -131,10 +142,11 @@ var handleRequest = function() {
131
142
  response = errorResponseToJson(error);
132
143
  } else {
133
144
  errorInstance = _instanceof(error, Error) || _instanceof(error, DOMException) ? error : new Error("Unexpected Server Error");
134
- response = json(serializeError(errorInstance), {
145
+ response = new Response(JSON.stringify(serializeError(errorInstance)), {
135
146
  status: 500,
136
147
  headers: {
137
- "X-Modernjs-Error": "yes"
148
+ "X-Modernjs-Error": "yes",
149
+ "Content-Type": "application/json"
138
150
  }
139
151
  });
140
152
  }
@@ -50,6 +50,7 @@ const handleNetworkErrorResponse = async (res) => {
50
50
  throw error;
51
51
  };
52
52
  const createRequest = (routeId, method = "get") => {
53
+ const isRouterV7 = process.env._MODERN_ROUTER_VERSION === "v7";
53
54
  return async ({ params, request }) => {
54
55
  const url = getRequestUrl({
55
56
  params,
@@ -73,7 +74,8 @@ const createRequest = (routeId, method = "get") => {
73
74
  throw res;
74
75
  }
75
76
  if (isDeferredResponse(res)) {
76
- return await parseDeferredReadableStream(res.body);
77
+ const deferredData = await parseDeferredReadableStream(res.body);
78
+ return isRouterV7 ? deferredData.data : deferredData;
77
79
  }
78
80
  if (isOtherErrorResponse(res)) {
79
81
  return await handleNetworkErrorResponse(res);
@@ -1,4 +1,4 @@
1
- import { AbortedDeferredError, UNSAFE_DeferredData as DeferredData } from "@modern-js/runtime-utils/remix-router";
1
+ import { AbortedDeferredError, DeferredData } from "@modern-js/runtime-utils/browser";
2
2
  const DEFERRED_VALUE_PLACEHOLDER_PREFIX = "__deferred_promise:";
3
3
  async function parseDeferredReadableStream(stream) {
4
4
  if (!stream) {
@@ -1,7 +1,7 @@
1
1
  import { transformNestedRoutes } from "@modern-js/runtime-utils/browser";
2
2
  import { createRequestContext, reporterCtx } from "@modern-js/runtime-utils/node";
3
3
  import { storage } from "@modern-js/runtime-utils/node";
4
- import { UNSAFE_DEFERRED_SYMBOL as DEFERRED_SYMBOL, createStaticHandler, isRouteErrorResponse, json } from "@modern-js/runtime-utils/remix-router";
4
+ import { UNSAFE_DEFERRED_SYMBOL as DEFERRED_SYMBOL, createStaticHandler, isRouteErrorResponse } from "@modern-js/runtime-utils/remix-router";
5
5
  import { matchEntry } from "@modern-js/runtime-utils/server";
6
6
  import { time } from "@modern-js/runtime-utils/time";
7
7
  import { parseHeaders } from "@modern-js/runtime-utils/universal/request";
@@ -47,10 +47,12 @@ const handleRequest = async ({ request, serverRoutes, routes: routesConfig, cont
47
47
  const end = time();
48
48
  const { reporter, loaderContext, monitors } = context;
49
49
  const headersData = parseHeaders(request);
50
+ const activeDeferreds = /* @__PURE__ */ new Map();
50
51
  return storage.run({
51
52
  headers: headersData,
52
53
  monitors,
53
- request
54
+ request,
55
+ activeDeferreds
54
56
  }, async () => {
55
57
  const routes = transformNestedRoutes(routesConfig);
56
58
  const { queryRoute } = createStaticHandler(routes, {
@@ -66,9 +68,18 @@ const handleRequest = async ({ request, serverRoutes, routes: routesConfig, cont
66
68
  });
67
69
  if (isResponse(response) && isRedirectResponse(response.status)) {
68
70
  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);
71
+ } else if (isPlainObject(response) && (DEFERRED_SYMBOL in response || activeDeferreds.get(routeId))) {
72
+ let deferredData;
73
+ if (DEFERRED_SYMBOL in response) {
74
+ deferredData = response[DEFERRED_SYMBOL];
75
+ } else {
76
+ deferredData = activeDeferreds.get(routeId);
77
+ }
78
+ const body = createDeferredReadableStream(
79
+ // @ts-ignore
80
+ deferredData,
81
+ request.signal
82
+ );
72
83
  const init = deferredData.init || {};
73
84
  if (init.status && isRedirectResponse(init.status)) {
74
85
  if (!init.headers) {
@@ -99,10 +110,11 @@ const handleRequest = async ({ request, serverRoutes, routes: routesConfig, cont
99
110
  response = errorResponseToJson(error);
100
111
  } else {
101
112
  const errorInstance = error instanceof Error || error instanceof DOMException ? error : new Error("Unexpected Server Error");
102
- response = json(serializeError(errorInstance), {
113
+ response = new Response(JSON.stringify(serializeError(errorInstance)), {
103
114
  status: 500,
104
115
  headers: {
105
- "X-Modernjs-Error": "yes"
116
+ "X-Modernjs-Error": "yes",
117
+ "Content-Type": "application/json"
106
118
  }
107
119
  });
108
120
  }
@@ -1,4 +1,4 @@
1
- import type { UNSAFE_DeferredData as DeferredData } from '@modern-js/runtime-utils/remix-router';
1
+ import type { DeferredData } from '@modern-js/runtime-utils/browser';
2
2
  export declare const getRequestUrl: ({ params, request, routeId, }: {
3
3
  params: Record<string, string>;
4
4
  request: Request;
@@ -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<DeferredData | Record<string, unknown> | Response>;
11
11
  export declare const createActionRequest: (routeId: string) => ({ params, request, }: {
12
12
  params: Record<string, string>;
13
13
  request: Request;
@@ -7,5 +7,5 @@
7
7
  * Copyright 2021 Remix Software Inc.
8
8
  * https://github.com/remix-run/remix/blob/2b5e1a72fc628d0408e27cf4d72e537762f1dc5b/LICENSE.md
9
9
  */
10
- import { UNSAFE_DeferredData as DeferredData } from '@modern-js/runtime-utils/remix-router';
10
+ import { DeferredData } from '@modern-js/runtime-utils/browser';
11
11
  export declare function parseDeferredReadableStream(stream: ReadableStream<Uint8Array>): Promise<DeferredData>;
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "modern",
16
16
  "modern.js"
17
17
  ],
18
- "version": "2.67.3",
18
+ "version": "2.67.5",
19
19
  "engines": {
20
20
  "node": ">=16.2.0"
21
21
  },
@@ -47,10 +47,10 @@
47
47
  },
48
48
  "dependencies": {
49
49
  "@babel/core": "^7.26.0",
50
- "@swc/helpers": "0.5.13",
50
+ "@swc/helpers": "^0.5.17",
51
51
  "path-to-regexp": "^6.2.0",
52
- "@modern-js/runtime-utils": "2.67.3",
53
- "@modern-js/utils": "2.67.3"
52
+ "@modern-js/runtime-utils": "2.67.5",
53
+ "@modern-js/utils": "2.67.5"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@types/babel__core": "^7.20.5",
@@ -59,17 +59,17 @@
59
59
  "@types/supertest": "^2.0.11",
60
60
  "isomorphic-fetch": "^3.0.0",
61
61
  "jest": "^29",
62
- "memfs": "^3.5.1",
62
+ "memfs": "^3.5.3",
63
63
  "react": "^18.3.1",
64
64
  "react-dom": "^18.3.1",
65
65
  "supertest": "^6.1.6",
66
66
  "ts-jest": "^29.1.0",
67
67
  "typescript": "^5",
68
- "webpack": "^5.98.0",
69
- "@modern-js/core": "2.67.3",
70
- "@modern-js/server-core": "2.67.3",
68
+ "webpack": "^5.99.8",
69
+ "@modern-js/core": "2.67.5",
70
+ "@modern-js/server-core": "2.67.5",
71
+ "@modern-js/types": "2.67.5",
71
72
  "@scripts/build": "2.66.0",
72
- "@modern-js/types": "2.67.3",
73
73
  "@scripts/jest-config": "2.66.0"
74
74
  },
75
75
  "peerDependencies": {