@modern-js/runtime 2.65.0 → 2.65.2

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.
Files changed (56) hide show
  1. package/dist/cjs/cache/index.js +22 -0
  2. package/dist/cjs/cli/ssr/index.js +1 -1
  3. package/dist/cjs/core/context/monitors/default.js +43 -0
  4. package/dist/cjs/core/context/monitors/index.js +31 -0
  5. package/dist/cjs/core/context/monitors/index.server.js +33 -0
  6. package/dist/cjs/core/context/request/index.js +30 -0
  7. package/dist/cjs/core/context/request/index.server.js +32 -0
  8. package/dist/cjs/core/server/requestHandler.js +84 -76
  9. package/dist/cjs/core/server/stream/shared.js +40 -45
  10. package/dist/cjs/core/server/string/index.js +50 -55
  11. package/dist/cjs/core/server/string/prefetch.js +47 -52
  12. package/dist/cjs/index.js +6 -0
  13. package/dist/cjs/react-server.js +28 -0
  14. package/dist/cjs/router/runtime/plugin.node.js +1 -2
  15. package/dist/cjs/router/runtime/utils.js +4 -6
  16. package/dist/esm/cache/index.js +1 -0
  17. package/dist/esm/cli/ssr/index.js +1 -1
  18. package/dist/esm/core/context/monitors/default.js +40 -0
  19. package/dist/esm/core/context/monitors/index.js +7 -0
  20. package/dist/esm/core/context/monitors/index.server.js +9 -0
  21. package/dist/esm/core/context/request/index.js +6 -0
  22. package/dist/esm/core/context/request/index.server.js +8 -0
  23. package/dist/esm/core/server/requestHandler.js +131 -117
  24. package/dist/esm/core/server/stream/shared.js +49 -63
  25. package/dist/esm/core/server/string/index.js +82 -93
  26. package/dist/esm/core/server/string/prefetch.js +83 -94
  27. package/dist/esm/index.js +4 -0
  28. package/dist/esm/react-server.js +4 -0
  29. package/dist/esm/router/runtime/plugin.node.js +1 -2
  30. package/dist/esm/router/runtime/utils.js +4 -6
  31. package/dist/esm-node/cache/index.js +1 -0
  32. package/dist/esm-node/cli/ssr/index.js +1 -1
  33. package/dist/esm-node/core/context/monitors/default.js +19 -0
  34. package/dist/esm-node/core/context/monitors/index.js +7 -0
  35. package/dist/esm-node/core/context/monitors/index.server.js +9 -0
  36. package/dist/esm-node/core/context/request/index.js +6 -0
  37. package/dist/esm-node/core/context/request/index.server.js +8 -0
  38. package/dist/esm-node/core/server/requestHandler.js +84 -76
  39. package/dist/esm-node/core/server/stream/shared.js +40 -45
  40. package/dist/esm-node/core/server/string/index.js +50 -55
  41. package/dist/esm-node/core/server/string/prefetch.js +47 -52
  42. package/dist/esm-node/index.js +4 -0
  43. package/dist/esm-node/react-server.js +4 -0
  44. package/dist/esm-node/router/runtime/plugin.node.js +1 -2
  45. package/dist/esm-node/router/runtime/utils.js +4 -6
  46. package/dist/types/cache/index.d.ts +1 -0
  47. package/dist/types/core/compatible.d.ts +2 -2
  48. package/dist/types/core/context/monitors/default.d.ts +2 -0
  49. package/dist/types/core/context/monitors/index.d.ts +1 -0
  50. package/dist/types/core/context/monitors/index.server.d.ts +2 -0
  51. package/dist/types/core/context/request/index.d.ts +1 -0
  52. package/dist/types/core/context/request/index.server.d.ts +1 -0
  53. package/dist/types/index.d.ts +2 -0
  54. package/dist/types/react-server.d.ts +1 -0
  55. package/dist/types/router/runtime/utils.d.ts +3 -5
  56. package/package.json +21 -11
@@ -22,75 +22,70 @@ __export(prefetch_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(prefetch_exports);
24
24
  var import_server = require("@loadable/server");
25
- var import_node = require("@modern-js/runtime-utils/node");
26
25
  var import_time = require("@modern-js/runtime-utils/time");
27
- var import_request = require("@modern-js/runtime-utils/universal/request");
28
26
  var import_server2 = require("react-dom/server");
29
27
  var import_wrapper = require("../../react/wrapper");
30
28
  var import_tracer = require("../tracer");
31
29
  const prefetch = async (App, request, options, ssrConfig, { onError, onTiming }) => {
32
- const headersData = (0, import_request.parseHeaders)(request);
30
+ var _context_store;
33
31
  const { runtimeContext: context, resource } = options;
34
32
  const { entryName, loadableStats } = resource;
35
- return (0, import_node.run)(headersData, async () => {
36
- var _context_store;
37
- if (typeof ssrConfig === "boolean" || !ssrConfig.disablePrerender) {
38
- try {
39
- const end = (0, import_time.time)();
40
- if (loadableStats) {
41
- const extractor = new import_server.ChunkExtractor({
42
- stats: loadableStats,
43
- entrypoints: [
44
- entryName
45
- ].filter(Boolean)
46
- });
47
- (0, import_server2.renderToStaticMarkup)(extractor.collectChunks((0, import_wrapper.wrapRuntimeContextProvider)(App, Object.assign(context, {
48
- ssr: false
49
- }))));
50
- } else {
51
- (0, import_server2.renderToStaticMarkup)((0, import_wrapper.wrapRuntimeContextProvider)(App, Object.assign(context, {
52
- ssr: false
53
- })));
54
- }
55
- const cost = end();
56
- onTiming(import_tracer.SSRTimings.PRERENDER, cost);
57
- } catch (e) {
58
- const error = e;
59
- onError(error, import_tracer.SSRErrors.PRERENDER);
60
- throw e;
61
- }
62
- }
63
- if (!context.loaderManager.hasPendingLoaders()) {
64
- return {
65
- initialData: context.initialData,
66
- i18nData: context.__i18nData__
67
- };
68
- }
69
- let loadersData = {};
33
+ if (typeof ssrConfig === "boolean" || !ssrConfig.disablePrerender) {
70
34
  try {
71
35
  const end = (0, import_time.time)();
72
- loadersData = await context.loaderManager.awaitPendingLoaders();
36
+ if (loadableStats) {
37
+ const extractor = new import_server.ChunkExtractor({
38
+ stats: loadableStats,
39
+ entrypoints: [
40
+ entryName
41
+ ].filter(Boolean)
42
+ });
43
+ (0, import_server2.renderToStaticMarkup)(extractor.collectChunks((0, import_wrapper.wrapRuntimeContextProvider)(App, Object.assign(context, {
44
+ ssr: false
45
+ }))));
46
+ } else {
47
+ (0, import_server2.renderToStaticMarkup)((0, import_wrapper.wrapRuntimeContextProvider)(App, Object.assign(context, {
48
+ ssr: false
49
+ })));
50
+ }
73
51
  const cost = end();
74
- onTiming(import_tracer.SSRTimings.USE_LOADER, cost);
52
+ onTiming(import_tracer.SSRTimings.PRERENDER, cost);
75
53
  } catch (e) {
76
- onError(e, import_tracer.SSRErrors.USE_LOADER);
54
+ const error = e;
55
+ onError(error, import_tracer.SSRErrors.PRERENDER);
77
56
  throw e;
78
57
  }
79
- Object.keys(loadersData).forEach((id) => {
80
- const data = loadersData[id];
81
- if (data._error) {
82
- onError(data._error, import_tracer.SSRErrors.USE_LOADER);
83
- delete data._error;
84
- }
85
- });
58
+ }
59
+ if (!context.loaderManager.hasPendingLoaders()) {
86
60
  return {
87
- loadersData,
88
61
  initialData: context.initialData,
89
- i18nData: context.__i18nData__,
90
- // todo: move to plugin state
91
- storeState: context === null || context === void 0 ? void 0 : (_context_store = context.store) === null || _context_store === void 0 ? void 0 : _context_store.getState()
62
+ i18nData: context.__i18nData__
92
63
  };
64
+ }
65
+ let loadersData = {};
66
+ try {
67
+ const end = (0, import_time.time)();
68
+ loadersData = await context.loaderManager.awaitPendingLoaders();
69
+ const cost = end();
70
+ onTiming(import_tracer.SSRTimings.USE_LOADER, cost);
71
+ } catch (e) {
72
+ onError(e, import_tracer.SSRErrors.USE_LOADER);
73
+ throw e;
74
+ }
75
+ Object.keys(loadersData).forEach((id) => {
76
+ const data = loadersData[id];
77
+ if (data._error) {
78
+ onError(data._error, import_tracer.SSRErrors.USE_LOADER);
79
+ delete data._error;
80
+ }
93
81
  });
82
+ return {
83
+ loadersData,
84
+ initialData: context.initialData,
85
+ i18nData: context.__i18nData__,
86
+ // todo: move to plugin state
87
+ storeState: context === null || context === void 0 ? void 0 : (_context_store = context.store) === null || _context_store === void 0 ? void 0 : _context_store.getState()
88
+ };
94
89
  };
95
90
  // Annotate the CommonJS export names for ESM import in node:
96
91
  0 && (module.exports = {
package/dist/cjs/index.js CHANGED
@@ -23,12 +23,16 @@ __export(src_exports, {
23
23
  createApp: () => import_core.createApp,
24
24
  defineConfig: () => import_core.defineConfig,
25
25
  defineRuntimeConfig: () => import_core.defineRuntimeConfig,
26
+ getMonitors: () => import_monitors.getMonitors,
27
+ getRequest: () => import_request.getRequest,
26
28
  isBrowser: () => import_common.isBrowser,
27
29
  useLoader: () => import_core.useLoader,
28
30
  useRuntimeContext: () => import_core.useRuntimeContext
29
31
  });
30
32
  module.exports = __toCommonJS(src_exports);
31
33
  var import_common = require("./common");
34
+ var import_monitors = require("./core/context/monitors");
35
+ var import_request = require("./core/context/request");
32
36
  var import_core = require("./core");
33
37
  // Annotate the CommonJS export names for ESM import in node:
34
38
  0 && (module.exports = {
@@ -37,6 +41,8 @@ var import_core = require("./core");
37
41
  createApp,
38
42
  defineConfig,
39
43
  defineRuntimeConfig,
44
+ getMonitors,
45
+ getRequest,
40
46
  isBrowser,
41
47
  useLoader,
42
48
  useRuntimeContext
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var react_server_exports = {};
20
+ __export(react_server_exports, {
21
+ getRequest: () => import_request.getRequest
22
+ });
23
+ module.exports = __toCommonJS(react_server_exports);
24
+ var import_request = require("./core/context/request");
25
+ // Annotate the CommonJS export names for ESM import in node:
26
+ 0 && (module.exports = {
27
+ getRequest
28
+ });
@@ -91,8 +91,7 @@ const routerPlugin = (userConfig = {}) => {
91
91
  ssrMode,
92
92
  props: {
93
93
  nonce
94
- },
95
- reporter
94
+ }
96
95
  }));
97
96
  routes = hooks.modifyRoutes.call(routes);
98
97
  const { query } = (0, import_remix_router.createStaticHandler)(routes, {
@@ -43,7 +43,7 @@ var import_remix_router = require("@modern-js/runtime-utils/remix-router");
43
43
  var import_router = require("@modern-js/runtime-utils/router");
44
44
  var import_DefaultNotFound = require("./DefaultNotFound");
45
45
  var import_DeferredDataScripts = __toESM(require("./DeferredDataScripts"));
46
- function getRouteComponents(routes, { globalApp, ssrMode, props, reporter }) {
46
+ function getRouteComponents(routes, { globalApp, ssrMode, props }) {
47
47
  const Layout = ({ Component, ...props2 }) => {
48
48
  const GlobalLayout = globalApp;
49
49
  if (!GlobalLayout) {
@@ -61,8 +61,7 @@ function getRouteComponents(routes, { globalApp, ssrMode, props, reporter }) {
61
61
  if (route.type === "nested") {
62
62
  const routeElement = (0, import_browser.renderNestedRoute)(route, {
63
63
  DeferredDataComponent: ssrMode === "stream" ? import_DeferredDataScripts.default : void 0,
64
- props,
65
- reporter
64
+ props
66
65
  });
67
66
  routeElements.push(routeElement);
68
67
  } else {
@@ -81,7 +80,7 @@ function getRouteComponents(routes, { globalApp, ssrMode, props, reporter }) {
81
80
  }, "*"));
82
81
  return routeElements;
83
82
  }
84
- function renderRoutes({ routesConfig, props, ssrMode, reporter }) {
83
+ function renderRoutes({ routesConfig, props, ssrMode }) {
85
84
  if (!routesConfig) {
86
85
  return null;
87
86
  }
@@ -92,8 +91,7 @@ function renderRoutes({ routesConfig, props, ssrMode, reporter }) {
92
91
  const routeElements = getRouteComponents(routes, {
93
92
  globalApp,
94
93
  ssrMode,
95
- props,
96
- reporter
94
+ props
97
95
  });
98
96
  return routeElements;
99
97
  }
@@ -0,0 +1 @@
1
+ export * from "@modern-js/runtime-utils/cache";
@@ -113,7 +113,7 @@ var ssrPlugin = function() {
113
113
  source: {
114
114
  alias: {
115
115
  // ensure that all packages use the same storage in @modern-js/runtime-utils/node
116
- "@modern-js/runtime-utils/node$": require.resolve("@modern-js/runtime-utils/node")
116
+ "@modern-js/runtime-utils/node$": require.resolve("@modern-js/runtime-utils/node").replace("".concat(path.sep, "cjs").concat(path.sep), "".concat(path.sep, "esm").concat(path.sep))
117
117
  }
118
118
  },
119
119
  tools: {
@@ -0,0 +1,40 @@
1
+ var defaultMonitors = {
2
+ counter: function counter(name) {
3
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
4
+ args[_key - 1] = arguments[_key];
5
+ }
6
+ },
7
+ info: function info(message) {
8
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
9
+ args[_key - 1] = arguments[_key];
10
+ }
11
+ },
12
+ debug: function debug(message) {
13
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
14
+ args[_key - 1] = arguments[_key];
15
+ }
16
+ },
17
+ trace: function trace(message) {
18
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
19
+ args[_key - 1] = arguments[_key];
20
+ }
21
+ },
22
+ warn: function warn(message) {
23
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
24
+ args[_key - 1] = arguments[_key];
25
+ }
26
+ },
27
+ error: function error(message) {
28
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
29
+ args[_key - 1] = arguments[_key];
30
+ }
31
+ },
32
+ timing: function timing(name, dur) {
33
+ for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
34
+ args[_key - 2] = arguments[_key];
35
+ }
36
+ }
37
+ };
38
+ export {
39
+ defaultMonitors
40
+ };
@@ -0,0 +1,7 @@
1
+ import { defaultMonitors } from "./default";
2
+ var getMonitors = function() {
3
+ return defaultMonitors;
4
+ };
5
+ export {
6
+ getMonitors
7
+ };
@@ -0,0 +1,9 @@
1
+ import { storage } from "@modern-js/runtime-utils/node";
2
+ import { defaultMonitors } from "./default";
3
+ var getMonitors = function() {
4
+ var storageContext = storage.useContext();
5
+ return storageContext.monitors || defaultMonitors;
6
+ };
7
+ export {
8
+ getMonitors
9
+ };
@@ -0,0 +1,6 @@
1
+ var getRequest = function() {
2
+ return new Request(location.href);
3
+ };
4
+ export {
5
+ getRequest
6
+ };
@@ -0,0 +1,8 @@
1
+ import { storage } from "@modern-js/runtime-utils/node";
2
+ var getRequest = function() {
3
+ var context = storage.useContext();
4
+ return context === null || context === void 0 ? void 0 : context.request;
5
+ };
6
+ export {
7
+ getRequest
8
+ };
@@ -5,6 +5,7 @@ import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
5
5
  import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
6
6
  import { _ as _type_of } from "@swc/helpers/_/_type_of";
7
7
  import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
8
+ import { storage } from "@modern-js/runtime-utils/node";
8
9
  import { getPathname, parseCookie, parseHeaders, parseQuery } from "@modern-js/runtime-utils/universal/request";
9
10
  import { getGlobalAppInit, getGlobalInternalRuntimeContext, getGlobalRSCRoot } from "../context";
10
11
  import { getInitialContext } from "../context/runtime";
@@ -75,129 +76,142 @@ var createRequestHandler = function() {
75
76
  return _ts_generator(this, function(_state) {
76
77
  requestHandler = function() {
77
78
  var _ref2 = _async_to_generator(function(request, options) {
78
- var _context_routerContext, _context_routerContext1, _context_routerContext2, Root, internalRuntimeContext, hooks, routeManifest, context, runBeforeRender, responseProxy, ssrContext, getRedirectResponse, initialData, _context_routerContext3, _context_ssrContext, errors, redirectResponse, htmlTemplate, response;
79
+ var headersData;
79
80
  return _ts_generator(this, function(_state2) {
80
- switch (_state2.label) {
81
- case 0:
82
- Root = createRoot();
83
- internalRuntimeContext = getGlobalInternalRuntimeContext();
84
- hooks = internalRuntimeContext.hooks;
85
- routeManifest = options.resource.routeManifest;
86
- context = getInitialContext(false, routeManifest);
87
- runBeforeRender = function() {
88
- var _ref3 = _async_to_generator(function(context2) {
89
- var result, init;
90
- return _ts_generator(this, function(_state3) {
91
- switch (_state3.label) {
92
- case 0:
93
- return [
94
- 4,
95
- hooks.onBeforeRender.call(context2)
96
- ];
97
- case 1:
98
- result = _state3.sent();
99
- if (typeof Response !== "undefined" && _instanceof(result, Response)) {
100
- return [
101
- 2,
102
- result
103
- ];
81
+ headersData = parseHeaders(request);
82
+ return [
83
+ 2,
84
+ storage.run({
85
+ headers: headersData,
86
+ request,
87
+ monitors: options.monitors
88
+ }, /* @__PURE__ */ _async_to_generator(function() {
89
+ var _context_routerContext, _context_routerContext1, _context_routerContext2, Root, internalRuntimeContext, hooks, routeManifest, context, runBeforeRender, responseProxy, ssrContext, getRedirectResponse, initialData, _context_routerContext3, _context_ssrContext, errors, redirectResponse, htmlTemplate, response;
90
+ return _ts_generator(this, function(_state3) {
91
+ switch (_state3.label) {
92
+ case 0:
93
+ Root = createRoot();
94
+ internalRuntimeContext = getGlobalInternalRuntimeContext();
95
+ hooks = internalRuntimeContext.hooks;
96
+ routeManifest = options.resource.routeManifest;
97
+ context = getInitialContext(false, routeManifest);
98
+ runBeforeRender = function() {
99
+ var _ref3 = _async_to_generator(function(context2) {
100
+ var result, init;
101
+ return _ts_generator(this, function(_state4) {
102
+ switch (_state4.label) {
103
+ case 0:
104
+ return [
105
+ 4,
106
+ hooks.onBeforeRender.call(context2)
107
+ ];
108
+ case 1:
109
+ result = _state4.sent();
110
+ if (typeof Response !== "undefined" && _instanceof(result, Response)) {
111
+ return [
112
+ 2,
113
+ result
114
+ ];
115
+ }
116
+ init = getGlobalAppInit();
117
+ return [
118
+ 2,
119
+ init === null || init === void 0 ? void 0 : init(context2)
120
+ ];
121
+ }
122
+ });
123
+ });
124
+ return function runBeforeRender2(context2) {
125
+ return _ref3.apply(this, arguments);
126
+ };
127
+ }();
128
+ responseProxy = {
129
+ headers: {},
130
+ code: -1
131
+ };
132
+ ssrContext = createSSRContext(request, _object_spread_props(_object_spread({}, options), {
133
+ responseProxy
134
+ }));
135
+ Object.assign(context, {
136
+ ssrContext,
137
+ isBrowser: false,
138
+ loaderManager: createLoaderManager({}, {
139
+ skipNonStatic: options.staticGenerate,
140
+ // if not static generate, only non-static loader can exec on prod env
141
+ skipStatic: process.env.NODE_ENV === "production" && !options.staticGenerate
142
+ })
143
+ });
144
+ getRedirectResponse = function(result) {
145
+ if (typeof Response !== "undefined" && // fix: ssg workflow doesn't inject Web Response
146
+ _instanceof(result, Response) && result.status >= 300 && result.status <= 399) {
147
+ var status = result.status;
148
+ var redirectUrl = result.headers.get("Location") || "/";
149
+ var ssrContext2 = context.ssrContext;
150
+ if (ssrContext2) {
151
+ return new Response(null, {
152
+ status,
153
+ headers: {
154
+ Location: redirectUrl
155
+ }
156
+ });
104
157
  }
105
- init = getGlobalAppInit();
106
- return [
107
- 2,
108
- init === null || init === void 0 ? void 0 : init(context2)
109
- ];
110
- }
111
- });
112
- });
113
- return function runBeforeRender2(context2) {
114
- return _ref3.apply(this, arguments);
115
- };
116
- }();
117
- responseProxy = {
118
- headers: {},
119
- code: -1
120
- };
121
- ssrContext = createSSRContext(request, _object_spread_props(_object_spread({}, options), {
122
- responseProxy
123
- }));
124
- Object.assign(context, {
125
- ssrContext,
126
- isBrowser: false,
127
- loaderManager: createLoaderManager({}, {
128
- skipNonStatic: options.staticGenerate,
129
- // if not static generate, only non-static loader can exec on prod env
130
- skipStatic: process.env.NODE_ENV === "production" && !options.staticGenerate
131
- })
132
- });
133
- getRedirectResponse = function(result) {
134
- if (typeof Response !== "undefined" && // fix: ssg workflow doesn't inject Web Response
135
- _instanceof(result, Response) && result.status >= 300 && result.status <= 399) {
136
- var status = result.status;
137
- var redirectUrl = result.headers.get("Location") || "/";
138
- var ssrContext2 = context.ssrContext;
139
- if (ssrContext2) {
140
- return new Response(null, {
141
- status,
142
- headers: {
143
- Location: redirectUrl
144
158
  }
159
+ return void 0;
160
+ };
161
+ return [
162
+ 4,
163
+ runBeforeRender(context)
164
+ ];
165
+ case 1:
166
+ initialData = _state3.sent();
167
+ if (((_context_routerContext = context.routerContext) === null || _context_routerContext === void 0 ? void 0 : _context_routerContext.statusCode) && ((_context_routerContext1 = context.routerContext) === null || _context_routerContext1 === void 0 ? void 0 : _context_routerContext1.statusCode) !== 200) {
168
+ ;
169
+ (_context_ssrContext = context.ssrContext) === null || _context_ssrContext === void 0 ? void 0 : _context_ssrContext.response.status((_context_routerContext3 = context.routerContext) === null || _context_routerContext3 === void 0 ? void 0 : _context_routerContext3.statusCode);
170
+ }
171
+ errors = Object.values(((_context_routerContext2 = context.routerContext) === null || _context_routerContext2 === void 0 ? void 0 : _context_routerContext2.errors) || {});
172
+ if (errors.length > 0) {
173
+ options.onError(errors[0], SSRErrors.LOADER_ERROR);
174
+ }
175
+ context.initialData = initialData;
176
+ redirectResponse = getRedirectResponse(initialData);
177
+ if (redirectResponse) {
178
+ return [
179
+ 2,
180
+ redirectResponse
181
+ ];
182
+ }
183
+ htmlTemplate = options.resource.htmlTemplate;
184
+ options.resource.htmlTemplate = htmlTemplate.replace("</head>", "".concat(CHUNK_CSS_PLACEHOLDER, "</head>"));
185
+ return [
186
+ 4,
187
+ handleRequest(request, Root, _object_spread_props(_object_spread({}, options), {
188
+ runtimeContext: context,
189
+ RSCRoot: (createRequestOptions === null || createRequestOptions === void 0 ? void 0 : createRequestOptions.enableRsc) && getGlobalRSCRoot()
190
+ }))
191
+ ];
192
+ case 2:
193
+ response = _state3.sent();
194
+ Object.entries(responseProxy.headers).forEach(function(param) {
195
+ var _param = _sliced_to_array(param, 2), key = _param[0], value = _param[1];
196
+ response.headers.set(key, value);
145
197
  });
146
- }
198
+ if (responseProxy.code !== -1) {
199
+ return [
200
+ 2,
201
+ new Response(response.body, {
202
+ status: responseProxy.code,
203
+ headers: response.headers
204
+ })
205
+ ];
206
+ }
207
+ return [
208
+ 2,
209
+ response
210
+ ];
147
211
  }
148
- return void 0;
149
- };
150
- return [
151
- 4,
152
- runBeforeRender(context)
153
- ];
154
- case 1:
155
- initialData = _state2.sent();
156
- if (((_context_routerContext = context.routerContext) === null || _context_routerContext === void 0 ? void 0 : _context_routerContext.statusCode) && ((_context_routerContext1 = context.routerContext) === null || _context_routerContext1 === void 0 ? void 0 : _context_routerContext1.statusCode) !== 200) {
157
- ;
158
- (_context_ssrContext = context.ssrContext) === null || _context_ssrContext === void 0 ? void 0 : _context_ssrContext.response.status((_context_routerContext3 = context.routerContext) === null || _context_routerContext3 === void 0 ? void 0 : _context_routerContext3.statusCode);
159
- }
160
- errors = Object.values(((_context_routerContext2 = context.routerContext) === null || _context_routerContext2 === void 0 ? void 0 : _context_routerContext2.errors) || {});
161
- if (errors.length > 0) {
162
- options.onError(errors[0], SSRErrors.LOADER_ERROR);
163
- }
164
- context.initialData = initialData;
165
- redirectResponse = getRedirectResponse(initialData);
166
- if (redirectResponse) {
167
- return [
168
- 2,
169
- redirectResponse
170
- ];
171
- }
172
- htmlTemplate = options.resource.htmlTemplate;
173
- options.resource.htmlTemplate = htmlTemplate.replace("</head>", "".concat(CHUNK_CSS_PLACEHOLDER, "</head>"));
174
- return [
175
- 4,
176
- handleRequest(request, Root, _object_spread_props(_object_spread({}, options), {
177
- runtimeContext: context,
178
- RSCRoot: (createRequestOptions === null || createRequestOptions === void 0 ? void 0 : createRequestOptions.enableRsc) && getGlobalRSCRoot()
179
- }))
180
- ];
181
- case 2:
182
- response = _state2.sent();
183
- Object.entries(responseProxy.headers).forEach(function(param) {
184
- var _param = _sliced_to_array(param, 2), key = _param[0], value = _param[1];
185
- response.headers.set(key, value);
186
212
  });
187
- if (responseProxy.code !== -1) {
188
- return [
189
- 2,
190
- new Response(response.body, {
191
- status: responseProxy.code,
192
- headers: response.headers
193
- })
194
- ];
195
- }
196
- return [
197
- 2,
198
- response
199
- ];
200
- }
213
+ }))
214
+ ];
201
215
  });
202
216
  });
203
217
  return function requestHandler2(request, options) {