@modern-js/runtime 2.65.2 → 2.65.3
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.
- package/dist/cjs/cli/code.js +1 -0
- package/dist/cjs/cli/template.js +7 -3
- package/dist/cjs/core/browser/index.js +1 -3
- package/dist/cjs/core/compat/requestContext.js +48 -0
- package/dist/cjs/core/compatible.js +2 -14
- package/dist/cjs/core/context/index.js +6 -0
- package/dist/cjs/core/context/monitors/default.js +5 -10
- package/dist/cjs/core/context/response/index.js +43 -0
- package/dist/cjs/core/context/response/index.server.js +62 -0
- package/dist/cjs/core/plugin/index.js +2 -0
- package/dist/cjs/core/server/requestHandler.js +10 -8
- package/dist/cjs/index.js +7 -0
- package/dist/cjs/react-server.js +12 -2
- package/dist/cjs/router/cli/code/templates.js +3 -1
- package/dist/cjs/router/cli/handler.js +1 -0
- package/dist/esm/cli/code.js +1 -0
- package/dist/esm/cli/template.js +4 -4
- package/dist/esm/core/browser/index.js +3 -4
- package/dist/esm/core/compat/requestContext.js +25 -0
- package/dist/esm/core/compatible.js +5 -16
- package/dist/esm/core/context/index.js +5 -0
- package/dist/esm/core/context/monitors/default.js +5 -25
- package/dist/esm/core/context/response/index.js +16 -0
- package/dist/esm/core/context/response/index.server.js +41 -0
- package/dist/esm/core/plugin/index.js +3 -1
- package/dist/esm/core/server/requestHandler.js +12 -10
- package/dist/esm/index.js +4 -0
- package/dist/esm/react-server.js +7 -1
- package/dist/esm/router/cli/code/templates.js +3 -3
- package/dist/esm/router/cli/handler.js +1 -0
- package/dist/esm-node/cli/code.js +1 -0
- package/dist/esm-node/cli/template.js +7 -3
- package/dist/esm-node/core/browser/index.js +1 -3
- package/dist/esm-node/core/compat/requestContext.js +23 -0
- package/dist/esm-node/core/compatible.js +2 -14
- package/dist/esm-node/core/context/index.js +5 -0
- package/dist/esm-node/core/context/monitors/default.js +5 -10
- package/dist/esm-node/core/context/response/index.js +16 -0
- package/dist/esm-node/core/context/response/index.server.js +35 -0
- package/dist/esm-node/core/plugin/index.js +2 -0
- package/dist/esm-node/core/server/requestHandler.js +10 -8
- package/dist/esm-node/index.js +4 -0
- package/dist/esm-node/react-server.js +7 -1
- package/dist/esm-node/router/cli/code/templates.js +3 -1
- package/dist/esm-node/router/cli/handler.js +1 -0
- package/dist/types/cli/template.d.ts +2 -1
- package/dist/types/core/compat/requestContext.d.ts +27 -0
- package/dist/types/core/config.d.ts +1 -1
- package/dist/types/core/context/index.d.ts +2 -0
- package/dist/types/core/context/response/index.d.ts +4 -0
- package/dist/types/core/context/response/index.server.d.ts +7 -0
- package/dist/types/core/context/runtime.d.ts +1 -0
- package/dist/types/core/types.d.ts +4 -17
- package/dist/types/index.d.ts +1 -0
- package/dist/types/react-server.d.ts +2 -0
- package/dist/types/router/cli/code/templates.d.ts +2 -1
- package/package.json +12 -12
package/dist/cjs/cli/code.js
CHANGED
package/dist/cjs/cli/template.js
CHANGED
|
@@ -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
|
|
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);
|
|
@@ -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
|
-
|
|
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:
|
|
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
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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.
|
|
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.
|
|
171
|
+
if (responseProxy.status !== -1) {
|
|
170
172
|
return new Response(response.body, {
|
|
171
|
-
status: responseProxy.
|
|
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
|
});
|
package/dist/cjs/react-server.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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,
|
package/dist/esm/cli/code.js
CHANGED
package/dist/esm/cli/template.js
CHANGED
|
@@ -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
|
|
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,
|
|
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,
|
|
@@ -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,
|
|
109
|
+
Object.assign(context, {
|
|
110
110
|
loaderManager: createLoaderManager(initialLoadersState, {
|
|
111
111
|
skipStatic: true
|
|
112
|
-
})
|
|
113
|
-
|
|
114
|
-
|
|
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:
|
|
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,
|
|
@@ -4,31 +4,11 @@ var defaultMonitors = {
|
|
|
4
4
|
args[_key - 1] = arguments[_key];
|
|
5
5
|
}
|
|
6
6
|
},
|
|
7
|
-
info:
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
},
|
|
7
|
+
info: console.info,
|
|
8
|
+
debug: console.debug,
|
|
9
|
+
trace: console.trace,
|
|
10
|
+
warn: console.warn,
|
|
11
|
+
error: console.error,
|
|
32
12
|
timing: function timing(name, dur) {
|
|
33
13
|
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
|
34
14
|
args[_key - 2] = arguments[_key];
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
var getResponseProxy = function() {
|
|
2
|
+
return null;
|
|
3
|
+
};
|
|
4
|
+
var setHeaders = function(headers) {
|
|
5
|
+
};
|
|
6
|
+
var setStatus = function(status) {
|
|
7
|
+
};
|
|
8
|
+
var redirect = function(url, init) {
|
|
9
|
+
console.warn("You should not use this API in the browser, please use the router's redirect or useNavigate method.");
|
|
10
|
+
};
|
|
11
|
+
export {
|
|
12
|
+
getResponseProxy,
|
|
13
|
+
redirect,
|
|
14
|
+
setHeaders,
|
|
15
|
+
setStatus
|
|
16
|
+
};
|