@modern-js/runtime 2.65.2 → 2.65.4

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 (63) hide show
  1. package/dist/cjs/cli/code.js +1 -0
  2. package/dist/cjs/cli/template.js +7 -3
  3. package/dist/cjs/core/browser/index.js +1 -3
  4. package/dist/cjs/core/compat/hooks.js +2 -2
  5. package/dist/cjs/core/compat/requestContext.js +48 -0
  6. package/dist/cjs/core/compatible.js +2 -14
  7. package/dist/cjs/core/context/index.js +6 -0
  8. package/dist/cjs/core/context/monitors/default.js +5 -10
  9. package/dist/cjs/core/context/response/index.js +43 -0
  10. package/dist/cjs/core/context/response/index.server.js +62 -0
  11. package/dist/cjs/core/plugin/index.js +2 -0
  12. package/dist/cjs/core/server/requestHandler.js +10 -8
  13. package/dist/cjs/index.js +7 -0
  14. package/dist/cjs/react-server.js +12 -2
  15. package/dist/cjs/router/cli/code/templates.js +3 -1
  16. package/dist/cjs/router/cli/handler.js +1 -0
  17. package/dist/esm/cli/code.js +1 -0
  18. package/dist/esm/cli/template.js +4 -4
  19. package/dist/esm/core/browser/index.js +3 -4
  20. package/dist/esm/core/compat/hooks.js +2 -2
  21. package/dist/esm/core/compat/requestContext.js +25 -0
  22. package/dist/esm/core/compatible.js +5 -16
  23. package/dist/esm/core/context/index.js +5 -0
  24. package/dist/esm/core/context/monitors/default.js +5 -25
  25. package/dist/esm/core/context/response/index.js +16 -0
  26. package/dist/esm/core/context/response/index.server.js +41 -0
  27. package/dist/esm/core/plugin/index.js +3 -1
  28. package/dist/esm/core/server/requestHandler.js +12 -10
  29. package/dist/esm/index.js +4 -0
  30. package/dist/esm/react-server.js +7 -1
  31. package/dist/esm/router/cli/code/templates.js +3 -3
  32. package/dist/esm/router/cli/handler.js +1 -0
  33. package/dist/esm-node/cli/code.js +1 -0
  34. package/dist/esm-node/cli/template.js +7 -3
  35. package/dist/esm-node/core/browser/index.js +1 -3
  36. package/dist/esm-node/core/compat/hooks.js +2 -2
  37. package/dist/esm-node/core/compat/requestContext.js +23 -0
  38. package/dist/esm-node/core/compatible.js +2 -14
  39. package/dist/esm-node/core/context/index.js +5 -0
  40. package/dist/esm-node/core/context/monitors/default.js +5 -10
  41. package/dist/esm-node/core/context/response/index.js +16 -0
  42. package/dist/esm-node/core/context/response/index.server.js +35 -0
  43. package/dist/esm-node/core/plugin/index.js +2 -0
  44. package/dist/esm-node/core/server/requestHandler.js +10 -8
  45. package/dist/esm-node/index.js +4 -0
  46. package/dist/esm-node/react-server.js +7 -1
  47. package/dist/esm-node/router/cli/code/templates.js +3 -1
  48. package/dist/esm-node/router/cli/handler.js +1 -0
  49. package/dist/types/cli/template.d.ts +2 -1
  50. package/dist/types/core/compat/requestContext.d.ts +27 -0
  51. package/dist/types/core/config.d.ts +1 -1
  52. package/dist/types/core/context/index.d.ts +2 -0
  53. package/dist/types/core/context/response/index.d.ts +4 -0
  54. package/dist/types/core/context/response/index.server.d.ts +7 -0
  55. package/dist/types/core/context/runtime.d.ts +1 -0
  56. package/dist/types/core/plugin/base.d.ts +1 -1
  57. package/dist/types/core/plugin/index.d.ts +1 -1
  58. package/dist/types/core/plugin/types.d.ts +2 -1
  59. package/dist/types/core/types.d.ts +4 -17
  60. package/dist/types/index.d.ts +1 -0
  61. package/dist/types/react-server.d.ts +2 -0
  62. package/dist/types/router/cli/code/templates.d.ts +2 -1
  63. package/package.json +12 -12
@@ -132,6 +132,7 @@ const generateCode = async (entrypoints, appContext, config, hooks) => {
132
132
  let contextCode = "";
133
133
  if (!config.server.rsc) {
134
134
  contextCode = template.runtimeGlobalContext({
135
+ entryName,
135
136
  srcDirectory,
136
137
  internalSrcAlias,
137
138
  metaName,
@@ -110,7 +110,8 @@ import './${import_constants.ENTRY_POINT_RUNTIME_REGISTER_FILE_NAME}';
110
110
  `;
111
111
  const getImportRuntimeConfigCode = (srcDirectory, internalSrcAlias, runtimeConfigFile) => {
112
112
  if (runtimeConfigFile && (0, import_utils.findExists)(import_utils.JS_EXTENSIONS.map((ext) => import_path.default.resolve(srcDirectory, `${runtimeConfigFile}${ext}`)))) {
113
- return `import runtimeConfig from '${internalSrcAlias}/${runtimeConfigFile}';`;
113
+ return `import modernRuntime from '${internalSrcAlias}/${runtimeConfigFile}';
114
+ const runtimeConfig = typeof modernRuntime === 'function' ? modernRuntime(getCurrentEntryName()) : modernRuntime`;
114
115
  }
115
116
  return `let runtimeConfig;`;
116
117
  };
@@ -119,7 +120,8 @@ const getRegisterRuntimePluginCode = (entryName, name, config) => {
119
120
  return `plugins.push(${name}Plugin(mergeConfig(${JSON.stringify(config)}, (runtimeConfig || {})['${configName}'], ((runtimeConfig || {})['${configName}ByEntries'] || {})['${entryName}'], (getGlobalAppConfig() || {})['${configName}'])));`;
120
121
  };
121
122
  const runtimeRegister = ({ entryName, srcDirectory, internalSrcAlias, metaName, runtimeConfigFile, runtimePlugins }) => `import { registerPlugin, mergeConfig } from '@${metaName}/runtime/plugin';
122
- import { getGlobalAppConfig, getGlobalLayoutApp } from '@${metaName}/runtime/context';
123
+ import { getGlobalAppConfig, getGlobalLayoutApp, getCurrentEntryName } from '@${metaName}/runtime/context';
124
+
123
125
  ${getImportRuntimeConfigCode(srcDirectory, internalSrcAlias, runtimeConfigFile)}
124
126
 
125
127
  const plugins = [];
@@ -130,13 +132,15 @@ ${getRegisterRuntimePluginCode(entryName, name, config)}
130
132
  `).join("\n")}
131
133
  registerPlugin(plugins, runtimeConfig);
132
134
  `;
133
- const runtimeGlobalContext = ({ srcDirectory, internalSrcAlias, metaName, entry, customEntry }) => {
135
+ const runtimeGlobalContext = ({ entryName, srcDirectory, internalSrcAlias, metaName, entry, customEntry }) => {
134
136
  return `import { setGlobalContext } from '@${metaName}/runtime/context'
135
137
 
136
138
  import App from '${// We need to get the path of App.tsx here, but the entry is `src/entry.tsx`
137
139
  (0, import_utils.formatImportPath)(customEntry ? entry.replace(/entry\.[tj]sx/, "App").replace(srcDirectory, internalSrcAlias) : entry.replace(srcDirectory, internalSrcAlias).replace(/\.[tj]sx/, ""))}';
138
140
 
141
+ const entryName = '${entryName}';
139
142
  setGlobalContext({
143
+ entryName,
140
144
  App,
141
145
  });`;
142
146
  };
@@ -112,9 +112,7 @@ async function render(App, id) {
112
112
  }),
113
113
  // garfish plugin params
114
114
  _internalRouterBaseName: App.props.basename,
115
- ...{
116
- ssrContext: ssrData.context
117
- }
115
+ ssrContext: ssrData.context
118
116
  });
119
117
  context.initialData = (_ssrData_data1 = ssrData.data) === null || _ssrData_data1 === void 0 ? void 0 : _ssrData_data1.initialData;
120
118
  const initialData = await runBeforeRender(context);
@@ -67,8 +67,8 @@ function getHookRunners(runtimeContext) {
67
67
  pickContext: (context) => {
68
68
  return hooks.pickContext.call(context);
69
69
  },
70
- modifyRuntimeConfig: (config) => {
71
- return hooks.modifyRuntimeConfig.call(config);
70
+ config: () => {
71
+ return hooks.config.call();
72
72
  }
73
73
  };
74
74
  }
@@ -0,0 +1,48 @@
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 requestContext_exports = {};
20
+ __export(requestContext_exports, {
21
+ makeRequestContext: () => makeRequestContext,
22
+ requestContextPlugin: () => requestContextPlugin
23
+ });
24
+ module.exports = __toCommonJS(requestContext_exports);
25
+ const makeRequestContext = (context) => {
26
+ const baseSSRContext = context.ssrContext;
27
+ const requestContext = baseSSRContext ? {
28
+ isBrowser: context.isBrowser,
29
+ request: baseSSRContext.request || {},
30
+ response: baseSSRContext.response || {},
31
+ logger: baseSSRContext.logger || {}
32
+ } : {};
33
+ return requestContext;
34
+ };
35
+ const requestContextPlugin = () => ({
36
+ name: "@modern-js/runtime-plugin-request-context",
37
+ setup(api) {
38
+ api.onBeforeRender((context) => {
39
+ const requestContext = makeRequestContext(context);
40
+ context.context = requestContext;
41
+ });
42
+ }
43
+ });
44
+ // Annotate the CommonJS export names for ESM import in node:
45
+ 0 && (module.exports = {
46
+ makeRequestContext,
47
+ requestContextPlugin
48
+ });
@@ -111,9 +111,7 @@ const bootstrap = async (BootApp, id, root, ReactDOM) => {
111
111
  loaderManager: (0, import_loaderManager.createLoaderManager)(initialLoadersState, {
112
112
  skipStatic: true
113
113
  }),
114
- ...ssrData ? {
115
- ssrContext: ssrData === null || ssrData === void 0 ? void 0 : ssrData.context
116
- } : {}
114
+ ssrContext: (ssrData === null || ssrData === void 0 ? void 0 : ssrData.context) || {}
117
115
  });
118
116
  context.initialData = ssrData === null || ssrData === void 0 ? void 0 : (_ssrData_data1 = ssrData.data) === null || _ssrData_data1 === void 0 ? void 0 : _ssrData_data1.initialData;
119
117
  const initialData = await runBeforeRender(context);
@@ -173,19 +171,9 @@ const bootstrap = async (BootApp, id, root, ReactDOM) => {
173
171
  const useRuntimeContext = () => {
174
172
  var _context_ssrContext, _context_ssrContext1;
175
173
  const context = (0, import_react.useContext)(import_runtime.RuntimeReactContext);
176
- const baseSSRContext = context.ssrContext;
177
- const tSSRContext = baseSSRContext ? {
178
- isBrowser: context.isBrowser,
179
- request: baseSSRContext.request || {},
180
- response: baseSSRContext.response || {},
181
- logger: baseSSRContext.logger || {},
182
- getInitData: () => {
183
- return Object.freeze(context.initialData);
184
- }
185
- } : {};
186
174
  const pickedContext = {
187
175
  ...context,
188
- context: tSSRContext,
176
+ context: context.context || {},
189
177
  request: (_context_ssrContext = context.ssrContext) === null || _context_ssrContext === void 0 ? void 0 : _context_ssrContext.request,
190
178
  response: (_context_ssrContext1 = context.ssrContext) === null || _context_ssrContext1 === void 0 ? void 0 : _context_ssrContext1.response
191
179
  };
@@ -19,6 +19,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var context_exports = {};
20
20
  __export(context_exports, {
21
21
  RuntimeReactContext: () => import_runtime.RuntimeReactContext,
22
+ getCurrentEntryName: () => getCurrentEntryName,
22
23
  getGlobalApp: () => getGlobalApp,
23
24
  getGlobalAppConfig: () => getGlobalAppConfig,
24
25
  getGlobalAppInit: () => getGlobalAppInit,
@@ -34,6 +35,7 @@ module.exports = __toCommonJS(context_exports);
34
35
  var import_runtime = require("./runtime");
35
36
  const globalContext = {};
36
37
  function setGlobalContext(context) {
38
+ globalContext.entryName = context.entryName;
37
39
  globalContext.App = context.App;
38
40
  globalContext.routes = context.routes;
39
41
  globalContext.appInit = context.appInit;
@@ -41,6 +43,9 @@ function setGlobalContext(context) {
41
43
  globalContext.layoutApp = context.layoutApp;
42
44
  globalContext.RSCRoot = context.RSCRoot;
43
45
  }
46
+ function getCurrentEntryName() {
47
+ return globalContext.entryName;
48
+ }
44
49
  function getGlobalRSCRoot() {
45
50
  return globalContext.RSCRoot;
46
51
  }
@@ -70,6 +75,7 @@ function getGlobalLayoutApp() {
70
75
  // Annotate the CommonJS export names for ESM import in node:
71
76
  0 && (module.exports = {
72
77
  RuntimeReactContext,
78
+ getCurrentEntryName,
73
79
  getGlobalApp,
74
80
  getGlobalAppConfig,
75
81
  getGlobalAppInit,
@@ -24,16 +24,11 @@ module.exports = __toCommonJS(default_exports);
24
24
  const defaultMonitors = {
25
25
  counter(name, ...args) {
26
26
  },
27
- info(message, ...args) {
28
- },
29
- debug(message, ...args) {
30
- },
31
- trace(message, ...args) {
32
- },
33
- warn(message, ...args) {
34
- },
35
- error(message, ...args) {
36
- },
27
+ info: console.info,
28
+ debug: console.debug,
29
+ trace: console.trace,
30
+ warn: console.warn,
31
+ error: console.error,
37
32
  timing(name, dur, ...args) {
38
33
  }
39
34
  };
@@ -0,0 +1,43 @@
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 response_exports = {};
20
+ __export(response_exports, {
21
+ getResponseProxy: () => getResponseProxy,
22
+ redirect: () => redirect,
23
+ setHeaders: () => setHeaders,
24
+ setStatus: () => setStatus
25
+ });
26
+ module.exports = __toCommonJS(response_exports);
27
+ const getResponseProxy = () => {
28
+ return null;
29
+ };
30
+ const setHeaders = (headers) => {
31
+ };
32
+ const setStatus = (status) => {
33
+ };
34
+ const redirect = (url, init) => {
35
+ console.warn(`You should not use this API in the browser, please use the router's redirect or useNavigate method.`);
36
+ };
37
+ // Annotate the CommonJS export names for ESM import in node:
38
+ 0 && (module.exports = {
39
+ getResponseProxy,
40
+ redirect,
41
+ setHeaders,
42
+ setStatus
43
+ });
@@ -0,0 +1,62 @@
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 index_server_exports = {};
20
+ __export(index_server_exports, {
21
+ getResponseProxy: () => getResponseProxy,
22
+ redirect: () => redirect,
23
+ setHeaders: () => setHeaders,
24
+ setStatus: () => setStatus
25
+ });
26
+ module.exports = __toCommonJS(index_server_exports);
27
+ var import_node = require("@modern-js/runtime-utils/node");
28
+ const getResponseProxy = () => {
29
+ const context = import_node.storage.useContext();
30
+ return context === null || context === void 0 ? void 0 : context.responseProxy;
31
+ };
32
+ const setHeaders = (headers) => {
33
+ const responseProxy = getResponseProxy();
34
+ Object.entries(headers).forEach(([key, value]) => {
35
+ responseProxy.headers[key] = value;
36
+ });
37
+ };
38
+ const setStatus = (status) => {
39
+ const responseProxy = getResponseProxy();
40
+ responseProxy.status = status;
41
+ };
42
+ const redirect = (url, init) => {
43
+ var _init_status;
44
+ const status = init === void 0 ? 307 : typeof init === "number" ? init : (_init_status = init.status) !== null && _init_status !== void 0 ? _init_status : 307;
45
+ var _init_headers;
46
+ const headers = init === void 0 ? {} : typeof init === "number" ? {} : (_init_headers = init.headers) !== null && _init_headers !== void 0 ? _init_headers : {};
47
+ setStatus(status);
48
+ setHeaders({
49
+ Location: url,
50
+ ...init && typeof init === "object" ? Object.fromEntries(Object.entries(headers).map(([k, v]) => [
51
+ k,
52
+ String(v)
53
+ ])) : {}
54
+ });
55
+ };
56
+ // Annotate the CommonJS export names for ESM import in node:
57
+ 0 && (module.exports = {
58
+ getResponseProxy,
59
+ redirect,
60
+ setHeaders,
61
+ setStatus
62
+ });
@@ -26,12 +26,14 @@ var import_runtime = require("@modern-js/plugin-v2/runtime");
26
26
  var import_merge = require("@modern-js/runtime-utils/merge");
27
27
  var import_compat = require("../compat");
28
28
  var import_hooks = require("../compat/hooks");
29
+ var import_requestContext = require("../compat/requestContext");
29
30
  var import_context = require("../context");
30
31
  function registerPlugin(internalPlugins, runtimeConfig) {
31
32
  const { plugins = [] } = runtimeConfig || {};
32
33
  const { runtimeContext } = import_runtime.runtime.run({
33
34
  plugins: [
34
35
  (0, import_compat.compatPlugin)(),
36
+ (0, import_requestContext.requestContextPlugin)(),
35
37
  ...internalPlugins,
36
38
  ...plugins
37
39
  ],
@@ -68,6 +68,7 @@ function createSSRContext(request, options) {
68
68
  params,
69
69
  headers: headersData,
70
70
  host,
71
+ referer: headers.get("referer"),
71
72
  raw: request
72
73
  },
73
74
  response: {
@@ -75,7 +76,7 @@ function createSSRContext(request, options) {
75
76
  responseProxy.headers[key] = value;
76
77
  },
77
78
  status(code) {
78
- responseProxy.code = code;
79
+ responseProxy.status = code;
79
80
  },
80
81
  locals: locals || {}
81
82
  },
@@ -89,10 +90,15 @@ function createSSRContext(request, options) {
89
90
  const createRequestHandler = async (handleRequest, createRequestOptions) => {
90
91
  const requestHandler = async (request, options) => {
91
92
  const headersData = (0, import_request.parseHeaders)(request);
93
+ const responseProxy = {
94
+ headers: {},
95
+ status: -1
96
+ };
92
97
  return import_node.storage.run({
93
98
  headers: headersData,
94
99
  request,
95
- monitors: options.monitors
100
+ monitors: options.monitors,
101
+ responseProxy
96
102
  }, async () => {
97
103
  var _context_routerContext, _context_routerContext1, _context_routerContext2;
98
104
  const Root = (0, import_react.createRoot)();
@@ -108,10 +114,6 @@ const createRequestHandler = async (handleRequest, createRequestOptions) => {
108
114
  const init = (0, import_context.getGlobalAppInit)();
109
115
  return init === null || init === void 0 ? void 0 : init(context2);
110
116
  };
111
- const responseProxy = {
112
- headers: {},
113
- code: -1
114
- };
115
117
  const ssrContext = createSSRContext(request, {
116
118
  ...options,
117
119
  responseProxy
@@ -166,9 +168,9 @@ const createRequestHandler = async (handleRequest, createRequestOptions) => {
166
168
  Object.entries(responseProxy.headers).forEach(([key, value]) => {
167
169
  response.headers.set(key, value);
168
170
  });
169
- if (responseProxy.code !== -1) {
171
+ if (responseProxy.status !== -1) {
170
172
  return new Response(response.body, {
171
- status: responseProxy.code,
173
+ status: responseProxy.status,
172
174
  headers: response.headers
173
175
  });
174
176
  }
package/dist/cjs/index.js CHANGED
@@ -26,6 +26,9 @@ __export(src_exports, {
26
26
  getMonitors: () => import_monitors.getMonitors,
27
27
  getRequest: () => import_request.getRequest,
28
28
  isBrowser: () => import_common.isBrowser,
29
+ redirect: () => import_response.redirect,
30
+ setHeaders: () => import_response.setHeaders,
31
+ setStatus: () => import_response.setStatus,
29
32
  useLoader: () => import_core.useLoader,
30
33
  useRuntimeContext: () => import_core.useRuntimeContext
31
34
  });
@@ -33,6 +36,7 @@ module.exports = __toCommonJS(src_exports);
33
36
  var import_common = require("./common");
34
37
  var import_monitors = require("./core/context/monitors");
35
38
  var import_request = require("./core/context/request");
39
+ var import_response = require("./core/context/response");
36
40
  var import_core = require("./core");
37
41
  // Annotate the CommonJS export names for ESM import in node:
38
42
  0 && (module.exports = {
@@ -44,6 +48,9 @@ var import_core = require("./core");
44
48
  getMonitors,
45
49
  getRequest,
46
50
  isBrowser,
51
+ redirect,
52
+ setHeaders,
53
+ setStatus,
47
54
  useLoader,
48
55
  useRuntimeContext
49
56
  });
@@ -18,11 +18,21 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var react_server_exports = {};
20
20
  __export(react_server_exports, {
21
- getRequest: () => import_request.getRequest
21
+ getMonitors: () => import_monitors.getMonitors,
22
+ getRequest: () => import_request.getRequest,
23
+ redirect: () => import_response.redirect,
24
+ setHeaders: () => import_response.setHeaders,
25
+ setStatus: () => import_response.setStatus
22
26
  });
23
27
  module.exports = __toCommonJS(react_server_exports);
24
28
  var import_request = require("./core/context/request");
29
+ var import_monitors = require("./core/context/monitors");
30
+ var import_response = require("./core/context/response");
25
31
  // Annotate the CommonJS export names for ESM import in node:
26
32
  0 && (module.exports = {
27
- getRequest
33
+ getMonitors,
34
+ getRequest,
35
+ redirect,
36
+ setHeaders,
37
+ setStatus
28
38
  });
@@ -398,7 +398,7 @@ function ssrLoaderCombinedModule(entrypoints, entrypoint, config, appContext) {
398
398
  }
399
399
  return null;
400
400
  }
401
- const runtimeGlobalContext = async ({ metaName, srcDirectory, nestedRoutesEntry, internalSrcAlias, globalApp }) => {
401
+ const runtimeGlobalContext = async ({ entryName, metaName, srcDirectory, nestedRoutesEntry, internalSrcAlias, globalApp }) => {
402
402
  const imports = [
403
403
  `import { setGlobalContext } from '@${metaName}/runtime/context';`
404
404
  ];
@@ -444,7 +444,9 @@ const runtimeGlobalContext = async ({ metaName, srcDirectory, nestedRoutesEntry,
444
444
 
445
445
  import { routes } from './routes';
446
446
 
447
+ const entryName = '${entryName}';
447
448
  setGlobalContext({
449
+ entryName,
448
450
  layoutApp,
449
451
  routes,
450
452
  appInit,
@@ -54,6 +54,7 @@ async function handleGeneratorEntryCode(api, entrypoints) {
54
54
  if (entrypoint.nestedRoutesEntry || entrypoint.pageRoutesEntry) {
55
55
  var _entrypoint_fileSystemRoutes;
56
56
  generatorRegisterCode(internalDirectory, entrypoint.entryName, await templates.runtimeGlobalContext({
57
+ entryName: entrypoint.entryName,
57
58
  metaName: appContext.metaName,
58
59
  srcDirectory: appContext.srcDirectory,
59
60
  nestedRoutesEntry: entrypoint.nestedRoutesEntry,
@@ -185,6 +185,7 @@ var generateCode = function() {
185
185
  12
186
186
  ];
187
187
  contextCode = template.runtimeGlobalContext({
188
+ entryName,
188
189
  srcDirectory,
189
190
  internalSrcAlias,
190
191
  metaName,
@@ -32,7 +32,7 @@ var getImportRuntimeConfigCode = function(srcDirectory, internalSrcAlias, runtim
32
32
  if (runtimeConfigFile && findExists(JS_EXTENSIONS.map(function(ext) {
33
33
  return path.resolve(srcDirectory, "".concat(runtimeConfigFile).concat(ext));
34
34
  }))) {
35
- return "import runtimeConfig from '".concat(internalSrcAlias, "/").concat(runtimeConfigFile, "';");
35
+ return "import modernRuntime from '".concat(internalSrcAlias, "/").concat(runtimeConfigFile, "';\nconst runtimeConfig = typeof modernRuntime === 'function' ? modernRuntime(getCurrentEntryName()) : modernRuntime");
36
36
  }
37
37
  return "let runtimeConfig;";
38
38
  };
@@ -42,14 +42,14 @@ var getRegisterRuntimePluginCode = function(entryName, name, config) {
42
42
  };
43
43
  var runtimeRegister = function(param) {
44
44
  var entryName = param.entryName, srcDirectory = param.srcDirectory, internalSrcAlias = param.internalSrcAlias, metaName = param.metaName, runtimeConfigFile = param.runtimeConfigFile, runtimePlugins = param.runtimePlugins;
45
- return "import { registerPlugin, mergeConfig } from '@".concat(metaName, "/runtime/plugin';\nimport { getGlobalAppConfig, getGlobalLayoutApp } from '@").concat(metaName, "/runtime/context';\n").concat(getImportRuntimeConfigCode(srcDirectory, internalSrcAlias, runtimeConfigFile), "\n\nconst plugins = [];\n\n").concat(runtimePlugins.map(function(param2) {
45
+ return "import { registerPlugin, mergeConfig } from '@".concat(metaName, "/runtime/plugin';\nimport { getGlobalAppConfig, getGlobalLayoutApp, getCurrentEntryName } from '@").concat(metaName, "/runtime/context';\n\n").concat(getImportRuntimeConfigCode(srcDirectory, internalSrcAlias, runtimeConfigFile), "\n\nconst plugins = [];\n\n").concat(runtimePlugins.map(function(param2) {
46
46
  var name = param2.name, path2 = param2.path, config = param2.config;
47
47
  return "import { ".concat(name, "Plugin } from '").concat(path2, "';\n\n").concat(getRegisterRuntimePluginCode(entryName, name, config), "\n");
48
48
  }).join("\n"), "\nregisterPlugin(plugins, runtimeConfig);\n");
49
49
  };
50
50
  var runtimeGlobalContext = function(param) {
51
- var srcDirectory = param.srcDirectory, internalSrcAlias = param.internalSrcAlias, metaName = param.metaName, entry = param.entry, customEntry = param.customEntry;
52
- return "import { setGlobalContext } from '@".concat(metaName, "/runtime/context'\n\nimport App from '").concat(formatImportPath(customEntry ? entry.replace(/entry\.[tj]sx/, "App").replace(srcDirectory, internalSrcAlias) : entry.replace(srcDirectory, internalSrcAlias).replace(/\.[tj]sx/, "")), "';\n\nsetGlobalContext({\n App,\n});");
51
+ var entryName = param.entryName, srcDirectory = param.srcDirectory, internalSrcAlias = param.internalSrcAlias, metaName = param.metaName, entry = param.entry, customEntry = param.customEntry;
52
+ return "import { setGlobalContext } from '@".concat(metaName, "/runtime/context'\n\nimport App from '").concat(formatImportPath(customEntry ? entry.replace(/entry\.[tj]sx/, "App").replace(srcDirectory, internalSrcAlias) : entry.replace(srcDirectory, internalSrcAlias).replace(/\.[tj]sx/, "")), "';\n\nconst entryName = '").concat(entryName, "';\nsetGlobalContext({\n entryName,\n App,\n});");
53
53
  };
54
54
  var runtimeGlobalContextForRSCServer = function(param) {
55
55
  var metaName = param.metaName;
@@ -133,15 +133,14 @@ function _render() {
133
133
  res[key] = loaderData;
134
134
  return res;
135
135
  }, {});
136
- Object.assign(context, _object_spread({
136
+ Object.assign(context, {
137
137
  loaderManager: createLoaderManager(initialLoadersState, {
138
138
  skipStatic: true
139
139
  }),
140
140
  // garfish plugin params
141
- _internalRouterBaseName: App.props.basename
142
- }, {
141
+ _internalRouterBaseName: App.props.basename,
143
142
  ssrContext: ssrData.context
144
- }));
143
+ });
145
144
  context.initialData = (_ssrData_data1 = ssrData.data) === null || _ssrData_data1 === void 0 ? void 0 : _ssrData_data1.initialData;
146
145
  return [
147
146
  4,
@@ -76,8 +76,8 @@ function getHookRunners(runtimeContext) {
76
76
  pickContext: function(context) {
77
77
  return hooks.pickContext.call(context);
78
78
  },
79
- modifyRuntimeConfig: function(config) {
80
- return hooks.modifyRuntimeConfig.call(config);
79
+ config: function() {
80
+ return hooks.config.call();
81
81
  }
82
82
  };
83
83
  }
@@ -0,0 +1,25 @@
1
+ var makeRequestContext = function(context) {
2
+ var baseSSRContext = context.ssrContext;
3
+ var requestContext = baseSSRContext ? {
4
+ isBrowser: context.isBrowser,
5
+ request: baseSSRContext.request || {},
6
+ response: baseSSRContext.response || {},
7
+ logger: baseSSRContext.logger || {}
8
+ } : {};
9
+ return requestContext;
10
+ };
11
+ var requestContextPlugin = function() {
12
+ return {
13
+ name: "@modern-js/runtime-plugin-request-context",
14
+ setup: function setup(api) {
15
+ api.onBeforeRender(function(context) {
16
+ var requestContext = makeRequestContext(context);
17
+ context.context = requestContext;
18
+ });
19
+ }
20
+ };
21
+ };
22
+ export {
23
+ makeRequestContext,
24
+ requestContextPlugin
25
+ };
@@ -106,13 +106,12 @@ var bootstrap = function() {
106
106
  res[key] = loaderData;
107
107
  return res;
108
108
  }, {});
109
- Object.assign(context, _object_spread({
109
+ Object.assign(context, {
110
110
  loaderManager: createLoaderManager(initialLoadersState, {
111
111
  skipStatic: true
112
- })
113
- }, ssrData ? {
114
- ssrContext: ssrData === null || ssrData === void 0 ? void 0 : ssrData.context
115
- } : {}));
112
+ }),
113
+ ssrContext: (ssrData === null || ssrData === void 0 ? void 0 : ssrData.context) || {}
114
+ });
116
115
  context.initialData = ssrData === null || ssrData === void 0 ? void 0 : (_ssrData_data1 = ssrData.data) === null || _ssrData_data1 === void 0 ? void 0 : _ssrData_data1.initialData;
117
116
  return [
118
117
  4,
@@ -195,18 +194,8 @@ var bootstrap = function() {
195
194
  var useRuntimeContext = function() {
196
195
  var _context_ssrContext, _context_ssrContext1;
197
196
  var context = useContext(RuntimeReactContext);
198
- var baseSSRContext = context.ssrContext;
199
- var tSSRContext = baseSSRContext ? {
200
- isBrowser: context.isBrowser,
201
- request: baseSSRContext.request || {},
202
- response: baseSSRContext.response || {},
203
- logger: baseSSRContext.logger || {},
204
- getInitData: function() {
205
- return Object.freeze(context.initialData);
206
- }
207
- } : {};
208
197
  var pickedContext = _object_spread_props(_object_spread({}, context), {
209
- context: tSSRContext,
198
+ context: context.context || {},
210
199
  request: (_context_ssrContext = context.ssrContext) === null || _context_ssrContext === void 0 ? void 0 : _context_ssrContext.request,
211
200
  response: (_context_ssrContext1 = context.ssrContext) === null || _context_ssrContext1 === void 0 ? void 0 : _context_ssrContext1.response
212
201
  });
@@ -1,6 +1,7 @@
1
1
  import { RuntimeReactContext, getInitialContext } from "./runtime";
2
2
  var globalContext = {};
3
3
  function setGlobalContext(context) {
4
+ globalContext.entryName = context.entryName;
4
5
  globalContext.App = context.App;
5
6
  globalContext.routes = context.routes;
6
7
  globalContext.appInit = context.appInit;
@@ -8,6 +9,9 @@ function setGlobalContext(context) {
8
9
  globalContext.layoutApp = context.layoutApp;
9
10
  globalContext.RSCRoot = context.RSCRoot;
10
11
  }
12
+ function getCurrentEntryName() {
13
+ return globalContext.entryName;
14
+ }
11
15
  function getGlobalRSCRoot() {
12
16
  return globalContext.RSCRoot;
13
17
  }
@@ -36,6 +40,7 @@ function getGlobalLayoutApp() {
36
40
  }
37
41
  export {
38
42
  RuntimeReactContext,
43
+ getCurrentEntryName,
39
44
  getGlobalApp,
40
45
  getGlobalAppConfig,
41
46
  getGlobalAppInit,