@modern-js/prod-server 2.48.6 → 2.49.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.
Files changed (174) hide show
  1. package/README.md +20 -16
  2. package/dist/cjs/{libs/route/route.js → error.js} +16 -17
  3. package/dist/cjs/index.js +18 -24
  4. package/dist/cjs/init.js +71 -0
  5. package/dist/cjs/{type.js → types.js} +2 -2
  6. package/dist/esm/error.js +15 -0
  7. package/dist/esm/index.js +53 -19
  8. package/dist/esm/init.js +73 -0
  9. package/dist/esm-node/error.js +14 -0
  10. package/dist/esm-node/index.js +16 -17
  11. package/dist/esm-node/init.js +47 -0
  12. package/dist/types/error.d.ts +6 -0
  13. package/dist/types/index.d.ts +8 -11
  14. package/dist/types/init.d.ts +4 -0
  15. package/dist/types/types.d.ts +14 -0
  16. package/package.json +23 -64
  17. package/dist/cjs/constants.js +0 -72
  18. package/dist/cjs/libs/context/context.js +0 -236
  19. package/dist/cjs/libs/context/index.js +0 -31
  20. package/dist/cjs/libs/hook-api/afterRenderForStream.js +0 -34
  21. package/dist/cjs/libs/hook-api/base.js +0 -96
  22. package/dist/cjs/libs/hook-api/index.js +0 -85
  23. package/dist/cjs/libs/hook-api/index.worker.js +0 -116
  24. package/dist/cjs/libs/hook-api/route.js +0 -44
  25. package/dist/cjs/libs/hook-api/template.js +0 -72
  26. package/dist/cjs/libs/hook-api/templateForStream.js +0 -52
  27. package/dist/cjs/libs/loadConfig.js +0 -70
  28. package/dist/cjs/libs/metrics.js +0 -33
  29. package/dist/cjs/libs/preload/flushServerHeader.js +0 -49
  30. package/dist/cjs/libs/preload/index.js +0 -24
  31. package/dist/cjs/libs/preload/parseLinks.js +0 -124
  32. package/dist/cjs/libs/preload/shouldFlushServerHeader.js +0 -52
  33. package/dist/cjs/libs/preload/transformLinks2String.js +0 -150
  34. package/dist/cjs/libs/proxy.js +0 -99
  35. package/dist/cjs/libs/render/index.js +0 -109
  36. package/dist/cjs/libs/render/measure.js +0 -74
  37. package/dist/cjs/libs/render/ssr.js +0 -130
  38. package/dist/cjs/libs/render/ssrCache/cacheMod.js +0 -51
  39. package/dist/cjs/libs/render/ssrCache/index.js +0 -90
  40. package/dist/cjs/libs/render/ssrCache/manager.js +0 -120
  41. package/dist/cjs/libs/render/static.js +0 -72
  42. package/dist/cjs/libs/render/type.js +0 -33
  43. package/dist/cjs/libs/render/utils.js +0 -41
  44. package/dist/cjs/libs/reporter.js +0 -39
  45. package/dist/cjs/libs/route/index.js +0 -83
  46. package/dist/cjs/libs/route/matcher.js +0 -113
  47. package/dist/cjs/libs/serveFile.js +0 -84
  48. package/dist/cjs/libs/serverTiming.js +0 -41
  49. package/dist/cjs/renderHtml.js +0 -65
  50. package/dist/cjs/server/index.js +0 -223
  51. package/dist/cjs/server/modernServer.js +0 -522
  52. package/dist/cjs/server/modernServerSplit.js +0 -67
  53. package/dist/cjs/utils.js +0 -164
  54. package/dist/cjs/workerServer.js +0 -260
  55. package/dist/esm/constants.js +0 -43
  56. package/dist/esm/libs/context/context.js +0 -260
  57. package/dist/esm/libs/context/index.js +0 -8
  58. package/dist/esm/libs/hook-api/afterRenderForStream.js +0 -33
  59. package/dist/esm/libs/hook-api/base.js +0 -73
  60. package/dist/esm/libs/hook-api/index.js +0 -55
  61. package/dist/esm/libs/hook-api/index.worker.js +0 -99
  62. package/dist/esm/libs/hook-api/route.js +0 -26
  63. package/dist/esm/libs/hook-api/template.js +0 -56
  64. package/dist/esm/libs/hook-api/templateForStream.js +0 -35
  65. package/dist/esm/libs/loadConfig.js +0 -36
  66. package/dist/esm/libs/metrics.js +0 -9
  67. package/dist/esm/libs/preload/flushServerHeader.js +0 -50
  68. package/dist/esm/libs/preload/index.js +0 -2
  69. package/dist/esm/libs/preload/parseLinks.js +0 -172
  70. package/dist/esm/libs/preload/shouldFlushServerHeader.js +0 -27
  71. package/dist/esm/libs/preload/transformLinks2String.js +0 -140
  72. package/dist/esm/libs/proxy.js +0 -160
  73. package/dist/esm/libs/render/index.js +0 -175
  74. package/dist/esm/libs/render/measure.js +0 -69
  75. package/dist/esm/libs/render/ssr.js +0 -133
  76. package/dist/esm/libs/render/ssrCache/cacheMod.js +0 -25
  77. package/dist/esm/libs/render/ssrCache/index.js +0 -170
  78. package/dist/esm/libs/render/ssrCache/manager.js +0 -178
  79. package/dist/esm/libs/render/static.js +0 -100
  80. package/dist/esm/libs/render/type.js +0 -9
  81. package/dist/esm/libs/render/utils.js +0 -16
  82. package/dist/esm/libs/reporter.js +0 -15
  83. package/dist/esm/libs/route/index.js +0 -82
  84. package/dist/esm/libs/route/matcher.js +0 -92
  85. package/dist/esm/libs/route/route.js +0 -17
  86. package/dist/esm/libs/serveFile.js +0 -68
  87. package/dist/esm/libs/serverTiming.js +0 -22
  88. package/dist/esm/renderHtml.js +0 -133
  89. package/dist/esm/server/index.js +0 -350
  90. package/dist/esm/server/modernServer.js +0 -884
  91. package/dist/esm/server/modernServerSplit.js +0 -113
  92. package/dist/esm/utils.js +0 -103
  93. package/dist/esm/workerServer.js +0 -352
  94. package/dist/esm-node/constants.js +0 -43
  95. package/dist/esm-node/libs/context/context.js +0 -202
  96. package/dist/esm-node/libs/context/index.js +0 -6
  97. package/dist/esm-node/libs/hook-api/afterRenderForStream.js +0 -10
  98. package/dist/esm-node/libs/hook-api/base.js +0 -61
  99. package/dist/esm-node/libs/hook-api/index.js +0 -57
  100. package/dist/esm-node/libs/hook-api/index.worker.js +0 -89
  101. package/dist/esm-node/libs/hook-api/route.js +0 -20
  102. package/dist/esm-node/libs/hook-api/template.js +0 -47
  103. package/dist/esm-node/libs/hook-api/templateForStream.js +0 -28
  104. package/dist/esm-node/libs/loadConfig.js +0 -34
  105. package/dist/esm-node/libs/metrics.js +0 -9
  106. package/dist/esm-node/libs/preload/flushServerHeader.js +0 -25
  107. package/dist/esm-node/libs/preload/index.js +0 -2
  108. package/dist/esm-node/libs/preload/parseLinks.js +0 -90
  109. package/dist/esm-node/libs/preload/shouldFlushServerHeader.js +0 -27
  110. package/dist/esm-node/libs/preload/transformLinks2String.js +0 -126
  111. package/dist/esm-node/libs/proxy.js +0 -74
  112. package/dist/esm-node/libs/render/index.js +0 -75
  113. package/dist/esm-node/libs/render/measure.js +0 -49
  114. package/dist/esm-node/libs/render/ssr.js +0 -96
  115. package/dist/esm-node/libs/render/ssrCache/cacheMod.js +0 -17
  116. package/dist/esm-node/libs/render/ssrCache/index.js +0 -66
  117. package/dist/esm-node/libs/render/ssrCache/manager.js +0 -96
  118. package/dist/esm-node/libs/render/static.js +0 -38
  119. package/dist/esm-node/libs/render/type.js +0 -9
  120. package/dist/esm-node/libs/render/utils.js +0 -16
  121. package/dist/esm-node/libs/reporter.js +0 -15
  122. package/dist/esm-node/libs/route/index.js +0 -58
  123. package/dist/esm-node/libs/route/matcher.js +0 -89
  124. package/dist/esm-node/libs/route/route.js +0 -16
  125. package/dist/esm-node/libs/serveFile.js +0 -49
  126. package/dist/esm-node/libs/serverTiming.js +0 -17
  127. package/dist/esm-node/renderHtml.js +0 -73
  128. package/dist/esm-node/server/index.js +0 -189
  129. package/dist/esm-node/server/modernServer.js +0 -488
  130. package/dist/esm-node/server/modernServerSplit.js +0 -43
  131. package/dist/esm-node/utils.js +0 -132
  132. package/dist/esm-node/workerServer.js +0 -235
  133. package/dist/types/constants.d.ts +0 -30
  134. package/dist/types/libs/context/context.d.ts +0 -62
  135. package/dist/types/libs/context/index.d.ts +0 -7
  136. package/dist/types/libs/hook-api/afterRenderForStream.d.ts +0 -4
  137. package/dist/types/libs/hook-api/base.d.ts +0 -53
  138. package/dist/types/libs/hook-api/index.d.ts +0 -6
  139. package/dist/types/libs/hook-api/index.worker.d.ts +0 -19
  140. package/dist/types/libs/hook-api/route.d.ts +0 -9
  141. package/dist/types/libs/hook-api/template.d.ts +0 -22
  142. package/dist/types/libs/hook-api/templateForStream.d.ts +0 -8
  143. package/dist/types/libs/loadConfig.d.ts +0 -13
  144. package/dist/types/libs/metrics.d.ts +0 -3
  145. package/dist/types/libs/preload/flushServerHeader.d.ts +0 -14
  146. package/dist/types/libs/preload/index.d.ts +0 -2
  147. package/dist/types/libs/preload/parseLinks.d.ts +0 -13
  148. package/dist/types/libs/preload/shouldFlushServerHeader.d.ts +0 -3
  149. package/dist/types/libs/preload/transformLinks2String.d.ts +0 -3
  150. package/dist/types/libs/proxy.d.ts +0 -13
  151. package/dist/types/libs/render/index.d.ts +0 -21
  152. package/dist/types/libs/render/measure.d.ts +0 -10
  153. package/dist/types/libs/render/ssr.d.ts +0 -12
  154. package/dist/types/libs/render/ssrCache/cacheMod.d.ts +0 -8
  155. package/dist/types/libs/render/ssrCache/index.d.ts +0 -6
  156. package/dist/types/libs/render/ssrCache/manager.d.ts +0 -20
  157. package/dist/types/libs/render/static.d.ts +0 -3
  158. package/dist/types/libs/render/type.d.ts +0 -36
  159. package/dist/types/libs/render/utils.d.ts +0 -5
  160. package/dist/types/libs/reporter.d.ts +0 -2
  161. package/dist/types/libs/route/index.d.ts +0 -15
  162. package/dist/types/libs/route/matcher.d.ts +0 -15
  163. package/dist/types/libs/route/route.d.ts +0 -14
  164. package/dist/types/libs/serveFile.d.ts +0 -9
  165. package/dist/types/libs/serverTiming.d.ts +0 -13
  166. package/dist/types/renderHtml.d.ts +0 -23
  167. package/dist/types/server/index.d.ts +0 -55
  168. package/dist/types/server/modernServer.d.ts +0 -71
  169. package/dist/types/server/modernServerSplit.d.ts +0 -2
  170. package/dist/types/type.d.ts +0 -78
  171. package/dist/types/utils.d.ts +0 -24
  172. package/dist/types/workerServer.d.ts +0 -59
  173. /package/dist/esm/{type.js → types.js} +0 -0
  174. /package/dist/esm-node/{type.js → types.js} +0 -0
package/README.md CHANGED
@@ -1,26 +1,30 @@
1
- <p align="center">
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
- <h1 align="center">Modern.js</h1>
3
+ ## Get Started
6
4
 
7
- <p align="center">
8
- A Progressive React Framework for modern web development.
9
- </p>
5
+ Run and debug the module:
10
6
 
11
- ## Getting Started
7
+ ```bash
8
+ pnpm run dev
9
+ ```
12
10
 
13
- Please follow [Quick Start](https://modernjs.dev/en/guides/get-started/quick-start) to get started with Modern.js.
11
+ Run test cases:
14
12
 
15
- ## Documentation
13
+ ```bash
14
+ pnpm run test
15
+ ```
16
16
 
17
- - [English Documentation](https://modernjs.dev/en/)
18
- - [中文文档](https://modernjs.dev)
17
+ Build the module for production:
19
18
 
20
- ## Contributing
19
+ ```bash
20
+ pnpm run build
21
+ ```
21
22
 
22
- Please read the [Contributing Guide](https://github.com/web-infra-dev/modern.js/blob/main/CONTRIBUTING.md).
23
+ Enable optional features:
23
24
 
24
- ## License
25
+ ```bash
26
+ pnpm run new
27
+ ```
25
28
 
26
- Modern.js is [MIT licensed](https://github.com/web-infra-dev/modern.js/blob/main/LICENSE).
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 route_exports = {};
20
- __export(route_exports, {
21
- ModernRoute: () => ModernRoute
19
+ var error_exports = {};
20
+ __export(error_exports, {
21
+ ErrorDigest: () => ErrorDigest,
22
+ onError: () => onError
22
23
  });
23
- module.exports = __toCommonJS(route_exports);
24
- class ModernRoute {
25
- constructor(routeSpec) {
26
- this.params = {};
27
- this.entryName = routeSpec.entryName || "";
28
- this.urlPath = routeSpec.urlPath;
29
- this.entryPath = routeSpec.entryPath || "";
30
- this.isSSR = routeSpec.isSSR || false;
31
- this.isSPA = routeSpec.isSPA || false;
32
- this.isApi = routeSpec.isApi || false;
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
- ModernRoute
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
- ModernServer: () => import_modernServer.ModernServer,
23
- Server: () => import_server.Server,
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 import_server = require("./server");
30
- var import_modernServer = require("./server/modernServer");
31
- var import_proxy = require("./libs/proxy");
32
- __reExport(src_exports, require("./type"), module.exports);
33
- __reExport(src_exports, require("./constants"), module.exports);
34
- var import_render = require("./libs/render");
35
- var src_default = (options) => {
36
- if (options == null) {
37
- throw new Error("can not start mserver without options");
38
- }
39
- const server = new import_server.Server(options);
40
- return server.init();
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
- ModernServer,
45
- Server,
46
- createProxyHandler,
47
- createRenderHandler,
48
- ...require("./type"),
49
- ...require("./constants")
42
+ createProdServer,
43
+ initProdMiddlewares
50
44
  });
@@ -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 type_exports = {};
16
- module.exports = __toCommonJS(type_exports);
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 { Server } from "./server";
2
- import { ModernServer } from "./server/modernServer";
3
- import { createProxyHandler } from "./libs/proxy";
4
- export * from "./type";
5
- export * from "./constants";
6
- import { createRenderHandler } from "./libs/render";
7
- function src_default(options) {
8
- if (options == null) {
9
- throw new Error("can not start mserver without options");
10
- }
11
- var server = new Server(options);
12
- return server.init();
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
- ModernServer,
17
- Server,
18
- createProxyHandler,
19
- createRenderHandler,
20
- src_default as default
53
+ createProdServer,
54
+ initProdMiddlewares2 as initProdMiddlewares
21
55
  };
@@ -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
+ };
@@ -1,20 +1,19 @@
1
- import { Server } from "./server";
2
- import { ModernServer } from "./server/modernServer";
3
- import { createProxyHandler } from "./libs/proxy";
4
- export * from "./type";
5
- export * from "./constants";
6
- import { createRenderHandler } from "./libs/render";
7
- var src_default = (options) => {
8
- if (options == null) {
9
- throw new Error("can not start mserver without options");
10
- }
11
- const server = new Server(options);
12
- return server.init();
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
- ModernServer,
16
- Server,
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;
@@ -1,11 +1,8 @@
1
- import { ModernServerOptions } from './type';
2
- import { Server } from './server';
3
- export { Server };
4
- export type { ServerConfig } from '@modern-js/server-core';
5
- export { ModernServer } from './server/modernServer';
6
- export { createProxyHandler } from './libs/proxy';
7
- export * from './type';
8
- export * from './constants';
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 {};