@modern-js/prod-server 2.48.5 → 2.49.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/README.md +20 -16
- package/dist/cjs/{libs/route/route.js → error.js} +16 -17
- package/dist/cjs/index.js +18 -24
- package/dist/cjs/init.js +71 -0
- package/dist/cjs/{type.js → types.js} +2 -2
- package/dist/esm/error.js +15 -0
- package/dist/esm/index.js +53 -19
- package/dist/esm/init.js +73 -0
- package/dist/esm-node/error.js +14 -0
- package/dist/esm-node/index.js +16 -17
- package/dist/esm-node/init.js +47 -0
- package/dist/types/error.d.ts +6 -0
- package/dist/types/index.d.ts +8 -11
- package/dist/types/init.d.ts +4 -0
- package/dist/types/types.d.ts +14 -0
- package/package.json +23 -64
- package/dist/cjs/constants.js +0 -72
- package/dist/cjs/libs/context/context.js +0 -236
- package/dist/cjs/libs/context/index.js +0 -31
- package/dist/cjs/libs/hook-api/afterRenderForStream.js +0 -34
- package/dist/cjs/libs/hook-api/base.js +0 -96
- package/dist/cjs/libs/hook-api/index.js +0 -85
- package/dist/cjs/libs/hook-api/index.worker.js +0 -116
- package/dist/cjs/libs/hook-api/route.js +0 -44
- package/dist/cjs/libs/hook-api/template.js +0 -72
- package/dist/cjs/libs/hook-api/templateForStream.js +0 -52
- package/dist/cjs/libs/loadConfig.js +0 -70
- package/dist/cjs/libs/metrics.js +0 -33
- package/dist/cjs/libs/preload/flushServerHeader.js +0 -49
- package/dist/cjs/libs/preload/index.js +0 -24
- package/dist/cjs/libs/preload/parseLinks.js +0 -124
- package/dist/cjs/libs/preload/shouldFlushServerHeader.js +0 -52
- package/dist/cjs/libs/preload/transformLinks2String.js +0 -150
- package/dist/cjs/libs/proxy.js +0 -99
- package/dist/cjs/libs/render/index.js +0 -109
- package/dist/cjs/libs/render/measure.js +0 -74
- package/dist/cjs/libs/render/ssr.js +0 -130
- package/dist/cjs/libs/render/ssrCache/cacheMod.js +0 -51
- package/dist/cjs/libs/render/ssrCache/index.js +0 -90
- package/dist/cjs/libs/render/ssrCache/manager.js +0 -120
- package/dist/cjs/libs/render/static.js +0 -72
- package/dist/cjs/libs/render/type.js +0 -33
- package/dist/cjs/libs/render/utils.js +0 -41
- package/dist/cjs/libs/reporter.js +0 -39
- package/dist/cjs/libs/route/index.js +0 -83
- package/dist/cjs/libs/route/matcher.js +0 -113
- package/dist/cjs/libs/serveFile.js +0 -84
- package/dist/cjs/libs/serverTiming.js +0 -41
- package/dist/cjs/renderHtml.js +0 -65
- package/dist/cjs/server/index.js +0 -223
- package/dist/cjs/server/modernServer.js +0 -522
- package/dist/cjs/server/modernServerSplit.js +0 -67
- package/dist/cjs/utils.js +0 -164
- package/dist/cjs/workerServer.js +0 -260
- package/dist/esm/constants.js +0 -43
- package/dist/esm/libs/context/context.js +0 -260
- package/dist/esm/libs/context/index.js +0 -8
- package/dist/esm/libs/hook-api/afterRenderForStream.js +0 -33
- package/dist/esm/libs/hook-api/base.js +0 -73
- package/dist/esm/libs/hook-api/index.js +0 -55
- package/dist/esm/libs/hook-api/index.worker.js +0 -99
- package/dist/esm/libs/hook-api/route.js +0 -26
- package/dist/esm/libs/hook-api/template.js +0 -56
- package/dist/esm/libs/hook-api/templateForStream.js +0 -35
- package/dist/esm/libs/loadConfig.js +0 -36
- package/dist/esm/libs/metrics.js +0 -9
- package/dist/esm/libs/preload/flushServerHeader.js +0 -50
- package/dist/esm/libs/preload/index.js +0 -2
- package/dist/esm/libs/preload/parseLinks.js +0 -172
- package/dist/esm/libs/preload/shouldFlushServerHeader.js +0 -27
- package/dist/esm/libs/preload/transformLinks2String.js +0 -140
- package/dist/esm/libs/proxy.js +0 -160
- package/dist/esm/libs/render/index.js +0 -175
- package/dist/esm/libs/render/measure.js +0 -69
- package/dist/esm/libs/render/ssr.js +0 -133
- package/dist/esm/libs/render/ssrCache/cacheMod.js +0 -25
- package/dist/esm/libs/render/ssrCache/index.js +0 -170
- package/dist/esm/libs/render/ssrCache/manager.js +0 -178
- package/dist/esm/libs/render/static.js +0 -100
- package/dist/esm/libs/render/type.js +0 -9
- package/dist/esm/libs/render/utils.js +0 -16
- package/dist/esm/libs/reporter.js +0 -15
- package/dist/esm/libs/route/index.js +0 -82
- package/dist/esm/libs/route/matcher.js +0 -92
- package/dist/esm/libs/route/route.js +0 -17
- package/dist/esm/libs/serveFile.js +0 -68
- package/dist/esm/libs/serverTiming.js +0 -22
- package/dist/esm/renderHtml.js +0 -133
- package/dist/esm/server/index.js +0 -350
- package/dist/esm/server/modernServer.js +0 -884
- package/dist/esm/server/modernServerSplit.js +0 -113
- package/dist/esm/utils.js +0 -103
- package/dist/esm/workerServer.js +0 -352
- package/dist/esm-node/constants.js +0 -43
- package/dist/esm-node/libs/context/context.js +0 -202
- package/dist/esm-node/libs/context/index.js +0 -6
- package/dist/esm-node/libs/hook-api/afterRenderForStream.js +0 -10
- package/dist/esm-node/libs/hook-api/base.js +0 -61
- package/dist/esm-node/libs/hook-api/index.js +0 -57
- package/dist/esm-node/libs/hook-api/index.worker.js +0 -89
- package/dist/esm-node/libs/hook-api/route.js +0 -20
- package/dist/esm-node/libs/hook-api/template.js +0 -47
- package/dist/esm-node/libs/hook-api/templateForStream.js +0 -28
- package/dist/esm-node/libs/loadConfig.js +0 -34
- package/dist/esm-node/libs/metrics.js +0 -9
- package/dist/esm-node/libs/preload/flushServerHeader.js +0 -25
- package/dist/esm-node/libs/preload/index.js +0 -2
- package/dist/esm-node/libs/preload/parseLinks.js +0 -90
- package/dist/esm-node/libs/preload/shouldFlushServerHeader.js +0 -27
- package/dist/esm-node/libs/preload/transformLinks2String.js +0 -126
- package/dist/esm-node/libs/proxy.js +0 -74
- package/dist/esm-node/libs/render/index.js +0 -75
- package/dist/esm-node/libs/render/measure.js +0 -49
- package/dist/esm-node/libs/render/ssr.js +0 -96
- package/dist/esm-node/libs/render/ssrCache/cacheMod.js +0 -17
- package/dist/esm-node/libs/render/ssrCache/index.js +0 -66
- package/dist/esm-node/libs/render/ssrCache/manager.js +0 -96
- package/dist/esm-node/libs/render/static.js +0 -38
- package/dist/esm-node/libs/render/type.js +0 -9
- package/dist/esm-node/libs/render/utils.js +0 -16
- package/dist/esm-node/libs/reporter.js +0 -15
- package/dist/esm-node/libs/route/index.js +0 -58
- package/dist/esm-node/libs/route/matcher.js +0 -89
- package/dist/esm-node/libs/route/route.js +0 -16
- package/dist/esm-node/libs/serveFile.js +0 -49
- package/dist/esm-node/libs/serverTiming.js +0 -17
- package/dist/esm-node/renderHtml.js +0 -73
- package/dist/esm-node/server/index.js +0 -189
- package/dist/esm-node/server/modernServer.js +0 -488
- package/dist/esm-node/server/modernServerSplit.js +0 -43
- package/dist/esm-node/utils.js +0 -132
- package/dist/esm-node/workerServer.js +0 -235
- package/dist/types/constants.d.ts +0 -30
- package/dist/types/libs/context/context.d.ts +0 -62
- package/dist/types/libs/context/index.d.ts +0 -7
- package/dist/types/libs/hook-api/afterRenderForStream.d.ts +0 -4
- package/dist/types/libs/hook-api/base.d.ts +0 -53
- package/dist/types/libs/hook-api/index.d.ts +0 -6
- package/dist/types/libs/hook-api/index.worker.d.ts +0 -19
- package/dist/types/libs/hook-api/route.d.ts +0 -9
- package/dist/types/libs/hook-api/template.d.ts +0 -22
- package/dist/types/libs/hook-api/templateForStream.d.ts +0 -8
- package/dist/types/libs/loadConfig.d.ts +0 -13
- package/dist/types/libs/metrics.d.ts +0 -3
- package/dist/types/libs/preload/flushServerHeader.d.ts +0 -14
- package/dist/types/libs/preload/index.d.ts +0 -2
- package/dist/types/libs/preload/parseLinks.d.ts +0 -13
- package/dist/types/libs/preload/shouldFlushServerHeader.d.ts +0 -3
- package/dist/types/libs/preload/transformLinks2String.d.ts +0 -3
- package/dist/types/libs/proxy.d.ts +0 -13
- package/dist/types/libs/render/index.d.ts +0 -21
- package/dist/types/libs/render/measure.d.ts +0 -10
- package/dist/types/libs/render/ssr.d.ts +0 -12
- package/dist/types/libs/render/ssrCache/cacheMod.d.ts +0 -8
- package/dist/types/libs/render/ssrCache/index.d.ts +0 -6
- package/dist/types/libs/render/ssrCache/manager.d.ts +0 -20
- package/dist/types/libs/render/static.d.ts +0 -3
- package/dist/types/libs/render/type.d.ts +0 -36
- package/dist/types/libs/render/utils.d.ts +0 -5
- package/dist/types/libs/reporter.d.ts +0 -2
- package/dist/types/libs/route/index.d.ts +0 -15
- package/dist/types/libs/route/matcher.d.ts +0 -15
- package/dist/types/libs/route/route.d.ts +0 -14
- package/dist/types/libs/serveFile.d.ts +0 -9
- package/dist/types/libs/serverTiming.d.ts +0 -13
- package/dist/types/renderHtml.d.ts +0 -23
- package/dist/types/server/index.d.ts +0 -55
- package/dist/types/server/modernServer.d.ts +0 -71
- package/dist/types/server/modernServerSplit.d.ts +0 -2
- package/dist/types/type.d.ts +0 -78
- package/dist/types/utils.d.ts +0 -24
- package/dist/types/workerServer.d.ts +0 -59
- /package/dist/esm/{type.js → types.js} +0 -0
- /package/dist/esm-node/{type.js → types.js} +0 -0
package/README.md
CHANGED
|
@@ -1,26 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
<a href="https://modernjs.dev" target="blank"><img src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ylaelkeh7nuhfnuhf/modernjs-cover.png" width="300" alt="Modern.js Logo" /></a>
|
|
3
|
-
</p>
|
|
1
|
+
# Modern.js Package
|
|
4
2
|
|
|
5
|
-
|
|
3
|
+
## Get Started
|
|
6
4
|
|
|
7
|
-
|
|
8
|
-
A Progressive React Framework for modern web development.
|
|
9
|
-
</p>
|
|
5
|
+
Run and debug the module:
|
|
10
6
|
|
|
11
|
-
|
|
7
|
+
```bash
|
|
8
|
+
pnpm run dev
|
|
9
|
+
```
|
|
12
10
|
|
|
13
|
-
|
|
11
|
+
Run test cases:
|
|
14
12
|
|
|
15
|
-
|
|
13
|
+
```bash
|
|
14
|
+
pnpm run test
|
|
15
|
+
```
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
- [中文文档](https://modernjs.dev)
|
|
17
|
+
Build the module for production:
|
|
19
18
|
|
|
20
|
-
|
|
19
|
+
```bash
|
|
20
|
+
pnpm run build
|
|
21
|
+
```
|
|
21
22
|
|
|
22
|
-
|
|
23
|
+
Enable optional features:
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
```bash
|
|
26
|
+
pnpm run new
|
|
27
|
+
```
|
|
25
28
|
|
|
26
|
-
|
|
29
|
+
|
|
30
|
+
For more information, see the [Modern.js Module documentation](https://modernjs.dev/module-tools/en).
|
|
@@ -16,25 +16,24 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
21
|
-
|
|
19
|
+
var error_exports = {};
|
|
20
|
+
__export(error_exports, {
|
|
21
|
+
ErrorDigest: () => ErrorDigest,
|
|
22
|
+
onError: () => onError
|
|
22
23
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
this.bundle = routeSpec.bundle || "";
|
|
34
|
-
this.responseHeaders = routeSpec.responseHeaders;
|
|
35
|
-
}
|
|
24
|
+
module.exports = __toCommonJS(error_exports);
|
|
25
|
+
var ErrorDigest;
|
|
26
|
+
(function(ErrorDigest2) {
|
|
27
|
+
ErrorDigest2["ENOTF"] = "Page could not be found";
|
|
28
|
+
ErrorDigest2["EINTER"] = "Internal server error";
|
|
29
|
+
})(ErrorDigest || (ErrorDigest = {}));
|
|
30
|
+
function onError(logger, digest, error, req) {
|
|
31
|
+
const headers = req === null || req === void 0 ? void 0 : req.headers;
|
|
32
|
+
headers === null || headers === void 0 ? void 0 : headers.delete("cookie");
|
|
33
|
+
logger.error(req ? `Server Error - ${digest}, error = %s, req.url = %s, req.headers = %o` : `Server Error - ${digest}, error = %s`, error instanceof Error ? error.stack || error.message : error, req === null || req === void 0 ? void 0 : req.url, headers);
|
|
36
34
|
}
|
|
37
35
|
// Annotate the CommonJS export names for ESM import in node:
|
|
38
36
|
0 && (module.exports = {
|
|
39
|
-
|
|
37
|
+
ErrorDigest,
|
|
38
|
+
onError
|
|
40
39
|
});
|
package/dist/cjs/index.js
CHANGED
|
@@ -15,36 +15,30 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
15
|
}
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
|
-
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
19
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
19
|
var src_exports = {};
|
|
21
20
|
__export(src_exports, {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
createProxyHandler: () => import_proxy.createProxyHandler,
|
|
25
|
-
createRenderHandler: () => import_render.createRenderHandler,
|
|
26
|
-
default: () => src_default
|
|
21
|
+
createProdServer: () => createProdServer,
|
|
22
|
+
initProdMiddlewares: () => import_init2.initProdMiddlewares
|
|
27
23
|
});
|
|
28
24
|
module.exports = __toCommonJS(src_exports);
|
|
29
|
-
var
|
|
30
|
-
var
|
|
31
|
-
var
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
25
|
+
var import_node = require("@modern-js/server-core/base/node");
|
|
26
|
+
var import_base = require("@modern-js/server-core/base");
|
|
27
|
+
var import_init = require("./init");
|
|
28
|
+
var import_init2 = require("./init");
|
|
29
|
+
const createProdServer = async (options) => {
|
|
30
|
+
const server = (0, import_base.createServerBase)(options);
|
|
31
|
+
await (0, import_node.loadServerEnv)(options);
|
|
32
|
+
await server.init();
|
|
33
|
+
const nodeServer = (0, import_node.createNodeServer)(server.handle.bind(server));
|
|
34
|
+
await server.runner.beforeServerInit({
|
|
35
|
+
app: nodeServer
|
|
36
|
+
});
|
|
37
|
+
await (0, import_init.initProdMiddlewares)(server, options);
|
|
38
|
+
return nodeServer;
|
|
41
39
|
};
|
|
42
40
|
// Annotate the CommonJS export names for ESM import in node:
|
|
43
41
|
0 && (module.exports = {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
createProxyHandler,
|
|
47
|
-
createRenderHandler,
|
|
48
|
-
...require("./type"),
|
|
49
|
-
...require("./constants")
|
|
42
|
+
createProdServer,
|
|
43
|
+
initProdMiddlewares
|
|
50
44
|
});
|
package/dist/cjs/init.js
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
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 init_exports = {};
|
|
20
|
+
__export(init_exports, {
|
|
21
|
+
initProdMiddlewares: () => initProdMiddlewares
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(init_exports);
|
|
24
|
+
var import_base = require("@modern-js/server-core/base");
|
|
25
|
+
var import_utils = require("@modern-js/utils");
|
|
26
|
+
var import_node = require("@modern-js/server-core/base/node");
|
|
27
|
+
var import_error = require("./error");
|
|
28
|
+
function getLogger() {
|
|
29
|
+
if (process.env.DEBUG || process.env.NODE_ENV === "production") {
|
|
30
|
+
return (0, import_utils.createLogger)({
|
|
31
|
+
level: "verbose"
|
|
32
|
+
});
|
|
33
|
+
} else {
|
|
34
|
+
return (0, import_utils.createLogger)();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const initProdMiddlewares = async (server, options) => {
|
|
38
|
+
const { config, pwd, routes, logger: inputLogger } = options;
|
|
39
|
+
const logger = inputLogger || getLogger();
|
|
40
|
+
const staticMiddleware = (0, import_node.createStaticMiddleware)({
|
|
41
|
+
pwd,
|
|
42
|
+
output: (config === null || config === void 0 ? void 0 : config.output) || {},
|
|
43
|
+
html: (config === null || config === void 0 ? void 0 : config.html) || {},
|
|
44
|
+
routes
|
|
45
|
+
});
|
|
46
|
+
server.all("*", import_base.processedBy);
|
|
47
|
+
server.all("*", (0, import_base.injectReporter)());
|
|
48
|
+
server.all("*", (0, import_base.injectLogger)(logger));
|
|
49
|
+
server.all("*", (0, import_base.logHandler)());
|
|
50
|
+
server.all("*", (0, import_node.injectServerManifest)(pwd, routes));
|
|
51
|
+
server.all("*", (0, import_node.injectTemplates)(pwd, routes));
|
|
52
|
+
server.notFound((c) => {
|
|
53
|
+
const logger2 = c.get("logger");
|
|
54
|
+
(0, import_error.onError)(logger2, import_error.ErrorDigest.ENOTF, "404 not found", c.req.raw);
|
|
55
|
+
return c.html((0, import_base.createErrorHtml)(404), 404);
|
|
56
|
+
});
|
|
57
|
+
server.onError((err, c) => {
|
|
58
|
+
const logger2 = c.get("logger");
|
|
59
|
+
(0, import_error.onError)(logger2, import_error.ErrorDigest.EINTER, err, c.req.raw);
|
|
60
|
+
return c.html((0, import_base.createErrorHtml)(500), 500);
|
|
61
|
+
});
|
|
62
|
+
server.get("*", staticMiddleware);
|
|
63
|
+
server.get("*", import_base.favionFallbackMiddleware);
|
|
64
|
+
await (0, import_node.bindBFFHandler)(server, options);
|
|
65
|
+
await (0, import_base.bindRenderHandler)(server, options);
|
|
66
|
+
return server;
|
|
67
|
+
};
|
|
68
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
69
|
+
0 && (module.exports = {
|
|
70
|
+
initProdMiddlewares
|
|
71
|
+
});
|
|
@@ -12,5 +12,5 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
12
12
|
return to;
|
|
13
13
|
};
|
|
14
14
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
-
var
|
|
16
|
-
module.exports = __toCommonJS(
|
|
15
|
+
var types_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(types_exports);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { _ as _instanceof } from "@swc/helpers/_/_instanceof";
|
|
2
|
+
var ErrorDigest;
|
|
3
|
+
(function(ErrorDigest2) {
|
|
4
|
+
ErrorDigest2["ENOTF"] = "Page could not be found";
|
|
5
|
+
ErrorDigest2["EINTER"] = "Internal server error";
|
|
6
|
+
})(ErrorDigest || (ErrorDigest = {}));
|
|
7
|
+
function onError(logger, digest, error, req) {
|
|
8
|
+
var headers = req === null || req === void 0 ? void 0 : req.headers;
|
|
9
|
+
headers === null || headers === void 0 ? void 0 : headers.delete("cookie");
|
|
10
|
+
logger.error(req ? "Server Error - ".concat(digest, ", error = %s, req.url = %s, req.headers = %o") : "Server Error - ".concat(digest, ", error = %s"), _instanceof(error, Error) ? error.stack || error.message : error, req === null || req === void 0 ? void 0 : req.url, headers);
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
ErrorDigest,
|
|
14
|
+
onError
|
|
15
|
+
};
|
package/dist/esm/index.js
CHANGED
|
@@ -1,21 +1,55 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
function
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
2
|
+
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
3
|
+
import { createNodeServer, loadServerEnv } from "@modern-js/server-core/base/node";
|
|
4
|
+
import { createServerBase } from "@modern-js/server-core/base";
|
|
5
|
+
import { initProdMiddlewares } from "./init";
|
|
6
|
+
import { initProdMiddlewares as initProdMiddlewares2 } from "./init";
|
|
7
|
+
var createProdServer = function() {
|
|
8
|
+
var _ref = _async_to_generator(function(options) {
|
|
9
|
+
var server, nodeServer;
|
|
10
|
+
return _ts_generator(this, function(_state) {
|
|
11
|
+
switch (_state.label) {
|
|
12
|
+
case 0:
|
|
13
|
+
server = createServerBase(options);
|
|
14
|
+
return [
|
|
15
|
+
4,
|
|
16
|
+
loadServerEnv(options)
|
|
17
|
+
];
|
|
18
|
+
case 1:
|
|
19
|
+
_state.sent();
|
|
20
|
+
return [
|
|
21
|
+
4,
|
|
22
|
+
server.init()
|
|
23
|
+
];
|
|
24
|
+
case 2:
|
|
25
|
+
_state.sent();
|
|
26
|
+
nodeServer = createNodeServer(server.handle.bind(server));
|
|
27
|
+
return [
|
|
28
|
+
4,
|
|
29
|
+
server.runner.beforeServerInit({
|
|
30
|
+
app: nodeServer
|
|
31
|
+
})
|
|
32
|
+
];
|
|
33
|
+
case 3:
|
|
34
|
+
_state.sent();
|
|
35
|
+
return [
|
|
36
|
+
4,
|
|
37
|
+
initProdMiddlewares(server, options)
|
|
38
|
+
];
|
|
39
|
+
case 4:
|
|
40
|
+
_state.sent();
|
|
41
|
+
return [
|
|
42
|
+
2,
|
|
43
|
+
nodeServer
|
|
44
|
+
];
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
return function createProdServer2(options) {
|
|
49
|
+
return _ref.apply(this, arguments);
|
|
50
|
+
};
|
|
51
|
+
}();
|
|
15
52
|
export {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
createProxyHandler,
|
|
19
|
-
createRenderHandler,
|
|
20
|
-
src_default as default
|
|
53
|
+
createProdServer,
|
|
54
|
+
initProdMiddlewares2 as initProdMiddlewares
|
|
21
55
|
};
|
package/dist/esm/init.js
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
2
|
+
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
3
|
+
import { bindRenderHandler, favionFallbackMiddleware, injectReporter, injectLogger, createErrorHtml, logHandler, processedBy } from "@modern-js/server-core/base";
|
|
4
|
+
import { createLogger } from "@modern-js/utils";
|
|
5
|
+
import { injectTemplates, bindBFFHandler, injectServerManifest, createStaticMiddleware } from "@modern-js/server-core/base/node";
|
|
6
|
+
import { ErrorDigest, onError } from "./error";
|
|
7
|
+
function getLogger() {
|
|
8
|
+
if (process.env.DEBUG || process.env.NODE_ENV === "production") {
|
|
9
|
+
return createLogger({
|
|
10
|
+
level: "verbose"
|
|
11
|
+
});
|
|
12
|
+
} else {
|
|
13
|
+
return createLogger();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
var initProdMiddlewares = function() {
|
|
17
|
+
var _ref = _async_to_generator(function(server, options) {
|
|
18
|
+
var config, pwd, routes, inputLogger, logger, staticMiddleware;
|
|
19
|
+
return _ts_generator(this, function(_state) {
|
|
20
|
+
switch (_state.label) {
|
|
21
|
+
case 0:
|
|
22
|
+
config = options.config, pwd = options.pwd, routes = options.routes, inputLogger = options.logger;
|
|
23
|
+
logger = inputLogger || getLogger();
|
|
24
|
+
staticMiddleware = createStaticMiddleware({
|
|
25
|
+
pwd,
|
|
26
|
+
output: (config === null || config === void 0 ? void 0 : config.output) || {},
|
|
27
|
+
html: (config === null || config === void 0 ? void 0 : config.html) || {},
|
|
28
|
+
routes
|
|
29
|
+
});
|
|
30
|
+
server.all("*", processedBy);
|
|
31
|
+
server.all("*", injectReporter());
|
|
32
|
+
server.all("*", injectLogger(logger));
|
|
33
|
+
server.all("*", logHandler());
|
|
34
|
+
server.all("*", injectServerManifest(pwd, routes));
|
|
35
|
+
server.all("*", injectTemplates(pwd, routes));
|
|
36
|
+
server.notFound(function(c) {
|
|
37
|
+
var logger2 = c.get("logger");
|
|
38
|
+
onError(logger2, ErrorDigest.ENOTF, "404 not found", c.req.raw);
|
|
39
|
+
return c.html(createErrorHtml(404), 404);
|
|
40
|
+
});
|
|
41
|
+
server.onError(function(err, c) {
|
|
42
|
+
var logger2 = c.get("logger");
|
|
43
|
+
onError(logger2, ErrorDigest.EINTER, err, c.req.raw);
|
|
44
|
+
return c.html(createErrorHtml(500), 500);
|
|
45
|
+
});
|
|
46
|
+
server.get("*", staticMiddleware);
|
|
47
|
+
server.get("*", favionFallbackMiddleware);
|
|
48
|
+
return [
|
|
49
|
+
4,
|
|
50
|
+
bindBFFHandler(server, options)
|
|
51
|
+
];
|
|
52
|
+
case 1:
|
|
53
|
+
_state.sent();
|
|
54
|
+
return [
|
|
55
|
+
4,
|
|
56
|
+
bindRenderHandler(server, options)
|
|
57
|
+
];
|
|
58
|
+
case 2:
|
|
59
|
+
_state.sent();
|
|
60
|
+
return [
|
|
61
|
+
2,
|
|
62
|
+
server
|
|
63
|
+
];
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
return function initProdMiddlewares2(server, options) {
|
|
68
|
+
return _ref.apply(this, arguments);
|
|
69
|
+
};
|
|
70
|
+
}();
|
|
71
|
+
export {
|
|
72
|
+
initProdMiddlewares
|
|
73
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
var ErrorDigest;
|
|
2
|
+
(function(ErrorDigest2) {
|
|
3
|
+
ErrorDigest2["ENOTF"] = "Page could not be found";
|
|
4
|
+
ErrorDigest2["EINTER"] = "Internal server error";
|
|
5
|
+
})(ErrorDigest || (ErrorDigest = {}));
|
|
6
|
+
function onError(logger, digest, error, req) {
|
|
7
|
+
const headers = req === null || req === void 0 ? void 0 : req.headers;
|
|
8
|
+
headers === null || headers === void 0 ? void 0 : headers.delete("cookie");
|
|
9
|
+
logger.error(req ? `Server Error - ${digest}, error = %s, req.url = %s, req.headers = %o` : `Server Error - ${digest}, error = %s`, error instanceof Error ? error.stack || error.message : error, req === null || req === void 0 ? void 0 : req.url, headers);
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
ErrorDigest,
|
|
13
|
+
onError
|
|
14
|
+
};
|
package/dist/esm-node/index.js
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
import { createNodeServer, loadServerEnv } from "@modern-js/server-core/base/node";
|
|
2
|
+
import { createServerBase } from "@modern-js/server-core/base";
|
|
3
|
+
import { initProdMiddlewares } from "./init";
|
|
4
|
+
import { initProdMiddlewares as initProdMiddlewares2 } from "./init";
|
|
5
|
+
const createProdServer = async (options) => {
|
|
6
|
+
const server = createServerBase(options);
|
|
7
|
+
await loadServerEnv(options);
|
|
8
|
+
await server.init();
|
|
9
|
+
const nodeServer = createNodeServer(server.handle.bind(server));
|
|
10
|
+
await server.runner.beforeServerInit({
|
|
11
|
+
app: nodeServer
|
|
12
|
+
});
|
|
13
|
+
await initProdMiddlewares(server, options);
|
|
14
|
+
return nodeServer;
|
|
13
15
|
};
|
|
14
16
|
export {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
createProxyHandler,
|
|
18
|
-
createRenderHandler,
|
|
19
|
-
src_default as default
|
|
17
|
+
createProdServer,
|
|
18
|
+
initProdMiddlewares2 as initProdMiddlewares
|
|
20
19
|
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { bindRenderHandler, favionFallbackMiddleware, injectReporter, injectLogger, createErrorHtml, logHandler, processedBy } from "@modern-js/server-core/base";
|
|
2
|
+
import { createLogger } from "@modern-js/utils";
|
|
3
|
+
import { injectTemplates, bindBFFHandler, injectServerManifest, createStaticMiddleware } from "@modern-js/server-core/base/node";
|
|
4
|
+
import { ErrorDigest, onError } from "./error";
|
|
5
|
+
function getLogger() {
|
|
6
|
+
if (process.env.DEBUG || process.env.NODE_ENV === "production") {
|
|
7
|
+
return createLogger({
|
|
8
|
+
level: "verbose"
|
|
9
|
+
});
|
|
10
|
+
} else {
|
|
11
|
+
return createLogger();
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
const initProdMiddlewares = async (server, options) => {
|
|
15
|
+
const { config, pwd, routes, logger: inputLogger } = options;
|
|
16
|
+
const logger = inputLogger || getLogger();
|
|
17
|
+
const staticMiddleware = createStaticMiddleware({
|
|
18
|
+
pwd,
|
|
19
|
+
output: (config === null || config === void 0 ? void 0 : config.output) || {},
|
|
20
|
+
html: (config === null || config === void 0 ? void 0 : config.html) || {},
|
|
21
|
+
routes
|
|
22
|
+
});
|
|
23
|
+
server.all("*", processedBy);
|
|
24
|
+
server.all("*", injectReporter());
|
|
25
|
+
server.all("*", injectLogger(logger));
|
|
26
|
+
server.all("*", logHandler());
|
|
27
|
+
server.all("*", injectServerManifest(pwd, routes));
|
|
28
|
+
server.all("*", injectTemplates(pwd, routes));
|
|
29
|
+
server.notFound((c) => {
|
|
30
|
+
const logger2 = c.get("logger");
|
|
31
|
+
onError(logger2, ErrorDigest.ENOTF, "404 not found", c.req.raw);
|
|
32
|
+
return c.html(createErrorHtml(404), 404);
|
|
33
|
+
});
|
|
34
|
+
server.onError((err, c) => {
|
|
35
|
+
const logger2 = c.get("logger");
|
|
36
|
+
onError(logger2, ErrorDigest.EINTER, err, c.req.raw);
|
|
37
|
+
return c.html(createErrorHtml(500), 500);
|
|
38
|
+
});
|
|
39
|
+
server.get("*", staticMiddleware);
|
|
40
|
+
server.get("*", favionFallbackMiddleware);
|
|
41
|
+
await bindBFFHandler(server, options);
|
|
42
|
+
await bindRenderHandler(server, options);
|
|
43
|
+
return server;
|
|
44
|
+
};
|
|
45
|
+
export {
|
|
46
|
+
initProdMiddlewares
|
|
47
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Logger } from '@modern-js/types';
|
|
2
|
+
export declare enum ErrorDigest {
|
|
3
|
+
ENOTF = "Page could not be found",
|
|
4
|
+
EINTER = "Internal server error"
|
|
5
|
+
}
|
|
6
|
+
export declare function onError(logger: Logger, digest: ErrorDigest, error: Error | string, req?: Request): void;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
export {
|
|
4
|
-
export type {
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export { createRenderHandler } from './libs/render';
|
|
10
|
-
declare const _default: (options: ModernServerOptions) => Promise<Server>;
|
|
11
|
-
export default _default;
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { ProdServerOptions } from './types';
|
|
3
|
+
export { initProdMiddlewares, type InitProdMiddlewares } from './init';
|
|
4
|
+
export type { ProdServerOptions, BaseEnv } from './types';
|
|
5
|
+
export declare const createProdServer: (options: ProdServerOptions) => Promise<import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse> & {
|
|
6
|
+
getRequestListener: () => (req: import("http").IncomingMessage, res: import("@modern-js/server-core/dist/types/core").NodeResponse) => Promise<void>;
|
|
7
|
+
getRequestHandler: () => import("@modern-js/server-core/dist/types/core/server").RequestHandler;
|
|
8
|
+
}>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ServerBase } from '@modern-js/server-core/base';
|
|
2
|
+
import { ProdServerOptions, BaseEnv } from './types';
|
|
3
|
+
export type InitProdMiddlewares = typeof initProdMiddlewares;
|
|
4
|
+
export declare const initProdMiddlewares: (server: ServerBase<BaseEnv>, options: ProdServerOptions) => Promise<ServerBase<BaseEnv>>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ServerBaseOptions, BindRenderHandleOptions } from '@modern-js/server-core/base';
|
|
2
|
+
import { Reporter } from '@modern-js/types';
|
|
3
|
+
import { Logger } from '@modern-js/utils';
|
|
4
|
+
interface MonitorOptions {
|
|
5
|
+
logger?: Logger;
|
|
6
|
+
}
|
|
7
|
+
export type ProdServerOptions = ServerBaseOptions & Omit<BindRenderHandleOptions, 'templates'> & MonitorOptions;
|
|
8
|
+
export type BaseEnv = {
|
|
9
|
+
Variables: {
|
|
10
|
+
logger: Logger;
|
|
11
|
+
reporter: Reporter;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export {};
|