@modern-js/server-core 2.47.0 → 2.47.1-alpha.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.
Files changed (142) hide show
  1. package/dist/cjs/base/adapters/node/bff.js +69 -0
  2. package/dist/cjs/base/adapters/node/hono.js +62 -0
  3. package/dist/cjs/base/adapters/node/index.js +32 -0
  4. package/dist/cjs/base/adapters/node/loadServer.js +56 -0
  5. package/dist/cjs/base/adapters/node/middlewares/index.js +26 -0
  6. package/dist/cjs/base/adapters/node/middlewares/mock.js +113 -0
  7. package/dist/cjs/base/adapters/node/middlewares/serverStatic.js +105 -0
  8. package/dist/cjs/base/adapters/node/middlewares/templates.js +65 -0
  9. package/dist/cjs/base/adapters/node/node.js +121 -0
  10. package/dist/cjs/base/adapters/node/polyfills/index.js +24 -0
  11. package/dist/cjs/base/adapters/node/polyfills/install.js +57 -0
  12. package/dist/cjs/base/adapters/node/polyfills/stream.js +159 -0
  13. package/dist/cjs/base/constants.js +55 -0
  14. package/dist/cjs/base/index.js +73 -0
  15. package/dist/cjs/base/middlewares/customServer/base.js +115 -0
  16. package/dist/cjs/base/middlewares/customServer/context.js +78 -0
  17. package/dist/cjs/base/middlewares/customServer/index.js +138 -0
  18. package/dist/cjs/base/middlewares/customServer/routerApi.js +48 -0
  19. package/dist/cjs/base/middlewares/customServer/template.js +60 -0
  20. package/dist/cjs/base/middlewares/dataHandler.js +69 -0
  21. package/dist/cjs/base/middlewares/faviconFallback.js +34 -0
  22. package/dist/cjs/base/middlewares/index.js +28 -0
  23. package/dist/cjs/base/middlewares/monitor.js +75 -0
  24. package/dist/cjs/base/middlewares/renderHandler/index.js +92 -0
  25. package/dist/cjs/base/middlewares/renderHandler/render.js +90 -0
  26. package/dist/cjs/base/middlewares/renderHandler/serverTiming.js +43 -0
  27. package/dist/cjs/base/middlewares/renderHandler/ssrCache.js +173 -0
  28. package/dist/cjs/base/middlewares/renderHandler/ssrRender.js +183 -0
  29. package/dist/cjs/base/serverBase.js +167 -0
  30. package/dist/cjs/base/utils/debug.js +29 -0
  31. package/dist/cjs/base/utils/entry.js +30 -0
  32. package/dist/cjs/base/utils/env.js +45 -0
  33. package/dist/cjs/base/utils/error.js +65 -0
  34. package/dist/cjs/base/utils/index.js +40 -0
  35. package/dist/cjs/base/utils/middlewareCollector.js +54 -0
  36. package/dist/cjs/base/utils/path.js +46 -0
  37. package/dist/cjs/base/utils/request.js +65 -0
  38. package/dist/cjs/base/utils/serverConfig.js +71 -0
  39. package/dist/cjs/base/utils/transformStream.js +38 -0
  40. package/dist/cjs/base/utils/warmup.js +43 -0
  41. package/dist/cjs/core/hono.js +16 -0
  42. package/dist/cjs/core/index.js +24 -0
  43. package/dist/cjs/{loadPlugins.js → core/loadPlugins.js} +1 -1
  44. package/dist/cjs/{plugin.js → core/plugin.js} +1 -3
  45. package/dist/cjs/core/render.js +16 -0
  46. package/dist/cjs/core/server.js +22 -0
  47. package/dist/cjs/index.js +6 -4
  48. package/dist/esm/base/adapters/node/bff.js +45 -0
  49. package/dist/esm/base/adapters/node/hono.js +37 -0
  50. package/dist/esm/base/adapters/node/index.js +6 -0
  51. package/dist/esm/base/adapters/node/loadServer.js +22 -0
  52. package/dist/esm/base/adapters/node/middlewares/index.js +3 -0
  53. package/dist/esm/base/adapters/node/middlewares/mock.js +79 -0
  54. package/dist/esm/base/adapters/node/middlewares/serverStatic.js +71 -0
  55. package/dist/esm/base/adapters/node/middlewares/templates.js +31 -0
  56. package/dist/esm/base/adapters/node/node.js +95 -0
  57. package/dist/esm/base/adapters/node/polyfills/index.js +2 -0
  58. package/dist/esm/base/adapters/node/polyfills/install.js +33 -0
  59. package/dist/esm/base/adapters/node/polyfills/stream.js +132 -0
  60. package/dist/esm/base/constants.js +29 -0
  61. package/dist/esm/base/index.js +32 -0
  62. package/dist/esm/base/middlewares/customServer/base.js +91 -0
  63. package/dist/esm/base/middlewares/customServer/context.js +51 -0
  64. package/dist/esm/base/middlewares/customServer/index.js +114 -0
  65. package/dist/esm/base/middlewares/customServer/routerApi.js +24 -0
  66. package/dist/esm/base/middlewares/customServer/template.js +36 -0
  67. package/dist/esm/base/middlewares/dataHandler.js +35 -0
  68. package/dist/esm/base/middlewares/faviconFallback.js +10 -0
  69. package/dist/esm/base/middlewares/index.js +4 -0
  70. package/dist/esm/base/middlewares/monitor.js +49 -0
  71. package/dist/esm/base/middlewares/renderHandler/index.js +67 -0
  72. package/dist/esm/base/middlewares/renderHandler/render.js +66 -0
  73. package/dist/esm/base/middlewares/renderHandler/serverTiming.js +19 -0
  74. package/dist/esm/base/middlewares/renderHandler/ssrCache.js +149 -0
  75. package/dist/esm/base/middlewares/renderHandler/ssrRender.js +149 -0
  76. package/dist/esm/base/serverBase.js +143 -0
  77. package/dist/esm/base/utils/debug.js +5 -0
  78. package/dist/esm/base/utils/entry.js +6 -0
  79. package/dist/esm/base/utils/env.js +20 -0
  80. package/dist/esm/base/utils/error.js +41 -0
  81. package/dist/esm/base/utils/index.js +10 -0
  82. package/dist/esm/base/utils/middlewareCollector.js +29 -0
  83. package/dist/esm/base/utils/path.js +12 -0
  84. package/dist/esm/base/utils/request.js +38 -0
  85. package/dist/esm/base/utils/serverConfig.js +35 -0
  86. package/dist/esm/base/utils/transformStream.js +14 -0
  87. package/dist/esm/base/utils/warmup.js +9 -0
  88. package/dist/esm/core/hono.js +0 -0
  89. package/dist/esm/core/index.js +2 -0
  90. package/dist/esm/{loadPlugins.js → core/loadPlugins.js} +1 -1
  91. package/dist/esm/{plugin.js → core/plugin.js} +1 -3
  92. package/dist/esm/core/render.js +0 -0
  93. package/dist/esm/core/server.js +1 -0
  94. package/dist/esm/index.js +3 -2
  95. package/dist/types/base/adapters/node/bff.d.ts +4 -0
  96. package/dist/types/base/adapters/node/hono.d.ts +30 -0
  97. package/dist/types/base/adapters/node/index.d.ts +6 -0
  98. package/dist/types/base/adapters/node/loadServer.d.ts +3 -0
  99. package/dist/types/base/adapters/node/middlewares/index.d.ts +3 -0
  100. package/dist/types/base/adapters/node/middlewares/mock.d.ts +5 -0
  101. package/dist/types/base/adapters/node/middlewares/serverStatic.d.ts +9 -0
  102. package/dist/types/base/adapters/node/middlewares/templates.d.ts +3 -0
  103. package/dist/types/base/adapters/node/node.d.ts +12 -0
  104. package/dist/types/base/adapters/node/polyfills/index.d.ts +2 -0
  105. package/dist/types/base/adapters/node/polyfills/install.d.ts +1 -0
  106. package/dist/types/base/adapters/node/polyfills/stream.d.ts +18 -0
  107. package/dist/types/base/constants.d.ts +23 -0
  108. package/dist/types/base/index.d.ts +9 -0
  109. package/dist/types/base/middlewares/customServer/base.d.ts +3 -0
  110. package/dist/types/base/middlewares/customServer/context.d.ts +7 -0
  111. package/dist/types/base/middlewares/customServer/index.d.ts +13 -0
  112. package/dist/types/base/middlewares/customServer/routerApi.d.ts +9 -0
  113. package/dist/types/base/middlewares/customServer/template.d.ts +11 -0
  114. package/dist/types/base/middlewares/dataHandler.d.ts +3 -0
  115. package/dist/types/base/middlewares/faviconFallback.d.ts +2 -0
  116. package/dist/types/base/middlewares/index.d.ts +4 -0
  117. package/dist/types/base/middlewares/monitor.d.ts +7 -0
  118. package/dist/types/base/middlewares/renderHandler/index.d.ts +9 -0
  119. package/dist/types/base/middlewares/renderHandler/render.d.ts +12 -0
  120. package/dist/types/base/middlewares/renderHandler/serverTiming.d.ts +7 -0
  121. package/dist/types/base/middlewares/renderHandler/ssrCache.d.ts +17 -0
  122. package/dist/types/base/middlewares/renderHandler/ssrRender.d.ts +18 -0
  123. package/dist/types/base/serverBase.d.ts +49 -0
  124. package/dist/types/base/utils/debug.d.ts +1 -0
  125. package/dist/types/base/utils/entry.d.ts +2 -0
  126. package/dist/types/base/utils/env.d.ts +2 -0
  127. package/dist/types/base/utils/error.d.ts +1 -0
  128. package/dist/types/base/utils/index.d.ts +10 -0
  129. package/dist/types/base/utils/middlewareCollector.d.ts +12 -0
  130. package/dist/types/base/utils/path.d.ts +3 -0
  131. package/dist/types/base/utils/request.d.ts +12 -0
  132. package/dist/types/base/utils/serverConfig.d.ts +14 -0
  133. package/dist/types/base/utils/transformStream.d.ts +2 -0
  134. package/dist/types/base/utils/warmup.d.ts +1 -0
  135. package/dist/types/core/hono.d.ts +1 -0
  136. package/dist/types/core/index.d.ts +2 -0
  137. package/dist/types/{loadPlugins.d.ts → core/loadPlugins.d.ts} +1 -1
  138. package/dist/types/{plugin.d.ts → core/plugin.d.ts} +32 -35
  139. package/dist/types/core/render.d.ts +11 -0
  140. package/dist/types/core/server.d.ts +71 -0
  141. package/dist/types/index.d.ts +3 -2
  142. package/package.json +25 -2
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var routerApi_exports = {};
20
+ __export(routerApi_exports, {
21
+ RouterAPI: () => RouterAPI
22
+ });
23
+ module.exports = __toCommonJS(routerApi_exports);
24
+ var import_define_property = require("@swc/helpers/_/_define_property");
25
+ class RouterAPI {
26
+ redirect(url, status = 302) {
27
+ this.url = url;
28
+ this.status = status;
29
+ }
30
+ rewrite(entryName) {
31
+ this.current = entryName;
32
+ }
33
+ use(entryName) {
34
+ this.rewrite(entryName);
35
+ }
36
+ constructor(entryName) {
37
+ (0, import_define_property._)(this, "current", void 0);
38
+ (0, import_define_property._)(this, "status", void 0);
39
+ (0, import_define_property._)(this, "url", void 0);
40
+ this.current = entryName;
41
+ this.status = 200;
42
+ this.url = "";
43
+ }
44
+ }
45
+ // Annotate the CommonJS export names for ESM import in node:
46
+ 0 && (module.exports = {
47
+ RouterAPI
48
+ });
@@ -0,0 +1,60 @@
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 template_exports = {};
20
+ __export(template_exports, {
21
+ TemplateApi: () => TemplateApi
22
+ });
23
+ module.exports = __toCommonJS(template_exports);
24
+ var import_define_property = require("@swc/helpers/_/_define_property");
25
+ var import_constants = require("../../constants");
26
+ class TemplateApi {
27
+ set(content) {
28
+ this.body = content;
29
+ }
30
+ get() {
31
+ return this.body;
32
+ }
33
+ prependHead(fragment) {
34
+ const { head } = import_constants.REPLACE_REG.before;
35
+ this.replaceBody(new RegExp(head), (beforeHead) => `${beforeHead}${fragment}`);
36
+ }
37
+ appendHead(fragment) {
38
+ const { head } = import_constants.REPLACE_REG.after;
39
+ this.replaceBody(head, () => `${fragment}${head}`);
40
+ }
41
+ prependBody(fragment) {
42
+ const { body } = import_constants.REPLACE_REG.before;
43
+ this.replaceBody(new RegExp(body), (beforeBody) => `${beforeBody}${fragment}`);
44
+ }
45
+ appendBody(fragment) {
46
+ const { body } = import_constants.REPLACE_REG.after;
47
+ this.replaceBody(body, () => `${fragment}${body}`);
48
+ }
49
+ replaceBody(searchValue, replaceCb) {
50
+ this.body = this.body.replace(searchValue, replaceCb);
51
+ }
52
+ constructor(body) {
53
+ (0, import_define_property._)(this, "body", void 0);
54
+ this.body = body;
55
+ }
56
+ }
57
+ // Annotate the CommonJS export names for ESM import in node:
58
+ 0 && (module.exports = {
59
+ TemplateApi
60
+ });
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var dataHandler_exports = {};
30
+ __export(dataHandler_exports, {
31
+ bindDataHandlers: () => bindDataHandlers
32
+ });
33
+ module.exports = __toCommonJS(dataHandler_exports);
34
+ var import_utils = require("@modern-js/utils");
35
+ var import_utils2 = require("../utils");
36
+ const bindDataHandlers = async (server, routes, distDir) => {
37
+ const path = await (0, import_utils2.getPathModule)();
38
+ routes.sort(import_utils2.sortRoutes).forEach((route) => {
39
+ const bundlePath = path.join(distDir, import_utils.SERVER_BUNDLE_DIRECTORY, `${route.entryName || import_utils.MAIN_ENTRY_NAME}-server-loaders.js`);
40
+ server.all(`${route.urlPath === "/" ? "*" : `${route.urlPath}/*`}`, createDataHandler(routes, bundlePath));
41
+ });
42
+ };
43
+ const createDataHandler = (serverRoutes, buildModulePath) => {
44
+ return async (context, next) => {
45
+ let buildModule;
46
+ try {
47
+ buildModule = await Promise.resolve().then(() => __toESM(require(buildModulePath)));
48
+ } catch (_) {
49
+ return next();
50
+ }
51
+ const { routes, handleRequest } = buildModule;
52
+ const logger = context.get("logger");
53
+ const reporter = context.get("reporter");
54
+ const response = await handleRequest({
55
+ request: context.req.raw,
56
+ serverRoutes,
57
+ context: {
58
+ logger,
59
+ reporter
60
+ },
61
+ routes
62
+ });
63
+ return response ? response : next();
64
+ };
65
+ };
66
+ // Annotate the CommonJS export names for ESM import in node:
67
+ 0 && (module.exports = {
68
+ bindDataHandlers
69
+ });
@@ -0,0 +1,34 @@
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 faviconFallback_exports = {};
20
+ __export(faviconFallback_exports, {
21
+ favionFallbackMiddleware: () => favionFallbackMiddleware
22
+ });
23
+ module.exports = __toCommonJS(faviconFallback_exports);
24
+ const favionFallbackMiddleware = async (c, next) => {
25
+ if (c.req.path === "/favicon.ico") {
26
+ return c.body(null, 204);
27
+ } else {
28
+ return next();
29
+ }
30
+ };
31
+ // Annotate the CommonJS export names for ESM import in node:
32
+ 0 && (module.exports = {
33
+ favionFallbackMiddleware
34
+ });
@@ -0,0 +1,28 @@
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 __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
+ var middlewares_exports = {};
17
+ module.exports = __toCommonJS(middlewares_exports);
18
+ __reExport(middlewares_exports, require("./faviconFallback"), module.exports);
19
+ __reExport(middlewares_exports, require("./dataHandler"), module.exports);
20
+ __reExport(middlewares_exports, require("./monitor"), module.exports);
21
+ __reExport(middlewares_exports, require("./renderHandler"), module.exports);
22
+ // Annotate the CommonJS export names for ESM import in node:
23
+ 0 && (module.exports = {
24
+ ...require("./faviconFallback"),
25
+ ...require("./dataHandler"),
26
+ ...require("./monitor"),
27
+ ...require("./renderHandler")
28
+ });
@@ -0,0 +1,75 @@
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 monitor_exports = {};
20
+ __export(monitor_exports, {
21
+ initReporter: () => initReporter,
22
+ injectLogger: () => injectLogger,
23
+ injectReporter: () => injectReporter
24
+ });
25
+ module.exports = __toCommonJS(monitor_exports);
26
+ var import_time = require("@modern-js/runtime-utils/time");
27
+ var import_constants = require("../constants");
28
+ const defaultReporter = {
29
+ init() {
30
+ },
31
+ reportError() {
32
+ },
33
+ reportTiming() {
34
+ },
35
+ reportInfo() {
36
+ },
37
+ reportWarn() {
38
+ }
39
+ };
40
+ function injectReporter() {
41
+ return async (c, next) => {
42
+ const reporter = c.get("reporter");
43
+ if (!reporter) {
44
+ c.set("reporter", defaultReporter);
45
+ }
46
+ await next();
47
+ };
48
+ }
49
+ function initReporter(entryName) {
50
+ return async (c, next) => {
51
+ const reporter = c.get("reporter");
52
+ await reporter.init({
53
+ entryName
54
+ });
55
+ const getCost = (0, import_time.time)();
56
+ await next();
57
+ const cost = getCost();
58
+ reporter.reportTiming(import_constants.ServerReportTimings.SERVER_HANDLE_REQUEST, cost);
59
+ };
60
+ }
61
+ function injectLogger(inputLogger) {
62
+ return async (c, next) => {
63
+ const logger = c.get("logger");
64
+ if (!logger && inputLogger) {
65
+ c.set("logger", inputLogger);
66
+ }
67
+ await next();
68
+ };
69
+ }
70
+ // Annotate the CommonJS export names for ESM import in node:
71
+ 0 && (module.exports = {
72
+ initReporter,
73
+ injectLogger,
74
+ injectReporter
75
+ });
@@ -0,0 +1,92 @@
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 renderHandler_exports = {};
20
+ __export(renderHandler_exports, {
21
+ bindRenderHandler: () => bindRenderHandler,
22
+ getRenderHandler: () => getRenderHandler
23
+ });
24
+ module.exports = __toCommonJS(renderHandler_exports);
25
+ var import_utils = require("../../utils");
26
+ var import_monitor = require("../monitor");
27
+ var import_customServer = require("../customServer");
28
+ var import_ssrCache = require("./ssrCache");
29
+ var import_render = require("./render");
30
+ function createRenderHandler(render) {
31
+ return async (c, _) => {
32
+ var _c_env_node;
33
+ const logger = c.get("logger");
34
+ const reporter = c.get("reporter");
35
+ const request = c.req.raw;
36
+ const nodeReq = (_c_env_node = c.env.node) === null || _c_env_node === void 0 ? void 0 : _c_env_node.req;
37
+ const templates = c.get("templates");
38
+ const res = await render(request, {
39
+ logger,
40
+ nodeReq,
41
+ reporter,
42
+ tpls: templates || {}
43
+ });
44
+ return res;
45
+ };
46
+ }
47
+ function getRenderHandler(options) {
48
+ const { routes, pwd, config } = options;
49
+ if (routes && routes.length > 0) {
50
+ var _config_server, _options_config_security;
51
+ const ssrConfig = (_config_server = config.server) === null || _config_server === void 0 ? void 0 : _config_server.ssr;
52
+ const forceCSR = typeof ssrConfig === "object" ? ssrConfig.forceCSR : false;
53
+ const render = (0, import_render.createRender)({
54
+ routes,
55
+ pwd,
56
+ staticGenerate: options.staticGenerate,
57
+ metaName: options.metaName || "modern-js",
58
+ forceCSR,
59
+ nonce: (_options_config_security = options.config.security) === null || _options_config_security === void 0 ? void 0 : _options_config_security.nonce
60
+ });
61
+ return render;
62
+ }
63
+ return null;
64
+ }
65
+ async function bindRenderHandler(server, options) {
66
+ const { routes, pwd } = options;
67
+ const path = await (0, import_utils.getPathModule)();
68
+ const { runner } = server;
69
+ if (routes && routes.length > 0) {
70
+ const customServer = new import_customServer.CustomServer(runner, server, pwd);
71
+ const ssrBundles = routes.filter((route) => route.isSSR && route.bundle).map((route) => path.join(pwd, route.bundle));
72
+ (0, import_utils.warmup)(ssrBundles);
73
+ await import_ssrCache.ssrCache.loadCacheMod((0, import_utils.checkIsProd)() ? pwd : void 0);
74
+ const pageRoutes = routes.filter((route) => !route.isApi).sort(import_utils.sortRoutes);
75
+ for (const route of pageRoutes) {
76
+ const { urlPath: originUrlPath, entryName } = route;
77
+ const urlPath = originUrlPath.endsWith("/") ? `${originUrlPath}*` : `${originUrlPath}/*`;
78
+ const customServerHookMiddleware = customServer.getHookMiddleware(entryName || "main", routes);
79
+ server.use(urlPath, (0, import_monitor.initReporter)(entryName));
80
+ server.use(urlPath, customServerHookMiddleware);
81
+ const customServerMiddleware = customServer.getServerMiddleware();
82
+ server.use(urlPath, customServerMiddleware);
83
+ }
84
+ const render = getRenderHandler(options);
85
+ render && server.get("*", createRenderHandler(render));
86
+ }
87
+ }
88
+ // Annotate the CommonJS export names for ESM import in node:
89
+ 0 && (module.exports = {
90
+ bindRenderHandler,
91
+ getRenderHandler
92
+ });
@@ -0,0 +1,90 @@
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 render_exports = {};
20
+ __export(render_exports, {
21
+ createRender: () => createRender
22
+ });
23
+ module.exports = __toCommonJS(render_exports);
24
+ var import_utils = require("@modern-js/utils");
25
+ var import_request = require("../../utils/request");
26
+ var import_utils2 = require("../../utils");
27
+ var import_ssrRender = require("./ssrRender");
28
+ function createRender({ routes, pwd, metaName, staticGenerate, forceCSR, nonce }) {
29
+ return async (req, { logger, nodeReq, reporter, tpls }) => {
30
+ const routeInfo = matchRoute(req, routes);
31
+ if (!routeInfo) {
32
+ return new Response((0, import_utils2.createErrorHtml)(404), {
33
+ status: 404,
34
+ headers: {
35
+ "content-type": "text/html; charset=UTF-8"
36
+ }
37
+ });
38
+ }
39
+ const html = tpls[routeInfo.entryName];
40
+ if (!html) {
41
+ throw new Error(`Can't found entry ${routeInfo.entryName} html `);
42
+ }
43
+ const renderMode = getRenderMode(req, metaName || "modern-js", routeInfo.isSSR, forceCSR);
44
+ return renderMode === "csr" ? csrRender(html) : (0, import_ssrRender.ssrRender)(req, {
45
+ pwd,
46
+ mode: "string",
47
+ html,
48
+ routeInfo,
49
+ staticGenerate: staticGenerate || false,
50
+ metaName: metaName || "modern-js",
51
+ nonce,
52
+ logger,
53
+ nodeReq,
54
+ reporter
55
+ });
56
+ };
57
+ }
58
+ function matchRoute(req, routes) {
59
+ const sorted = routes.sort(import_utils2.sortRoutes);
60
+ for (const route of sorted) {
61
+ const reg = new RegExp(route.urlPath);
62
+ if (reg.test(req.url)) {
63
+ return route;
64
+ }
65
+ }
66
+ return void 0;
67
+ }
68
+ function getRenderMode(req, framework, isSSR, forceCSR) {
69
+ const query = (0, import_request.parseQuery)(req);
70
+ if (isSSR) {
71
+ if (forceCSR && (query.csr || req.headers.get(`x-${(0, import_utils.cutNameByHyphen)(framework)}-ssr-fallback`))) {
72
+ return "csr";
73
+ }
74
+ return "ssr";
75
+ } else {
76
+ return "csr";
77
+ }
78
+ }
79
+ function csrRender(html) {
80
+ return new Response(html, {
81
+ status: 200,
82
+ headers: new Headers({
83
+ "content-type": "text/html; charset=UTF-8"
84
+ })
85
+ });
86
+ }
87
+ // Annotate the CommonJS export names for ESM import in node:
88
+ 0 && (module.exports = {
89
+ createRender
90
+ });
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var serverTiming_exports = {};
20
+ __export(serverTiming_exports, {
21
+ ServerTiming: () => ServerTiming
22
+ });
23
+ module.exports = __toCommonJS(serverTiming_exports);
24
+ var import_define_property = require("@swc/helpers/_/_define_property");
25
+ const SERVER_TIMING = "Server-Timing";
26
+ class ServerTiming {
27
+ addServeTiming(name, dur, desc) {
28
+ const _name = `bd-${this.meta}-${name}`;
29
+ const value = `${_name};${desc ? `decs="${desc}";` : ""} dur=${dur}`;
30
+ this.headers.append(SERVER_TIMING, value);
31
+ return this;
32
+ }
33
+ constructor(headers, meta) {
34
+ (0, import_define_property._)(this, "headers", void 0);
35
+ (0, import_define_property._)(this, "meta", void 0);
36
+ this.meta = meta;
37
+ this.headers = headers;
38
+ }
39
+ }
40
+ // Annotate the CommonJS export names for ESM import in node:
41
+ 0 && (module.exports = {
42
+ ServerTiming
43
+ });