@modern-js/prod-server 2.35.1 → 2.36.0
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/constants.js +33 -27
- package/dist/cjs/index.js +41 -33
- package/dist/cjs/libs/context/context.js +71 -45
- package/dist/cjs/libs/context/index.js +27 -17
- package/dist/cjs/libs/hook-api/base.js +49 -30
- package/dist/cjs/libs/hook-api/index.js +36 -28
- package/dist/cjs/libs/hook-api/index.worker.js +39 -31
- package/dist/cjs/libs/hook-api/route.js +28 -11
- package/dist/cjs/libs/hook-api/template.js +27 -17
- package/dist/cjs/libs/hook-api/templateForStream.js +31 -14
- package/dist/cjs/libs/loadConfig.js +46 -29
- package/dist/cjs/libs/metrics.js +24 -7
- package/dist/cjs/libs/preload/flushServerHeader.js +28 -11
- package/dist/cjs/libs/preload/index.js +22 -5
- package/dist/cjs/libs/preload/parseLinks.js +49 -24
- package/dist/cjs/libs/preload/shouldFlushServerHeader.js +25 -15
- package/dist/cjs/libs/preload/transformLinks2String.js +26 -9
- package/dist/cjs/libs/proxy.js +29 -19
- package/dist/cjs/libs/render/cache/__tests__/cache.fun.test.js +40 -22
- package/dist/cjs/libs/render/cache/__tests__/cache.test.js +26 -29
- package/dist/cjs/libs/render/cache/__tests__/cacheable.js +24 -7
- package/dist/cjs/libs/render/cache/__tests__/error-configuration.js +24 -7
- package/dist/cjs/libs/render/cache/__tests__/matched-cache.js +24 -7
- package/dist/cjs/libs/render/cache/index.js +29 -16
- package/dist/cjs/libs/render/cache/page-caches/index.js +26 -9
- package/dist/cjs/libs/render/cache/page-caches/lru.js +39 -13
- package/dist/cjs/libs/render/cache/spr.js +61 -42
- package/dist/cjs/libs/render/cache/type.js +15 -3
- package/dist/cjs/libs/render/cache/util.js +49 -36
- package/dist/cjs/libs/render/index.js +54 -29
- package/dist/cjs/libs/render/measure.js +27 -17
- package/dist/cjs/libs/render/reader.js +49 -33
- package/dist/cjs/libs/render/ssr.js +52 -26
- package/dist/cjs/libs/render/static.js +44 -18
- package/dist/cjs/libs/render/type.js +24 -7
- package/dist/cjs/libs/render/utils.js +29 -19
- package/dist/cjs/libs/reporter.js +24 -7
- package/dist/cjs/libs/route/index.js +30 -20
- package/dist/cjs/libs/route/matcher.js +35 -18
- package/dist/cjs/libs/route/route.js +34 -17
- package/dist/cjs/libs/serveFile.js +40 -21
- package/dist/cjs/libs/serverTiming.js +27 -10
- package/dist/cjs/renderHtml.js +17 -20
- package/dist/cjs/server/index.js +71 -45
- package/dist/cjs/server/modernServer.js +120 -95
- package/dist/cjs/server/modernServerSplit.js +29 -12
- package/dist/cjs/type.js +15 -3
- package/dist/cjs/utils.js +41 -38
- package/dist/cjs/workerServer.js +44 -34
- package/dist/esm/constants.js +14 -6
- package/dist/esm/index.js +11 -5
- package/dist/esm/libs/context/context.js +4 -1
- package/dist/esm/libs/context/index.js +5 -2
- package/dist/esm/libs/hook-api/base.js +6 -2
- package/dist/esm/libs/hook-api/index.js +11 -5
- package/dist/esm/libs/hook-api/index.worker.js +16 -10
- package/dist/esm/libs/hook-api/route.js +4 -1
- package/dist/esm/libs/hook-api/template.js +6 -2
- package/dist/esm/libs/hook-api/templateForStream.js +4 -1
- package/dist/esm/libs/loadConfig.js +8 -3
- package/dist/esm/libs/metrics.js +3 -1
- package/dist/esm/libs/preload/flushServerHeader.js +6 -3
- package/dist/esm/libs/preload/parseLinks.js +6 -3
- package/dist/esm/libs/preload/shouldFlushServerHeader.js +6 -2
- package/dist/esm/libs/preload/transformLinks2String.js +4 -1
- package/dist/esm/libs/proxy.js +9 -5
- package/dist/esm/libs/render/cache/__tests__/cacheable.js +4 -1
- package/dist/esm/libs/render/cache/__tests__/error-configuration.js +4 -1
- package/dist/esm/libs/render/cache/__tests__/matched-cache.js +4 -1
- package/dist/esm/libs/render/cache/index.js +4 -1
- package/dist/esm/libs/render/cache/page-caches/index.js +5 -2
- package/dist/esm/libs/render/cache/page-caches/lru.js +4 -1
- package/dist/esm/libs/render/cache/spr.js +11 -7
- package/dist/esm/libs/render/cache/type.js +0 -1
- package/dist/esm/libs/render/cache/util.js +18 -8
- package/dist/esm/libs/render/index.js +12 -9
- package/dist/esm/libs/render/measure.js +15 -11
- package/dist/esm/libs/render/reader.js +15 -8
- package/dist/esm/libs/render/ssr.js +11 -8
- package/dist/esm/libs/render/static.js +5 -2
- package/dist/esm/libs/render/type.js +4 -1
- package/dist/esm/libs/render/utils.js +6 -2
- package/dist/esm/libs/reporter.js +4 -1
- package/dist/esm/libs/route/index.js +5 -2
- package/dist/esm/libs/route/matcher.js +4 -1
- package/dist/esm/libs/route/route.js +4 -1
- package/dist/esm/libs/serveFile.js +6 -2
- package/dist/esm/libs/serverTiming.js +4 -1
- package/dist/esm/renderHtml.js +133 -124
- package/dist/esm/server/index.js +9 -6
- package/dist/esm/server/modernServer.js +13 -10
- package/dist/esm/server/modernServerSplit.js +4 -1
- package/dist/esm/type.js +0 -1
- package/dist/esm/utils.js +23 -12
- package/dist/esm/workerServer.js +21 -17
- package/dist/esm-node/constants.js +14 -6
- package/dist/esm-node/index.js +11 -5
- package/dist/esm-node/libs/context/context.js +4 -1
- package/dist/esm-node/libs/context/index.js +5 -2
- package/dist/esm-node/libs/hook-api/base.js +6 -2
- package/dist/esm-node/libs/hook-api/index.js +10 -4
- package/dist/esm-node/libs/hook-api/index.worker.js +10 -4
- package/dist/esm-node/libs/hook-api/route.js +4 -1
- package/dist/esm-node/libs/hook-api/template.js +6 -2
- package/dist/esm-node/libs/hook-api/templateForStream.js +4 -1
- package/dist/esm-node/libs/loadConfig.js +8 -3
- package/dist/esm-node/libs/metrics.js +3 -1
- package/dist/esm-node/libs/preload/flushServerHeader.js +4 -1
- package/dist/esm-node/libs/preload/parseLinks.js +4 -1
- package/dist/esm-node/libs/preload/shouldFlushServerHeader.js +6 -2
- package/dist/esm-node/libs/preload/transformLinks2String.js +4 -1
- package/dist/esm-node/libs/proxy.js +6 -2
- package/dist/esm-node/libs/render/cache/__tests__/cacheable.js +4 -1
- package/dist/esm-node/libs/render/cache/__tests__/error-configuration.js +4 -1
- package/dist/esm-node/libs/render/cache/__tests__/matched-cache.js +4 -1
- package/dist/esm-node/libs/render/cache/index.js +4 -1
- package/dist/esm-node/libs/render/cache/page-caches/index.js +4 -1
- package/dist/esm-node/libs/render/cache/page-caches/lru.js +4 -1
- package/dist/esm-node/libs/render/cache/spr.js +6 -2
- package/dist/esm-node/libs/render/cache/type.js +0 -1
- package/dist/esm-node/libs/render/cache/util.js +18 -8
- package/dist/esm-node/libs/render/index.js +4 -1
- package/dist/esm-node/libs/render/measure.js +6 -2
- package/dist/esm-node/libs/render/reader.js +12 -5
- package/dist/esm-node/libs/render/ssr.js +4 -1
- package/dist/esm-node/libs/render/static.js +4 -1
- package/dist/esm-node/libs/render/type.js +4 -1
- package/dist/esm-node/libs/render/utils.js +6 -2
- package/dist/esm-node/libs/reporter.js +4 -1
- package/dist/esm-node/libs/route/index.js +5 -2
- package/dist/esm-node/libs/route/matcher.js +4 -1
- package/dist/esm-node/libs/route/route.js +4 -1
- package/dist/esm-node/libs/serveFile.js +6 -2
- package/dist/esm-node/libs/serverTiming.js +4 -1
- package/dist/esm-node/renderHtml.js +72 -63
- package/dist/esm-node/server/index.js +6 -3
- package/dist/esm-node/server/modernServer.js +4 -1
- package/dist/esm-node/server/modernServerSplit.js +4 -1
- package/dist/esm-node/type.js +0 -1
- package/dist/esm-node/utils.js +20 -9
- package/dist/esm-node/workerServer.js +8 -4
- package/dist/types/libs/context/context.d.ts +1 -1
- package/dist/types/utils.d.ts +1 -1
- package/package.json +9 -9
|
@@ -15,7 +15,7 @@ const toPath = (reg, params) => {
|
|
|
15
15
|
return fn(params);
|
|
16
16
|
};
|
|
17
17
|
const regCharsDetector = /[^a-zA-Z\-_0-9\/\.]/;
|
|
18
|
-
|
|
18
|
+
class RouteMatcher {
|
|
19
19
|
// generate modern route object
|
|
20
20
|
generate(url) {
|
|
21
21
|
const route = new ModernRoute(this.spec);
|
|
@@ -88,3 +88,6 @@ export class RouteMatcher {
|
|
|
88
88
|
this.setupUrlPath();
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
|
+
export {
|
|
92
|
+
RouteMatcher
|
|
93
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
2
|
-
|
|
2
|
+
class ModernRoute {
|
|
3
3
|
constructor(routeSpec) {
|
|
4
4
|
_define_property(this, "entryName", void 0);
|
|
5
5
|
_define_property(this, "urlPath", void 0);
|
|
@@ -20,3 +20,6 @@ export class ModernRoute {
|
|
|
20
20
|
this.responseHeaders = routeSpec.responseHeaders;
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
+
export {
|
|
24
|
+
ModernRoute
|
|
25
|
+
};
|
|
@@ -12,7 +12,7 @@ const removedPrefix = (req, prefix) => {
|
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
14
|
};
|
|
15
|
-
|
|
15
|
+
const faviconFallbackHandler = (context, next) => {
|
|
16
16
|
if (context.url === "/favicon.ico") {
|
|
17
17
|
context.res.statusCode = 204;
|
|
18
18
|
context.res.end();
|
|
@@ -20,7 +20,7 @@ export const faviconFallbackHandler = (context, next) => {
|
|
|
20
20
|
next();
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
|
-
|
|
23
|
+
const createStaticFileHandler = (rules, assetPrefix = "/") => (
|
|
24
24
|
// eslint-disable-next-line consistent-return
|
|
25
25
|
async (context, next) => {
|
|
26
26
|
const { url: requestUrl, req, res } = context;
|
|
@@ -43,3 +43,7 @@ export const createStaticFileHandler = (rules, assetPrefix = "/") => (
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
);
|
|
46
|
+
export {
|
|
47
|
+
createStaticFileHandler,
|
|
48
|
+
faviconFallbackHandler
|
|
49
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
2
2
|
const SERVER_TIMING = "Server-Timing";
|
|
3
|
-
|
|
3
|
+
class ServerTiming {
|
|
4
4
|
addServeTiming(name, dur, desc) {
|
|
5
5
|
const _name = `bd-${this.meta}-${name}`;
|
|
6
6
|
const serverTiming = this.res.getHeader(SERVER_TIMING) || this.res.getHeader(SERVER_TIMING.toLocaleLowerCase());
|
|
@@ -15,3 +15,6 @@ export class ServerTiming {
|
|
|
15
15
|
this.res = res;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
+
export {
|
|
19
|
+
ServerTiming
|
|
20
|
+
};
|
|
@@ -1,71 +1,80 @@
|
|
|
1
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
2
|
+
var __commonJS = (cb, mod) => function __require() {
|
|
3
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
4
|
+
};
|
|
1
5
|
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
2
6
|
import { OutgoingMessage } from "http";
|
|
3
7
|
import { Readable } from "stream";
|
|
4
8
|
import { Socket } from "net";
|
|
5
9
|
import { Server } from "./server";
|
|
6
10
|
import { isRedirect } from "./utils";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
method,
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
});
|
|
49
|
-
if (body) {
|
|
50
|
-
req.push(body);
|
|
51
|
-
req.push(null);
|
|
52
|
-
}
|
|
53
|
-
const res = new ServerResponseLike();
|
|
54
|
-
const customServer = new CustomServer(serverOptions);
|
|
55
|
-
await customServer.init({
|
|
56
|
-
disableHttpServer: true
|
|
57
|
-
});
|
|
58
|
-
customServer.render(req, res);
|
|
59
|
-
return new Promise((resolve) => {
|
|
60
|
-
res.addListener("finish", () => {
|
|
61
|
-
resolve({
|
|
62
|
-
headers: res.getHeaders(),
|
|
63
|
-
redirected: isRedirect(res.statusCode),
|
|
64
|
-
status: res.statusCode,
|
|
11
|
+
var require_renderHtml = __commonJS({
|
|
12
|
+
"src/renderHtml.ts"(exports, module) {
|
|
13
|
+
class IncomingMessageLike extends Readable {
|
|
14
|
+
constructor({ method, url, headers }) {
|
|
15
|
+
super();
|
|
16
|
+
_define_property(this, "headers", void 0);
|
|
17
|
+
_define_property(this, "method", void 0);
|
|
18
|
+
_define_property(this, "url", void 0);
|
|
19
|
+
_define_property(this, "socket", void 0);
|
|
20
|
+
this.socket = new Socket();
|
|
21
|
+
this.headers = headers || {};
|
|
22
|
+
this.headers.host = "localhost:8080";
|
|
23
|
+
this.method = method || "get";
|
|
24
|
+
this.url = url;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
class ServerResponseLike extends OutgoingMessage {
|
|
28
|
+
end(chunk, _encoding, cb) {
|
|
29
|
+
this.data.push(chunk.toString());
|
|
30
|
+
cb && cb();
|
|
31
|
+
this.emit("finish");
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
constructor() {
|
|
35
|
+
super();
|
|
36
|
+
_define_property(this, "statusCode", void 0);
|
|
37
|
+
_define_property(this, "data", void 0);
|
|
38
|
+
this.statusCode = 200;
|
|
39
|
+
this.data = [];
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
class CustomServer extends Server {
|
|
43
|
+
async render(req, res, _url) {
|
|
44
|
+
const handler = this.getRequestHandler();
|
|
45
|
+
handler(req, res);
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async function renderHtml({ url, method, headers, body, serverOptions }) {
|
|
50
|
+
const req = new IncomingMessageLike({
|
|
51
|
+
method,
|
|
65
52
|
url,
|
|
66
|
-
|
|
53
|
+
headers
|
|
54
|
+
});
|
|
55
|
+
if (body) {
|
|
56
|
+
req.push(body);
|
|
57
|
+
req.push(null);
|
|
58
|
+
}
|
|
59
|
+
const res = new ServerResponseLike();
|
|
60
|
+
const customServer = new CustomServer(serverOptions);
|
|
61
|
+
await customServer.init({
|
|
62
|
+
disableHttpServer: true
|
|
67
63
|
});
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
64
|
+
customServer.render(req, res);
|
|
65
|
+
return new Promise((resolve) => {
|
|
66
|
+
res.addListener("finish", () => {
|
|
67
|
+
resolve({
|
|
68
|
+
headers: res.getHeaders(),
|
|
69
|
+
redirected: isRedirect(res.statusCode),
|
|
70
|
+
status: res.statusCode,
|
|
71
|
+
url,
|
|
72
|
+
body: res.data.join()
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
module.exports = renderHtml;
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
export default require_renderHtml();
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
2
2
|
import path from "path";
|
|
3
|
-
import { fs,
|
|
3
|
+
import { fs, createLogger, SHARED_DIR, OUTPUT_CONFIG_FILE, dotenv, dotenvExpand, INTERNAL_SERVER_PLUGINS, ensureAbsolutePath } from "@modern-js/utils";
|
|
4
4
|
import { serverManager, AppContext, ConfigContext, loadPlugins } from "@modern-js/server-core";
|
|
5
5
|
import { metrics as defaultMetrics } from "../libs/metrics";
|
|
6
6
|
import { loadConfig, getServerConfigPath, requireConfig } from "../libs/loadConfig";
|
|
7
7
|
import { debug } from "../utils";
|
|
8
8
|
import { createProdServer } from "./modernServerSplit";
|
|
9
|
-
|
|
9
|
+
class Server {
|
|
10
10
|
/**
|
|
11
11
|
* 初始化顺序
|
|
12
12
|
* - 读取 .env.{process.env.MODERN_ENV} 文件,加载环境变量
|
|
@@ -180,7 +180,7 @@ export class Server {
|
|
|
180
180
|
_define_property(this, "app", void 0);
|
|
181
181
|
_define_property(this, "runner", void 0);
|
|
182
182
|
_define_property(this, "serverConfig", void 0);
|
|
183
|
-
options.logger = options.logger ||
|
|
183
|
+
options.logger = options.logger || createLogger({
|
|
184
184
|
level: "warn"
|
|
185
185
|
});
|
|
186
186
|
options.metrics = options.metrics || defaultMetrics;
|
|
@@ -188,3 +188,6 @@ export class Server {
|
|
|
188
188
|
this.serverConfig = {};
|
|
189
189
|
}
|
|
190
190
|
}
|
|
191
|
+
export {
|
|
192
|
+
Server
|
|
193
|
+
};
|
|
@@ -13,7 +13,7 @@ import { createContext } from "../libs/context";
|
|
|
13
13
|
import { AGGRED_DIR, ERROR_DIGEST, ERROR_PAGE_TEXT, RUN_MODE, ServerReportTimings } from "../constants";
|
|
14
14
|
import { createAfterMatchContext, createAfterRenderContext, createMiddlewareContext } from "../libs/hook-api";
|
|
15
15
|
const SERVER_DIR = "./server";
|
|
16
|
-
|
|
16
|
+
class ModernServer {
|
|
17
17
|
// server prepare
|
|
18
18
|
async onInit(runner, app) {
|
|
19
19
|
var _conf_bff, _this_conf_output;
|
|
@@ -500,3 +500,6 @@ export class ModernServer {
|
|
|
500
500
|
this.metaName = appContext === null || appContext === void 0 ? void 0 : appContext.metaName;
|
|
501
501
|
}
|
|
502
502
|
}
|
|
503
|
+
export {
|
|
504
|
+
ModernServer
|
|
505
|
+
};
|
|
@@ -27,7 +27,7 @@ class ModernWebServer extends ModernServer {
|
|
|
27
27
|
return super.handleWeb(context, route);
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
|
|
30
|
+
const createProdServer = (options) => {
|
|
31
31
|
if (options.apiOnly) {
|
|
32
32
|
return new ModernAPIServer(options);
|
|
33
33
|
} else if (options.ssrOnly) {
|
|
@@ -38,3 +38,6 @@ export const createProdServer = (options) => {
|
|
|
38
38
|
return new ModernServer(options);
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
|
+
export {
|
|
42
|
+
createProdServer
|
|
43
|
+
};
|
package/dist/esm-node/type.js
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/esm-node/utils.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { createDebugger } from "@modern-js/utils";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
const debug = createDebugger("prod-server");
|
|
3
|
+
const mergeExtension = (users) => {
|
|
4
4
|
const output = [];
|
|
5
5
|
return {
|
|
6
6
|
middleware: output.concat(users)
|
|
7
7
|
};
|
|
8
8
|
};
|
|
9
|
-
|
|
9
|
+
const noop = () => {
|
|
10
10
|
};
|
|
11
|
-
|
|
11
|
+
const createErrorDocument = (status, text) => {
|
|
12
12
|
const title = `${status}: ${text}`;
|
|
13
13
|
return `<!DOCTYPE html>
|
|
14
14
|
<html lang="en">
|
|
@@ -41,7 +41,7 @@ export const createErrorDocument = (status, text) => {
|
|
|
41
41
|
</html>
|
|
42
42
|
`;
|
|
43
43
|
};
|
|
44
|
-
|
|
44
|
+
const createMiddlewareCollecter = () => {
|
|
45
45
|
const webMiddlewares = [];
|
|
46
46
|
const apiMiddlewares = [];
|
|
47
47
|
const addWebMiddleware = (input) => {
|
|
@@ -60,7 +60,7 @@ export const createMiddlewareCollecter = () => {
|
|
|
60
60
|
addAPIMiddleware
|
|
61
61
|
};
|
|
62
62
|
};
|
|
63
|
-
|
|
63
|
+
const getStaticReg = (output = {}, html = {}, prefix = "/") => {
|
|
64
64
|
const { distPath: { css: cssPath, js: jsPath, media: mediaPath } = {} } = output;
|
|
65
65
|
const { favicon, faviconByEntries } = html;
|
|
66
66
|
const favicons = prepareFavicons(favicon, faviconByEntries);
|
|
@@ -86,7 +86,7 @@ export const getStaticReg = (output = {}, html = {}, prefix = "/") => {
|
|
|
86
86
|
].join("|")})`);
|
|
87
87
|
return staticPathRegExp;
|
|
88
88
|
};
|
|
89
|
-
|
|
89
|
+
const prepareFavicons = (favicon, faviconByEntries) => {
|
|
90
90
|
const faviconNames = [];
|
|
91
91
|
if (favicon) {
|
|
92
92
|
faviconNames.push(favicon.substring(favicon.lastIndexOf("/") + 1));
|
|
@@ -101,7 +101,7 @@ export const prepareFavicons = (favicon, faviconByEntries) => {
|
|
|
101
101
|
}
|
|
102
102
|
return faviconNames;
|
|
103
103
|
};
|
|
104
|
-
|
|
104
|
+
const headersWithoutCookie = (headers) => {
|
|
105
105
|
if (typeof headers.cookie !== "undefined") {
|
|
106
106
|
const safeHeaders = {
|
|
107
107
|
...headers
|
|
@@ -111,7 +111,7 @@ export const headersWithoutCookie = (headers) => {
|
|
|
111
111
|
}
|
|
112
112
|
return headers;
|
|
113
113
|
};
|
|
114
|
-
|
|
114
|
+
const isRedirect = (code) => {
|
|
115
115
|
return [
|
|
116
116
|
301,
|
|
117
117
|
302,
|
|
@@ -119,3 +119,14 @@ export const isRedirect = (code) => {
|
|
|
119
119
|
308
|
|
120
120
|
].includes(code);
|
|
121
121
|
};
|
|
122
|
+
export {
|
|
123
|
+
createErrorDocument,
|
|
124
|
+
createMiddlewareCollecter,
|
|
125
|
+
debug,
|
|
126
|
+
getStaticReg,
|
|
127
|
+
headersWithoutCookie,
|
|
128
|
+
isRedirect,
|
|
129
|
+
mergeExtension,
|
|
130
|
+
noop,
|
|
131
|
+
prepareFavicons
|
|
132
|
+
};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
2
2
|
import { createAsyncPipeline } from "@modern-js/plugin";
|
|
3
|
-
import {
|
|
3
|
+
import { createLogger } from "@modern-js/utils/logger";
|
|
4
4
|
import { createAfterMatchContext, createAfterRenderContext, createMiddlewareContext } from "./libs/hook-api/index.worker";
|
|
5
5
|
import { RouteMatchManager } from "./libs/route";
|
|
6
6
|
import { metrics as defaultMetrics } from "./libs/metrics";
|
|
7
7
|
import { defaultReporter } from "./libs/reporter";
|
|
8
|
-
|
|
8
|
+
class ReturnResponse {
|
|
9
9
|
/**
|
|
10
10
|
* Iterate a Object
|
|
11
11
|
* 1. adds the value if the key does not already exist.
|
|
@@ -65,7 +65,7 @@ const checkIsSent = (context) => {
|
|
|
65
65
|
return false;
|
|
66
66
|
};
|
|
67
67
|
const middlewarePipeline = createAsyncPipeline();
|
|
68
|
-
|
|
68
|
+
const createHandler = (manifest) => {
|
|
69
69
|
const routeMgr = new RouteMatchManager();
|
|
70
70
|
const { pages, routes } = manifest;
|
|
71
71
|
routeMgr.reset(routes);
|
|
@@ -79,7 +79,7 @@ export const createHandler = (manifest) => {
|
|
|
79
79
|
}
|
|
80
80
|
const entryName = pageMatch.spec.urlPath;
|
|
81
81
|
const page = pages[entryName];
|
|
82
|
-
const logger =
|
|
82
|
+
const logger = createLogger({
|
|
83
83
|
level: "warn"
|
|
84
84
|
});
|
|
85
85
|
const metrics = defaultMetrics;
|
|
@@ -209,3 +209,7 @@ function applyMiddlewares(ctx, middleware) {
|
|
|
209
209
|
});
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
|
+
export {
|
|
213
|
+
ReturnResponse,
|
|
214
|
+
createHandler
|
|
215
|
+
};
|
|
@@ -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/7Y-G4jfBIn4nRmqrSkuxy/src/type" />
|
|
6
6
|
import { IncomingMessage, ServerResponse } from 'http';
|
|
7
7
|
import qs from 'querystring';
|
|
8
8
|
import type { ModernServerContext as ModernServerContextInterface, Reporter as ModernServerReporter, ServerTiming as ModernServerTiming } from '@modern-js/types';
|
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/7Y-G4jfBIn4nRmqrSkuxy/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;
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"modern",
|
|
16
16
|
"modern.js"
|
|
17
17
|
],
|
|
18
|
-
"version": "2.
|
|
18
|
+
"version": "2.36.0",
|
|
19
19
|
"jsnext:source": "./src/index.ts",
|
|
20
20
|
"types": "./dist/types/index.d.ts",
|
|
21
21
|
"main": "./dist/cjs/index.js",
|
|
@@ -74,10 +74,10 @@
|
|
|
74
74
|
"node-html-parser": "^6.1.5",
|
|
75
75
|
"path-to-regexp": "^6.2.0",
|
|
76
76
|
"serve-static": "^1.14.1",
|
|
77
|
-
"@modern-js/plugin": "2.
|
|
78
|
-
"@modern-js/server-core": "2.
|
|
79
|
-
"@modern-js/utils": "2.
|
|
80
|
-
"@modern-js/runtime-utils": "2.
|
|
77
|
+
"@modern-js/plugin": "2.36.0",
|
|
78
|
+
"@modern-js/server-core": "2.36.0",
|
|
79
|
+
"@modern-js/utils": "2.36.0",
|
|
80
|
+
"@modern-js/runtime-utils": "2.36.0"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
83
|
"@types/cookie": "^0.4.1",
|
|
@@ -96,10 +96,10 @@
|
|
|
96
96
|
"portfinder": "^1.0.28",
|
|
97
97
|
"typescript": "^5",
|
|
98
98
|
"ws": "^8.13.0",
|
|
99
|
-
"@modern-js/server-core": "2.
|
|
100
|
-
"@modern-js/types": "2.
|
|
101
|
-
"@scripts/
|
|
102
|
-
"@scripts/
|
|
99
|
+
"@modern-js/server-core": "2.36.0",
|
|
100
|
+
"@modern-js/types": "2.36.0",
|
|
101
|
+
"@scripts/jest-config": "2.36.0",
|
|
102
|
+
"@scripts/build": "2.36.0"
|
|
103
103
|
},
|
|
104
104
|
"sideEffects": false,
|
|
105
105
|
"publishConfig": {
|