@modern-js/prod-server 2.20.0 → 2.21.1
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/CHANGELOG.md +32 -0
- package/dist/cjs/libs/context/context.js +1 -1
- package/dist/cjs/libs/render/index.js +3 -2
- package/dist/cjs/libs/render/ssr.js +5 -3
- package/dist/cjs/server/modernServer.js +3 -2
- package/dist/cjs/workerServer.js +5 -2
- package/dist/esm/libs/context/context.js +1 -1
- package/dist/esm/libs/render/index.js +3 -2
- package/dist/esm/libs/render/ssr.js +12 -5
- package/dist/esm/server/modernServer.js +3 -2
- package/dist/esm/workerServer.js +6 -3
- package/dist/esm-node/libs/context/context.js +1 -1
- package/dist/esm-node/libs/render/index.js +3 -2
- package/dist/esm-node/libs/render/ssr.js +5 -3
- package/dist/esm-node/server/modernServer.js +3 -2
- package/dist/esm-node/workerServer.js +5 -2
- package/dist/types/index.d.ts +0 -2
- package/dist/types/libs/context/context.d.ts +1 -4
- package/dist/types/libs/loadConfig.d.ts +0 -1
- package/dist/types/libs/logger.d.ts +0 -2
- package/dist/types/libs/render/cache/index.d.ts +0 -2
- package/dist/types/libs/render/cache/spr.d.ts +0 -2
- package/dist/types/libs/render/index.d.ts +3 -1
- package/dist/types/libs/render/ssr.d.ts +1 -0
- package/dist/types/server/index.d.ts +0 -3
- package/dist/types/utils.d.ts +1 -1
- package/dist/types/workerServer.d.ts +2 -3
- package/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
# @modern-js/prod-server
|
|
2
2
|
|
|
3
|
+
## 2.21.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 78e3ac8: fix(prod-server): worker ssr should pass baseUrl & url by request.
|
|
8
|
+
fix(prod-server): worker ssr 通过 request 应该传递 baseUrl & url .
|
|
9
|
+
- 2728724: fix(prod-server): the ssr render maybe get invalid url, like `http:///`
|
|
10
|
+
fix(prod-server): ssr 渲染函数可能获得非法 url, 类似 `http:///`
|
|
11
|
+
- @modern-js/server-core@2.21.1
|
|
12
|
+
- @modern-js/utils@2.21.1
|
|
13
|
+
|
|
14
|
+
## 2.21.0
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- cfc5bda: feat: ssr mode support async entry
|
|
19
|
+
feat: ssr 模式支持异步入口
|
|
20
|
+
- 26dcf3a: chore: bump typescript to v5 in devDependencies
|
|
21
|
+
|
|
22
|
+
chore: 升级 devDependencies 中的 typescript 版本到 v5
|
|
23
|
+
|
|
24
|
+
- 43b4e83: feat: support security.nonce for add nonce attribute on script tag
|
|
25
|
+
feat: 支持 security.nonce 配置,为 script 标签添加 nonce 属性
|
|
26
|
+
- Updated dependencies [e81eeaf]
|
|
27
|
+
- Updated dependencies [26dcf3a]
|
|
28
|
+
- Updated dependencies [056627f]
|
|
29
|
+
- Updated dependencies [0fc15ca]
|
|
30
|
+
- Updated dependencies [43b4e83]
|
|
31
|
+
- Updated dependencies [ad78387]
|
|
32
|
+
- @modern-js/utils@2.21.0
|
|
33
|
+
- @modern-js/server-core@2.21.0
|
|
34
|
+
|
|
3
35
|
## 2.20.0
|
|
4
36
|
|
|
5
37
|
### Patch Changes
|
|
@@ -104,7 +104,7 @@ class ModernServerContext {
|
|
|
104
104
|
if (!host) {
|
|
105
105
|
host = this.getReqHeader("Host");
|
|
106
106
|
}
|
|
107
|
-
return host.split(/\s*,\s*/, 1)[0] || "";
|
|
107
|
+
return host.split(/\s*,\s*/, 1)[0] || "undefined";
|
|
108
108
|
}
|
|
109
109
|
get protocol() {
|
|
110
110
|
if (this.req.socket.encrypted) {
|
|
@@ -15,7 +15,7 @@ const _static = require("./static");
|
|
|
15
15
|
const _reader = require("./reader");
|
|
16
16
|
const _ssr = /* @__PURE__ */ _interop_require_wildcard._(require("./ssr"));
|
|
17
17
|
const _utils1 = require("./utils");
|
|
18
|
-
const createRenderHandler = ({ distDir, staticGenerate, forceCSR }) => async function render({ ctx, route, runner }) {
|
|
18
|
+
const createRenderHandler = ({ distDir, staticGenerate, forceCSR, nonce }) => async function render({ ctx, route, runner }) {
|
|
19
19
|
if (ctx.resHasHandled()) {
|
|
20
20
|
return null;
|
|
21
21
|
}
|
|
@@ -42,7 +42,8 @@ const createRenderHandler = ({ distDir, staticGenerate, forceCSR }) => async fun
|
|
|
42
42
|
urlPath: route.urlPath,
|
|
43
43
|
bundle: route.bundle,
|
|
44
44
|
template: content.toString(),
|
|
45
|
-
staticGenerate
|
|
45
|
+
staticGenerate,
|
|
46
|
+
nonce
|
|
46
47
|
}, runner);
|
|
47
48
|
return result;
|
|
48
49
|
} catch (err) {
|
|
@@ -14,7 +14,7 @@ const _measure = require("./measure");
|
|
|
14
14
|
const _utils1 = require("./utils");
|
|
15
15
|
const render = async (ctx, renderOptions, runner) => {
|
|
16
16
|
var _ctx_res;
|
|
17
|
-
const { urlPath, bundle, distDir, template, entryName, staticGenerate, enableUnsafeCtx = false } = renderOptions;
|
|
17
|
+
const { urlPath, bundle, distDir, template, entryName, staticGenerate, enableUnsafeCtx = false, nonce } = renderOptions;
|
|
18
18
|
const bundleJS = _path.default.join(distDir, bundle);
|
|
19
19
|
const loadableUri = _path.default.join(distDir, _utils.LOADABLE_STATS_FILE);
|
|
20
20
|
const loadableStats = _utils.fs.existsSync(loadableUri) ? require(loadableUri) : "";
|
|
@@ -49,12 +49,14 @@ const render = async (ctx, renderOptions, runner) => {
|
|
|
49
49
|
metrics: void 0,
|
|
50
50
|
req: ctx.req,
|
|
51
51
|
res: ctx.res,
|
|
52
|
-
enableUnsafeCtx
|
|
52
|
+
enableUnsafeCtx,
|
|
53
|
+
nonce
|
|
53
54
|
};
|
|
54
55
|
context.logger = (0, _measure.createLogger)(context, ctx.logger);
|
|
55
56
|
context.metrics = (0, _measure.createMetrics)(context, ctx.metrics);
|
|
56
57
|
runner.extendSSRContext(context);
|
|
57
|
-
const
|
|
58
|
+
const bundleJSContent = await Promise.resolve(require(bundleJS));
|
|
59
|
+
const serverRender = bundleJSContent[_utils.SERVER_RENDER_FUNCTION_NAME];
|
|
58
60
|
const content = await (0, _cache.default)(serverRender, ctx)(context);
|
|
59
61
|
const { url, status = 302 } = context.redirection;
|
|
60
62
|
if (url) {
|
|
@@ -25,7 +25,7 @@ const SERVER_DIR = "./server";
|
|
|
25
25
|
class ModernServer {
|
|
26
26
|
// server prepare
|
|
27
27
|
async onInit(runner, app) {
|
|
28
|
-
var _conf_bff, _this_conf_server, _this_conf_output;
|
|
28
|
+
var _conf_bff, _this_conf_server, _conf_security, _this_conf_output;
|
|
29
29
|
this.runner = runner;
|
|
30
30
|
const { distDir, staticGenerate, conf } = this;
|
|
31
31
|
(0, _utils1.debug)("final server conf", this.conf);
|
|
@@ -49,7 +49,8 @@ class ModernServer {
|
|
|
49
49
|
this.routeRenderHandler = (0, _render.createRenderHandler)({
|
|
50
50
|
distDir,
|
|
51
51
|
staticGenerate,
|
|
52
|
-
forceCSR
|
|
52
|
+
forceCSR,
|
|
53
|
+
nonce: (_conf_security = conf.security) === null || _conf_security === void 0 ? void 0 : _conf_security.nonce
|
|
53
54
|
});
|
|
54
55
|
await this.setupBeforeProdMiddleware();
|
|
55
56
|
this.addHandler(this.setupStaticMiddleware((_this_conf_output = this.conf.output) === null || _this_conf_output === void 0 ? void 0 : _this_conf_output.assetPrefix));
|
package/dist/cjs/workerServer.js
CHANGED
|
@@ -85,8 +85,9 @@ const createHandler = (manifest) => {
|
|
|
85
85
|
}
|
|
86
86
|
};
|
|
87
87
|
const params = pageMatch.parseURLParams(url.pathname) || {};
|
|
88
|
+
const { urlPath: baseUrl } = pageMatch;
|
|
88
89
|
const serverRenderContext = {
|
|
89
|
-
request: createServerRequest(url, request, params),
|
|
90
|
+
request: createServerRequest(url, baseUrl, request, params),
|
|
90
91
|
response: responseLike,
|
|
91
92
|
loadableStats,
|
|
92
93
|
routeManifest,
|
|
@@ -111,7 +112,7 @@ const createHandler = (manifest) => {
|
|
|
111
112
|
}
|
|
112
113
|
console.warn(`Can't not page(${pageMatch.spec.urlPath}) serverRender`);
|
|
113
114
|
return createResponse(page.template);
|
|
114
|
-
function createServerRequest(url2, request2, params) {
|
|
115
|
+
function createServerRequest(url2, baseUrl, request2, params) {
|
|
115
116
|
const { pathname, host, searchParams } = url2;
|
|
116
117
|
const { headers: rawHeaders } = request2;
|
|
117
118
|
const headers = {};
|
|
@@ -120,6 +121,8 @@ const createHandler = (manifest) => {
|
|
|
120
121
|
});
|
|
121
122
|
const query = Object.fromEntries(searchParams);
|
|
122
123
|
return {
|
|
124
|
+
url: url2.href,
|
|
125
|
+
baseUrl,
|
|
123
126
|
pathname,
|
|
124
127
|
host,
|
|
125
128
|
headers,
|
|
@@ -8,7 +8,7 @@ import { readFile } from "./reader";
|
|
|
8
8
|
import * as ssr from "./ssr";
|
|
9
9
|
import { injectServerData } from "./utils";
|
|
10
10
|
export var createRenderHandler = function(param) {
|
|
11
|
-
var distDir = param.distDir, staticGenerate = param.staticGenerate, forceCSR = param.forceCSR;
|
|
11
|
+
var distDir = param.distDir, staticGenerate = param.staticGenerate, forceCSR = param.forceCSR, nonce = param.nonce;
|
|
12
12
|
return function() {
|
|
13
13
|
var _render = _async_to_generator(function(param2) {
|
|
14
14
|
var ctx, route, runner, entryPath, urlPath, entry, result, templatePath, content, useCSR, result1, err;
|
|
@@ -78,7 +78,8 @@ export var createRenderHandler = function(param) {
|
|
|
78
78
|
urlPath: route.urlPath,
|
|
79
79
|
bundle: route.bundle,
|
|
80
80
|
template: content.toString(),
|
|
81
|
-
staticGenerate: staticGenerate
|
|
81
|
+
staticGenerate: staticGenerate,
|
|
82
|
+
nonce: nonce
|
|
82
83
|
}, runner)
|
|
83
84
|
];
|
|
84
85
|
case 5:
|
|
@@ -7,11 +7,11 @@ import { createLogger, createMetrics } from "./measure";
|
|
|
7
7
|
import { injectServerDataStream, injectServerData } from "./utils";
|
|
8
8
|
export var render = function() {
|
|
9
9
|
var _ref = _async_to_generator(function(ctx, renderOptions, runner) {
|
|
10
|
-
var _ctx_res, urlPath, bundle, distDir, template, entryName, staticGenerate, _renderOptions_enableUnsafeCtx, enableUnsafeCtx, bundleJS, loadableUri, loadableStats, routesManifestUri, routeManifest, context, serverRender, content, _context_redirection, url, _context_redirection_status, status;
|
|
10
|
+
var _ctx_res, urlPath, bundle, distDir, template, entryName, staticGenerate, _renderOptions_enableUnsafeCtx, enableUnsafeCtx, nonce, bundleJS, loadableUri, loadableStats, routesManifestUri, routeManifest, context, bundleJSContent, serverRender, content, _context_redirection, url, _context_redirection_status, status;
|
|
11
11
|
return _ts_generator(this, function(_state) {
|
|
12
12
|
switch (_state.label) {
|
|
13
13
|
case 0:
|
|
14
|
-
urlPath = renderOptions.urlPath, bundle = renderOptions.bundle, distDir = renderOptions.distDir, template = renderOptions.template, entryName = renderOptions.entryName, staticGenerate = renderOptions.staticGenerate, _renderOptions_enableUnsafeCtx = renderOptions.enableUnsafeCtx, enableUnsafeCtx = _renderOptions_enableUnsafeCtx === void 0 ? false : _renderOptions_enableUnsafeCtx;
|
|
14
|
+
urlPath = renderOptions.urlPath, bundle = renderOptions.bundle, distDir = renderOptions.distDir, template = renderOptions.template, entryName = renderOptions.entryName, staticGenerate = renderOptions.staticGenerate, _renderOptions_enableUnsafeCtx = renderOptions.enableUnsafeCtx, enableUnsafeCtx = _renderOptions_enableUnsafeCtx === void 0 ? false : _renderOptions_enableUnsafeCtx, nonce = renderOptions.nonce;
|
|
15
15
|
bundleJS = path.join(distDir, bundle);
|
|
16
16
|
loadableUri = path.join(distDir, LOADABLE_STATS_FILE);
|
|
17
17
|
loadableStats = fs.existsSync(loadableUri) ? require(loadableUri) : "";
|
|
@@ -46,17 +46,24 @@ export var render = function() {
|
|
|
46
46
|
metrics: void 0,
|
|
47
47
|
req: ctx.req,
|
|
48
48
|
res: ctx.res,
|
|
49
|
-
enableUnsafeCtx: enableUnsafeCtx
|
|
49
|
+
enableUnsafeCtx: enableUnsafeCtx,
|
|
50
|
+
nonce: nonce
|
|
50
51
|
};
|
|
51
52
|
context.logger = createLogger(context, ctx.logger);
|
|
52
53
|
context.metrics = createMetrics(context, ctx.metrics);
|
|
53
54
|
runner.extendSSRContext(context);
|
|
54
|
-
serverRender = require(bundleJS)[SERVER_RENDER_FUNCTION_NAME];
|
|
55
55
|
return [
|
|
56
56
|
4,
|
|
57
|
-
|
|
57
|
+
Promise.resolve(require(bundleJS))
|
|
58
58
|
];
|
|
59
59
|
case 1:
|
|
60
|
+
bundleJSContent = _state.sent();
|
|
61
|
+
serverRender = bundleJSContent[SERVER_RENDER_FUNCTION_NAME];
|
|
62
|
+
return [
|
|
63
|
+
4,
|
|
64
|
+
cache(serverRender, ctx)(context)
|
|
65
|
+
];
|
|
66
|
+
case 2:
|
|
60
67
|
content = _state.sent();
|
|
61
68
|
_context_redirection = context.redirection, url = _context_redirection.url, _context_redirection_status = _context_redirection.status, status = _context_redirection_status === void 0 ? 302 : _context_redirection_status;
|
|
62
69
|
if (url) {
|
|
@@ -65,7 +65,7 @@ export var ModernServer = /* @__PURE__ */ function() {
|
|
|
65
65
|
function onInit(runner, app) {
|
|
66
66
|
var _this = this;
|
|
67
67
|
return _async_to_generator(function() {
|
|
68
|
-
var _conf_bff, _this_conf_server, _this_conf_output, distDir, staticGenerate, conf, usageRoutes, ssrConfig, forceCSR;
|
|
68
|
+
var _conf_bff, _this_conf_server, _conf_security, _this_conf_output, distDir, staticGenerate, conf, usageRoutes, ssrConfig, forceCSR;
|
|
69
69
|
return _ts_generator(this, function(_state) {
|
|
70
70
|
switch (_state.label) {
|
|
71
71
|
case 0:
|
|
@@ -102,7 +102,8 @@ export var ModernServer = /* @__PURE__ */ function() {
|
|
|
102
102
|
_this.routeRenderHandler = createRenderHandler({
|
|
103
103
|
distDir: distDir,
|
|
104
104
|
staticGenerate: staticGenerate,
|
|
105
|
-
forceCSR: forceCSR
|
|
105
|
+
forceCSR: forceCSR,
|
|
106
|
+
nonce: (_conf_security = conf.security) === null || _conf_security === void 0 ? void 0 : _conf_security.nonce
|
|
106
107
|
});
|
|
107
108
|
return [
|
|
108
109
|
4,
|
package/dist/esm/workerServer.js
CHANGED
|
@@ -71,8 +71,8 @@ export var createHandler = function(manifest) {
|
|
|
71
71
|
routeMgr.reset(routes);
|
|
72
72
|
return function() {
|
|
73
73
|
var _ref = _async_to_generator(function(options) {
|
|
74
|
-
var request, loadableStats, routeManifest, url, pageMatch, page, responseLike, params, serverRenderContext, body, e;
|
|
75
|
-
function createServerRequest(url2, request2, params2) {
|
|
74
|
+
var request, loadableStats, routeManifest, url, pageMatch, page, responseLike, params, baseUrl, serverRenderContext, body, e;
|
|
75
|
+
function createServerRequest(url2, baseUrl2, request2, params2) {
|
|
76
76
|
var pathname = url2.pathname, host = url2.host, searchParams = url2.searchParams;
|
|
77
77
|
var rawHeaders = request2.headers;
|
|
78
78
|
var headers = {};
|
|
@@ -81,6 +81,8 @@ export var createHandler = function(manifest) {
|
|
|
81
81
|
});
|
|
82
82
|
var query = Object.fromEntries(searchParams);
|
|
83
83
|
return {
|
|
84
|
+
url: url2.href,
|
|
85
|
+
baseUrl: baseUrl2,
|
|
84
86
|
pathname: pathname,
|
|
85
87
|
host: host,
|
|
86
88
|
headers: headers,
|
|
@@ -126,8 +128,9 @@ export var createHandler = function(manifest) {
|
|
|
126
128
|
}
|
|
127
129
|
};
|
|
128
130
|
params = pageMatch.parseURLParams(url.pathname) || {};
|
|
131
|
+
baseUrl = pageMatch.urlPath;
|
|
129
132
|
serverRenderContext = {
|
|
130
|
-
request: createServerRequest(url, request, params),
|
|
133
|
+
request: createServerRequest(url, baseUrl, request, params),
|
|
131
134
|
response: responseLike,
|
|
132
135
|
loadableStats: loadableStats,
|
|
133
136
|
routeManifest: routeManifest,
|
|
@@ -5,7 +5,7 @@ import { handleDirectory } from "./static";
|
|
|
5
5
|
import { readFile } from "./reader";
|
|
6
6
|
import * as ssr from "./ssr";
|
|
7
7
|
import { injectServerData } from "./utils";
|
|
8
|
-
export const createRenderHandler = ({ distDir, staticGenerate, forceCSR }) => async function render({ ctx, route, runner }) {
|
|
8
|
+
export const createRenderHandler = ({ distDir, staticGenerate, forceCSR, nonce }) => async function render({ ctx, route, runner }) {
|
|
9
9
|
if (ctx.resHasHandled()) {
|
|
10
10
|
return null;
|
|
11
11
|
}
|
|
@@ -32,7 +32,8 @@ export const createRenderHandler = ({ distDir, staticGenerate, forceCSR }) => as
|
|
|
32
32
|
urlPath: route.urlPath,
|
|
33
33
|
bundle: route.bundle,
|
|
34
34
|
template: content.toString(),
|
|
35
|
-
staticGenerate
|
|
35
|
+
staticGenerate,
|
|
36
|
+
nonce
|
|
36
37
|
}, runner);
|
|
37
38
|
return result;
|
|
38
39
|
} catch (err) {
|
|
@@ -5,7 +5,7 @@ import { createLogger, createMetrics } from "./measure";
|
|
|
5
5
|
import { injectServerDataStream, injectServerData } from "./utils";
|
|
6
6
|
export const render = async (ctx, renderOptions, runner) => {
|
|
7
7
|
var _ctx_res;
|
|
8
|
-
const { urlPath, bundle, distDir, template, entryName, staticGenerate, enableUnsafeCtx = false } = renderOptions;
|
|
8
|
+
const { urlPath, bundle, distDir, template, entryName, staticGenerate, enableUnsafeCtx = false, nonce } = renderOptions;
|
|
9
9
|
const bundleJS = path.join(distDir, bundle);
|
|
10
10
|
const loadableUri = path.join(distDir, LOADABLE_STATS_FILE);
|
|
11
11
|
const loadableStats = fs.existsSync(loadableUri) ? require(loadableUri) : "";
|
|
@@ -40,12 +40,14 @@ export const render = async (ctx, renderOptions, runner) => {
|
|
|
40
40
|
metrics: void 0,
|
|
41
41
|
req: ctx.req,
|
|
42
42
|
res: ctx.res,
|
|
43
|
-
enableUnsafeCtx
|
|
43
|
+
enableUnsafeCtx,
|
|
44
|
+
nonce
|
|
44
45
|
};
|
|
45
46
|
context.logger = createLogger(context, ctx.logger);
|
|
46
47
|
context.metrics = createMetrics(context, ctx.metrics);
|
|
47
48
|
runner.extendSSRContext(context);
|
|
48
|
-
const
|
|
49
|
+
const bundleJSContent = await Promise.resolve(require(bundleJS));
|
|
50
|
+
const serverRender = bundleJSContent[SERVER_RENDER_FUNCTION_NAME];
|
|
49
51
|
const content = await cache(serverRender, ctx)(context);
|
|
50
52
|
const { url, status = 302 } = context.redirection;
|
|
51
53
|
if (url) {
|
|
@@ -15,7 +15,7 @@ const SERVER_DIR = "./server";
|
|
|
15
15
|
export class ModernServer {
|
|
16
16
|
// server prepare
|
|
17
17
|
async onInit(runner, app) {
|
|
18
|
-
var _conf_bff, _this_conf_server, _this_conf_output;
|
|
18
|
+
var _conf_bff, _this_conf_server, _conf_security, _this_conf_output;
|
|
19
19
|
this.runner = runner;
|
|
20
20
|
const { distDir, staticGenerate, conf } = this;
|
|
21
21
|
debug("final server conf", this.conf);
|
|
@@ -39,7 +39,8 @@ export class ModernServer {
|
|
|
39
39
|
this.routeRenderHandler = createRenderHandler({
|
|
40
40
|
distDir,
|
|
41
41
|
staticGenerate,
|
|
42
|
-
forceCSR
|
|
42
|
+
forceCSR,
|
|
43
|
+
nonce: (_conf_security = conf.security) === null || _conf_security === void 0 ? void 0 : _conf_security.nonce
|
|
43
44
|
});
|
|
44
45
|
await this.setupBeforeProdMiddleware();
|
|
45
46
|
this.addHandler(this.setupStaticMiddleware((_this_conf_output = this.conf.output) === null || _this_conf_output === void 0 ? void 0 : _this_conf_output.assetPrefix));
|
|
@@ -70,8 +70,9 @@ export const createHandler = (manifest) => {
|
|
|
70
70
|
}
|
|
71
71
|
};
|
|
72
72
|
const params = pageMatch.parseURLParams(url.pathname) || {};
|
|
73
|
+
const { urlPath: baseUrl } = pageMatch;
|
|
73
74
|
const serverRenderContext = {
|
|
74
|
-
request: createServerRequest(url, request, params),
|
|
75
|
+
request: createServerRequest(url, baseUrl, request, params),
|
|
75
76
|
response: responseLike,
|
|
76
77
|
loadableStats,
|
|
77
78
|
routeManifest,
|
|
@@ -96,7 +97,7 @@ export const createHandler = (manifest) => {
|
|
|
96
97
|
}
|
|
97
98
|
console.warn(`Can't not page(${pageMatch.spec.urlPath}) serverRender`);
|
|
98
99
|
return createResponse(page.template);
|
|
99
|
-
function createServerRequest(url2, request2, params) {
|
|
100
|
+
function createServerRequest(url2, baseUrl, request2, params) {
|
|
100
101
|
const { pathname, host, searchParams } = url2;
|
|
101
102
|
const { headers: rawHeaders } = request2;
|
|
102
103
|
const headers = {};
|
|
@@ -105,6 +106,8 @@ export const createHandler = (manifest) => {
|
|
|
105
106
|
});
|
|
106
107
|
const query = Object.fromEntries(searchParams);
|
|
107
108
|
return {
|
|
109
|
+
url: url2.href,
|
|
110
|
+
baseUrl,
|
|
108
111
|
pathname,
|
|
109
112
|
host,
|
|
110
113
|
headers,
|
package/dist/types/index.d.ts
CHANGED
|
@@ -6,7 +6,5 @@ export { ModernServer } from './server/modernServer';
|
|
|
6
6
|
export { createProxyHandler } from './libs/proxy';
|
|
7
7
|
export * from './type';
|
|
8
8
|
export * from './constants';
|
|
9
|
-
|
|
10
9
|
declare const _default: (options: ModernServerOptions) => Promise<Server>;
|
|
11
|
-
|
|
12
10
|
export default _default;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
/// <reference types="node" />
|
|
4
4
|
/// <reference types="node/http" />
|
|
5
|
-
/// <reference types=".dts-temp/
|
|
5
|
+
/// <reference types=".dts-temp/tNQNz5diNrmZleL5wsuCm/src/type" />
|
|
6
6
|
import { IncomingMessage, ServerResponse } from 'http';
|
|
7
7
|
import qs from 'querystring';
|
|
8
8
|
import type { ModernServerContext as ModernServerContextInterface } from '@modern-js/types';
|
|
@@ -18,12 +18,10 @@ export declare class ModernServerContext implements ModernServerContextInterface
|
|
|
18
18
|
/**
|
|
19
19
|
* http response
|
|
20
20
|
*/
|
|
21
|
-
|
|
22
21
|
res: ServerResponse;
|
|
23
22
|
/**
|
|
24
23
|
* url params
|
|
25
24
|
*/
|
|
26
|
-
|
|
27
25
|
params: Record<string, string>;
|
|
28
26
|
get logger(): import("@modern-js/types").Logger;
|
|
29
27
|
get metrics(): import("@modern-js/types").Metrics;
|
|
@@ -54,7 +52,6 @@ export declare class ModernServerContext implements ModernServerContextInterface
|
|
|
54
52
|
/**
|
|
55
53
|
* 判断链接是否已经关闭
|
|
56
54
|
*/
|
|
57
|
-
|
|
58
55
|
resHasHandled(): boolean;
|
|
59
56
|
error(dig: string, e?: Error | string): void;
|
|
60
57
|
}
|
|
@@ -44,7 +44,6 @@ declare const LOG_TYPES: {
|
|
|
44
44
|
level: string;
|
|
45
45
|
};
|
|
46
46
|
};
|
|
47
|
-
|
|
48
47
|
declare class Logger {
|
|
49
48
|
private readonly level;
|
|
50
49
|
private readonly config;
|
|
@@ -55,7 +54,6 @@ declare class Logger {
|
|
|
55
54
|
private _log;
|
|
56
55
|
private getLongestLabel;
|
|
57
56
|
}
|
|
58
|
-
|
|
59
57
|
type LoggerInterface = { [key in keyof typeof LOG_TYPES]: LoggerFunction };
|
|
60
58
|
declare const logger: Logger & LoggerInterface;
|
|
61
59
|
export { Logger };
|
|
@@ -2,7 +2,5 @@
|
|
|
2
2
|
import { Readable } from 'stream';
|
|
3
3
|
import type { ModernServerContext } from '@modern-js/types';
|
|
4
4
|
import { RenderFunction, SSRServerContext } from '../type';
|
|
5
|
-
|
|
6
5
|
declare const _default: (renderFn: RenderFunction, ctx: ModernServerContext) => (context: SSRServerContext) => Promise<string | Readable>;
|
|
7
|
-
|
|
8
6
|
export default _default;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import LRUCache from 'lru-cache';
|
|
2
2
|
import { CacheContent, CacheManagerOptions, CacheResult, CacheContext, CacheConfig } from './type';
|
|
3
|
-
|
|
4
3
|
declare class CacheManager {
|
|
5
4
|
cache: LRUCache<string, CacheContent>;
|
|
6
5
|
cacheOptions: CacheManagerOptions;
|
|
@@ -18,7 +17,6 @@ declare class CacheManager {
|
|
|
18
17
|
set(context: CacheContext, html: string, cacheConfig: CacheConfig, sync?: boolean): Promise<any>;
|
|
19
18
|
del(context: CacheContext, cacheHash: string): Promise<void>;
|
|
20
19
|
}
|
|
21
|
-
|
|
22
20
|
export declare function createCache(): CacheManager;
|
|
23
21
|
export declare function destroyCache(): void;
|
|
24
22
|
export {};
|
|
@@ -4,11 +4,13 @@ import { ModernRoute } from '../route';
|
|
|
4
4
|
export declare const createRenderHandler: ({
|
|
5
5
|
distDir,
|
|
6
6
|
staticGenerate,
|
|
7
|
-
forceCSR
|
|
7
|
+
forceCSR,
|
|
8
|
+
nonce
|
|
8
9
|
}: {
|
|
9
10
|
distDir: string;
|
|
10
11
|
staticGenerate: boolean;
|
|
11
12
|
forceCSR?: boolean | undefined;
|
|
13
|
+
nonce?: string | undefined;
|
|
12
14
|
}) => ({
|
|
13
15
|
ctx,
|
|
14
16
|
route,
|
|
@@ -26,14 +26,12 @@ export declare class Server {
|
|
|
26
26
|
* - 执行 prepare hook
|
|
27
27
|
* - 执行 server init
|
|
28
28
|
*/
|
|
29
|
-
|
|
30
29
|
init(): Promise<this>;
|
|
31
30
|
/**
|
|
32
31
|
* Execute config hooks
|
|
33
32
|
* @param runner
|
|
34
33
|
* @param options
|
|
35
34
|
*/
|
|
36
|
-
|
|
37
35
|
private runConfigHook;
|
|
38
36
|
private runPrepareHook;
|
|
39
37
|
private initServerConfig;
|
|
@@ -41,7 +39,6 @@ export declare class Server {
|
|
|
41
39
|
*
|
|
42
40
|
* merge cliConfig and serverConfig
|
|
43
41
|
*/
|
|
44
|
-
|
|
45
42
|
private initConfig;
|
|
46
43
|
close(): Promise<void>;
|
|
47
44
|
listen<T extends number | ListenOptions | undefined>(options: T, listener: any): void;
|
package/dist/types/utils.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node/http" />
|
|
3
|
-
/// <reference types=".dts-temp/
|
|
3
|
+
/// <reference types=".dts-temp/tNQNz5diNrmZleL5wsuCm/src/type" />
|
|
4
4
|
import { IncomingMessage } from 'http';
|
|
5
5
|
import type { OutputNormalizedConfig, HtmlNormalizedConfig } from '@modern-js/server-core';
|
|
6
6
|
export declare const debug: any;
|
|
@@ -19,7 +19,6 @@ export declare class ReturnResponse {
|
|
|
19
19
|
* @param headers
|
|
20
20
|
* @returns
|
|
21
21
|
*/
|
|
22
|
-
|
|
23
22
|
appendHeaders(headers: Record<string, any>): this;
|
|
24
23
|
/**
|
|
25
24
|
* Iterate a Object
|
|
@@ -30,11 +29,11 @@ export declare class ReturnResponse {
|
|
|
30
29
|
* @param headers
|
|
31
30
|
* @returns
|
|
32
31
|
*/
|
|
33
|
-
|
|
34
32
|
setHeaders(headers: Record<string, any>): this;
|
|
35
33
|
}
|
|
36
34
|
export type Manifest = {
|
|
37
|
-
pages: Record<string,
|
|
35
|
+
pages: Record<string,
|
|
36
|
+
// path
|
|
38
37
|
{
|
|
39
38
|
entryName: string;
|
|
40
39
|
template: string;
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"modern",
|
|
16
16
|
"modern.js"
|
|
17
17
|
],
|
|
18
|
-
"version": "2.
|
|
18
|
+
"version": "2.21.1",
|
|
19
19
|
"jsnext:source": "./src/index.ts",
|
|
20
20
|
"types": "./dist/types/index.d.ts",
|
|
21
21
|
"main": "./dist/cjs/index.js",
|
|
@@ -61,8 +61,8 @@
|
|
|
61
61
|
"path-to-regexp": "^6.2.0",
|
|
62
62
|
"serve-static": "^1.14.1",
|
|
63
63
|
"@swc/helpers": "0.5.1",
|
|
64
|
-
"@modern-js/utils": "2.
|
|
65
|
-
"@modern-js/server-core": "2.
|
|
64
|
+
"@modern-js/utils": "2.21.1",
|
|
65
|
+
"@modern-js/server-core": "2.21.1"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
68
|
"@types/cookie": "^0.4.1",
|
|
@@ -77,11 +77,11 @@
|
|
|
77
77
|
"jest": "^29",
|
|
78
78
|
"node-mocks-http": "^1.11.0",
|
|
79
79
|
"portfinder": "^1.0.28",
|
|
80
|
-
"typescript": "^
|
|
81
|
-
"@modern-js/types": "2.
|
|
82
|
-
"@modern-js/server-core": "2.
|
|
83
|
-
"@scripts/jest-config": "2.
|
|
84
|
-
"@scripts/build": "2.
|
|
80
|
+
"typescript": "^5",
|
|
81
|
+
"@modern-js/types": "2.21.1",
|
|
82
|
+
"@modern-js/server-core": "2.21.1",
|
|
83
|
+
"@scripts/jest-config": "2.21.1",
|
|
84
|
+
"@scripts/build": "2.21.1"
|
|
85
85
|
},
|
|
86
86
|
"sideEffects": false,
|
|
87
87
|
"publishConfig": {
|