@modern-js/server-core 2.48.3-alpha.0 → 2.48.3

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 (204) hide show
  1. package/dist/cjs/index.js +4 -6
  2. package/dist/cjs/{core/loadPlugins.js → loadPlugins.js} +7 -4
  3. package/dist/cjs/{core/plugin.js → plugin.js} +3 -1
  4. package/dist/esm/index.js +2 -3
  5. package/dist/{esm-node/core → esm}/loadPlugins.js +7 -4
  6. package/dist/{esm-node/core → esm}/plugin.js +3 -1
  7. package/dist/types/index.d.ts +2 -3
  8. package/dist/types/loadPlugins.d.ts +5 -0
  9. package/dist/types/{core/plugin.d.ts → plugin.d.ts} +35 -32
  10. package/package.json +6 -41
  11. package/dist/cjs/base/adapters/node/bff.js +0 -69
  12. package/dist/cjs/base/adapters/node/hono.js +0 -63
  13. package/dist/cjs/base/adapters/node/index.js +0 -54
  14. package/dist/cjs/base/adapters/node/loadServer.js +0 -56
  15. package/dist/cjs/base/adapters/node/middlewares/index.js +0 -28
  16. package/dist/cjs/base/adapters/node/middlewares/mock.js +0 -113
  17. package/dist/cjs/base/adapters/node/middlewares/serverManifest.js +0 -82
  18. package/dist/cjs/base/adapters/node/middlewares/serverPublic.js +0 -67
  19. package/dist/cjs/base/adapters/node/middlewares/serverStatic.js +0 -109
  20. package/dist/cjs/base/adapters/node/middlewares/templates.js +0 -67
  21. package/dist/cjs/base/adapters/node/node.js +0 -126
  22. package/dist/cjs/base/adapters/node/polyfills/index.js +0 -24
  23. package/dist/cjs/base/adapters/node/polyfills/install.js +0 -70
  24. package/dist/cjs/base/adapters/node/polyfills/stream.js +0 -153
  25. package/dist/cjs/base/constants.js +0 -58
  26. package/dist/cjs/base/index.js +0 -45
  27. package/dist/cjs/base/middlewares/customServer/base.js +0 -111
  28. package/dist/cjs/base/middlewares/customServer/context.js +0 -78
  29. package/dist/cjs/base/middlewares/customServer/index.js +0 -130
  30. package/dist/cjs/base/middlewares/customServer/routerApi.js +0 -44
  31. package/dist/cjs/base/middlewares/customServer/template.js +0 -58
  32. package/dist/cjs/base/middlewares/faviconFallback.js +0 -34
  33. package/dist/cjs/base/middlewares/index.js +0 -26
  34. package/dist/cjs/base/middlewares/monitor.js +0 -90
  35. package/dist/cjs/base/middlewares/renderHandler/dataHandler.js +0 -46
  36. package/dist/cjs/base/middlewares/renderHandler/index.js +0 -104
  37. package/dist/cjs/base/middlewares/renderHandler/render.js +0 -123
  38. package/dist/cjs/base/middlewares/renderHandler/serverTiming.js +0 -40
  39. package/dist/cjs/base/middlewares/renderHandler/ssrCache.js +0 -197
  40. package/dist/cjs/base/middlewares/renderHandler/ssrRender.js +0 -168
  41. package/dist/cjs/base/serverBase.js +0 -203
  42. package/dist/cjs/base/utils/debug.js +0 -29
  43. package/dist/cjs/base/utils/entry.js +0 -30
  44. package/dist/cjs/base/utils/env.js +0 -45
  45. package/dist/cjs/base/utils/error.js +0 -65
  46. package/dist/cjs/base/utils/index.js +0 -45
  47. package/dist/cjs/base/utils/middlewareCollector.js +0 -54
  48. package/dist/cjs/base/utils/request.js +0 -65
  49. package/dist/cjs/base/utils/serverConfig.js +0 -70
  50. package/dist/cjs/base/utils/transformStream.js +0 -61
  51. package/dist/cjs/base/utils/warmup.js +0 -43
  52. package/dist/cjs/core/hono.js +0 -16
  53. package/dist/cjs/core/index.js +0 -22
  54. package/dist/cjs/core/render.js +0 -16
  55. package/dist/cjs/core/server.js +0 -16
  56. package/dist/esm/base/adapters/node/bff.js +0 -128
  57. package/dist/esm/base/adapters/node/hono.js +0 -83
  58. package/dist/esm/base/adapters/node/index.js +0 -19
  59. package/dist/esm/base/adapters/node/loadServer.js +0 -73
  60. package/dist/esm/base/adapters/node/middlewares/index.js +0 -4
  61. package/dist/esm/base/adapters/node/middlewares/mock.js +0 -198
  62. package/dist/esm/base/adapters/node/middlewares/serverManifest.js +0 -132
  63. package/dist/esm/base/adapters/node/middlewares/serverPublic.js +0 -85
  64. package/dist/esm/base/adapters/node/middlewares/serverStatic.js +0 -109
  65. package/dist/esm/base/adapters/node/middlewares/templates.js +0 -114
  66. package/dist/esm/base/adapters/node/node.js +0 -194
  67. package/dist/esm/base/adapters/node/polyfills/index.js +0 -2
  68. package/dist/esm/base/adapters/node/polyfills/install.js +0 -46
  69. package/dist/esm/base/adapters/node/polyfills/stream.js +0 -316
  70. package/dist/esm/base/constants.js +0 -31
  71. package/dist/esm/base/index.js +0 -14
  72. package/dist/esm/base/middlewares/customServer/base.js +0 -126
  73. package/dist/esm/base/middlewares/customServer/context.js +0 -70
  74. package/dist/esm/base/middlewares/customServer/index.js +0 -208
  75. package/dist/esm/base/middlewares/customServer/routerApi.js +0 -26
  76. package/dist/esm/base/middlewares/customServer/template.js +0 -47
  77. package/dist/esm/base/middlewares/faviconFallback.js +0 -28
  78. package/dist/esm/base/middlewares/index.js +0 -3
  79. package/dist/esm/base/middlewares/monitor.js +0 -157
  80. package/dist/esm/base/middlewares/renderHandler/dataHandler.js +0 -45
  81. package/dist/esm/base/middlewares/renderHandler/index.js +0 -163
  82. package/dist/esm/base/middlewares/renderHandler/render.js +0 -213
  83. package/dist/esm/base/middlewares/renderHandler/serverTiming.js +0 -21
  84. package/dist/esm/base/middlewares/renderHandler/ssrCache.js +0 -306
  85. package/dist/esm/base/middlewares/renderHandler/ssrRender.js +0 -226
  86. package/dist/esm/base/serverBase.js +0 -383
  87. package/dist/esm/base/utils/debug.js +0 -5
  88. package/dist/esm/base/utils/entry.js +0 -6
  89. package/dist/esm/base/utils/env.js +0 -20
  90. package/dist/esm/base/utils/error.js +0 -12
  91. package/dist/esm/base/utils/index.js +0 -13
  92. package/dist/esm/base/utils/middlewareCollector.js +0 -31
  93. package/dist/esm/base/utils/request.js +0 -39
  94. package/dist/esm/base/utils/serverConfig.js +0 -58
  95. package/dist/esm/base/utils/transformStream.js +0 -90
  96. package/dist/esm/base/utils/warmup.js +0 -9
  97. package/dist/esm/core/hono.js +0 -0
  98. package/dist/esm/core/index.js +0 -1
  99. package/dist/esm/core/loadPlugins.js +0 -26
  100. package/dist/esm/core/plugin.js +0 -98
  101. package/dist/esm/core/render.js +0 -0
  102. package/dist/esm/core/server.js +0 -0
  103. package/dist/esm-node/base/adapters/node/bff.js +0 -45
  104. package/dist/esm-node/base/adapters/node/hono.js +0 -38
  105. package/dist/esm-node/base/adapters/node/index.js +0 -19
  106. package/dist/esm-node/base/adapters/node/loadServer.js +0 -22
  107. package/dist/esm-node/base/adapters/node/middlewares/index.js +0 -4
  108. package/dist/esm-node/base/adapters/node/middlewares/mock.js +0 -79
  109. package/dist/esm-node/base/adapters/node/middlewares/serverManifest.js +0 -48
  110. package/dist/esm-node/base/adapters/node/middlewares/serverPublic.js +0 -33
  111. package/dist/esm-node/base/adapters/node/middlewares/serverStatic.js +0 -75
  112. package/dist/esm-node/base/adapters/node/middlewares/templates.js +0 -32
  113. package/dist/esm-node/base/adapters/node/node.js +0 -100
  114. package/dist/esm-node/base/adapters/node/polyfills/index.js +0 -2
  115. package/dist/esm-node/base/adapters/node/polyfills/install.js +0 -46
  116. package/dist/esm-node/base/adapters/node/polyfills/stream.js +0 -126
  117. package/dist/esm-node/base/constants.js +0 -31
  118. package/dist/esm-node/base/index.js +0 -14
  119. package/dist/esm-node/base/middlewares/customServer/base.js +0 -87
  120. package/dist/esm-node/base/middlewares/customServer/context.js +0 -51
  121. package/dist/esm-node/base/middlewares/customServer/index.js +0 -106
  122. package/dist/esm-node/base/middlewares/customServer/routerApi.js +0 -20
  123. package/dist/esm-node/base/middlewares/customServer/template.js +0 -34
  124. package/dist/esm-node/base/middlewares/faviconFallback.js +0 -10
  125. package/dist/esm-node/base/middlewares/index.js +0 -3
  126. package/dist/esm-node/base/middlewares/monitor.js +0 -63
  127. package/dist/esm-node/base/middlewares/renderHandler/dataHandler.js +0 -22
  128. package/dist/esm-node/base/middlewares/renderHandler/index.js +0 -69
  129. package/dist/esm-node/base/middlewares/renderHandler/render.js +0 -99
  130. package/dist/esm-node/base/middlewares/renderHandler/serverTiming.js +0 -16
  131. package/dist/esm-node/base/middlewares/renderHandler/ssrCache.js +0 -162
  132. package/dist/esm-node/base/middlewares/renderHandler/ssrRender.js +0 -134
  133. package/dist/esm-node/base/serverBase.js +0 -168
  134. package/dist/esm-node/base/utils/debug.js +0 -5
  135. package/dist/esm-node/base/utils/entry.js +0 -6
  136. package/dist/esm-node/base/utils/env.js +0 -20
  137. package/dist/esm-node/base/utils/error.js +0 -41
  138. package/dist/esm-node/base/utils/index.js +0 -13
  139. package/dist/esm-node/base/utils/middlewareCollector.js +0 -29
  140. package/dist/esm-node/base/utils/request.js +0 -38
  141. package/dist/esm-node/base/utils/serverConfig.js +0 -34
  142. package/dist/esm-node/base/utils/transformStream.js +0 -36
  143. package/dist/esm-node/base/utils/warmup.js +0 -9
  144. package/dist/esm-node/core/hono.js +0 -0
  145. package/dist/esm-node/core/index.js +0 -1
  146. package/dist/esm-node/core/render.js +0 -0
  147. package/dist/esm-node/core/server.js +0 -0
  148. package/dist/esm-node/index.js +0 -5
  149. package/dist/esm-node/types/config/bff.js +0 -0
  150. package/dist/esm-node/types/config/dev.js +0 -0
  151. package/dist/esm-node/types/config/html.js +0 -0
  152. package/dist/esm-node/types/config/index.js +0 -6
  153. package/dist/esm-node/types/config/output.js +0 -0
  154. package/dist/esm-node/types/config/security.js +0 -0
  155. package/dist/esm-node/types/config/server.js +0 -0
  156. package/dist/esm-node/types/config/share.js +0 -0
  157. package/dist/esm-node/types/config/source.js +0 -0
  158. package/dist/esm-node/types/config/tools.js +0 -0
  159. package/dist/types/base/adapters/node/bff.d.ts +0 -4
  160. package/dist/types/base/adapters/node/hono.d.ts +0 -22
  161. package/dist/types/base/adapters/node/index.d.ts +0 -6
  162. package/dist/types/base/adapters/node/loadServer.d.ts +0 -3
  163. package/dist/types/base/adapters/node/middlewares/index.d.ts +0 -4
  164. package/dist/types/base/adapters/node/middlewares/mock.d.ts +0 -5
  165. package/dist/types/base/adapters/node/middlewares/serverManifest.d.ts +0 -3
  166. package/dist/types/base/adapters/node/middlewares/serverPublic.d.ts +0 -7
  167. package/dist/types/base/adapters/node/middlewares/serverStatic.d.ts +0 -11
  168. package/dist/types/base/adapters/node/middlewares/templates.d.ts +0 -4
  169. package/dist/types/base/adapters/node/node.d.ts +0 -12
  170. package/dist/types/base/adapters/node/polyfills/index.d.ts +0 -2
  171. package/dist/types/base/adapters/node/polyfills/install.d.ts +0 -1
  172. package/dist/types/base/adapters/node/polyfills/stream.d.ts +0 -18
  173. package/dist/types/base/constants.d.ts +0 -24
  174. package/dist/types/base/index.d.ts +0 -7
  175. package/dist/types/base/middlewares/customServer/base.d.ts +0 -3
  176. package/dist/types/base/middlewares/customServer/context.d.ts +0 -7
  177. package/dist/types/base/middlewares/customServer/index.d.ts +0 -13
  178. package/dist/types/base/middlewares/customServer/routerApi.d.ts +0 -9
  179. package/dist/types/base/middlewares/customServer/template.d.ts +0 -11
  180. package/dist/types/base/middlewares/faviconFallback.d.ts +0 -2
  181. package/dist/types/base/middlewares/index.d.ts +0 -3
  182. package/dist/types/base/middlewares/monitor.d.ts +0 -6
  183. package/dist/types/base/middlewares/renderHandler/dataHandler.d.ts +0 -5
  184. package/dist/types/base/middlewares/renderHandler/index.d.ts +0 -9
  185. package/dist/types/base/middlewares/renderHandler/render.d.ts +0 -12
  186. package/dist/types/base/middlewares/renderHandler/serverTiming.d.ts +0 -7
  187. package/dist/types/base/middlewares/renderHandler/ssrCache.d.ts +0 -29
  188. package/dist/types/base/middlewares/renderHandler/ssrRender.d.ts +0 -18
  189. package/dist/types/base/serverBase.d.ts +0 -52
  190. package/dist/types/base/utils/debug.d.ts +0 -1
  191. package/dist/types/base/utils/entry.d.ts +0 -2
  192. package/dist/types/base/utils/env.d.ts +0 -2
  193. package/dist/types/base/utils/error.d.ts +0 -1
  194. package/dist/types/base/utils/index.d.ts +0 -8
  195. package/dist/types/base/utils/middlewareCollector.d.ts +0 -12
  196. package/dist/types/base/utils/request.d.ts +0 -12
  197. package/dist/types/base/utils/serverConfig.d.ts +0 -14
  198. package/dist/types/base/utils/transformStream.d.ts +0 -5
  199. package/dist/types/base/utils/warmup.d.ts +0 -1
  200. package/dist/types/core/hono.d.ts +0 -1
  201. package/dist/types/core/index.d.ts +0 -1
  202. package/dist/types/core/loadPlugins.d.ts +0 -3
  203. package/dist/types/core/render.d.ts +0 -13
  204. package/dist/types/core/server.d.ts +0 -99
@@ -1,126 +0,0 @@
1
- import { Stream } from "node:stream";
2
- async function writeReadableStreamToWritable(stream, writable) {
3
- const reader = stream.getReader();
4
- const flushable = writable;
5
- try {
6
- while (true) {
7
- const { done, value } = await reader.read();
8
- if (done) {
9
- writable.end();
10
- break;
11
- }
12
- writable.write(value);
13
- if (typeof flushable.flush === "function") {
14
- flushable.flush();
15
- }
16
- }
17
- } catch (error) {
18
- writable.destroy(error);
19
- throw error;
20
- }
21
- }
22
- async function writeAsyncIterableToWritable(iterable, writable) {
23
- try {
24
- for await (const chunk of iterable) {
25
- writable.write(chunk);
26
- }
27
- writable.end();
28
- } catch (error) {
29
- writable.destroy(error);
30
- throw error;
31
- }
32
- }
33
- async function readableStreamToString(stream, encoding) {
34
- const reader = stream.getReader();
35
- const chunks = [];
36
- while (true) {
37
- const { done, value } = await reader.read();
38
- if (done) {
39
- break;
40
- }
41
- if (value) {
42
- chunks.push(value);
43
- }
44
- }
45
- return Buffer.concat(chunks).toString(encoding);
46
- }
47
- const createReadableStreamFromReadable = (source) => {
48
- const pump = new StreamPump(source);
49
- const stream = new ReadableStream(pump, pump);
50
- return stream;
51
- };
52
- class StreamPump {
53
- size(chunk) {
54
- return (chunk === null || chunk === void 0 ? void 0 : chunk.byteLength) || 0;
55
- }
56
- start(controller) {
57
- this.controller = controller;
58
- this.stream.on("data", this.enqueue);
59
- this.stream.once("error", this.error);
60
- this.stream.once("end", this.close);
61
- this.stream.once("close", this.close);
62
- }
63
- pull() {
64
- this.resume();
65
- }
66
- cancel(reason) {
67
- if (this.stream.destroy) {
68
- this.stream.destroy(reason);
69
- }
70
- this.stream.off("data", this.enqueue);
71
- this.stream.off("error", this.error);
72
- this.stream.off("end", this.close);
73
- this.stream.off("close", this.close);
74
- }
75
- enqueue(chunk) {
76
- if (this.controller) {
77
- try {
78
- const bytes = chunk instanceof Uint8Array ? chunk : Buffer.from(chunk);
79
- const available = (this.controller.desiredSize || 0) - bytes.byteLength;
80
- this.controller.enqueue(bytes);
81
- if (available <= 0) {
82
- this.pause();
83
- }
84
- } catch (error) {
85
- this.controller.error(new Error("Could not create Buffer, chunk must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object"));
86
- this.cancel();
87
- }
88
- }
89
- }
90
- pause() {
91
- if (this.stream.pause) {
92
- this.stream.pause();
93
- }
94
- }
95
- resume() {
96
- if (this.stream.readable && this.stream.resume) {
97
- this.stream.resume();
98
- }
99
- }
100
- close() {
101
- if (this.controller) {
102
- this.controller.close();
103
- delete this.controller;
104
- }
105
- }
106
- error(error) {
107
- if (this.controller) {
108
- this.controller.error(error);
109
- delete this.controller;
110
- }
111
- }
112
- constructor(stream) {
113
- this.highWaterMark = stream.readableHighWaterMark || new Stream.Readable().readableHighWaterMark;
114
- this.accumalatedSize = 0;
115
- this.stream = stream;
116
- this.enqueue = this.enqueue.bind(this);
117
- this.error = this.error.bind(this);
118
- this.close = this.close.bind(this);
119
- }
120
- }
121
- export {
122
- createReadableStreamFromReadable,
123
- readableStreamToString,
124
- writeAsyncIterableToWritable,
125
- writeReadableStreamToWritable
126
- };
@@ -1,31 +0,0 @@
1
- const AGGRED_DIR = {
2
- mock: "config/mock",
3
- server: "server",
4
- api: "api",
5
- shared: "shared",
6
- lambda: "lambda"
7
- };
8
- const REPLACE_REG = {
9
- before: {
10
- head: "<head[^>]*>",
11
- body: "<body[^>]*>"
12
- },
13
- after: {
14
- head: "</head>",
15
- body: "</body>"
16
- }
17
- };
18
- var ServerReportTimings;
19
- (function(ServerReportTimings2) {
20
- ServerReportTimings2["SERVER_HANDLE_REQUEST"] = "server-handle-request";
21
- ServerReportTimings2["SERVER_MIDDLEWARE"] = "server-middleware";
22
- ServerReportTimings2["SERVER_HOOK_AFTER_RENDER"] = "server-hook-after-render";
23
- ServerReportTimings2["SERVER_HOOK_AFTER_MATCH"] = "server-hook-after-match";
24
- })(ServerReportTimings || (ServerReportTimings = {}));
25
- const X_RENDER_CACHE = "x-render-cache";
26
- export {
27
- AGGRED_DIR,
28
- REPLACE_REG,
29
- ServerReportTimings,
30
- X_RENDER_CACHE
31
- };
@@ -1,14 +0,0 @@
1
- import { createErrorHtml } from "./utils";
2
- import { AGGRED_DIR } from "./constants";
3
- import { favionFallbackMiddleware, injectReporter, injectLogger, getRenderHandler, bindRenderHandler } from "./middlewares";
4
- import { createServerBase } from "./serverBase";
5
- export {
6
- AGGRED_DIR,
7
- bindRenderHandler,
8
- createErrorHtml,
9
- createServerBase,
10
- favionFallbackMiddleware,
11
- getRenderHandler,
12
- injectLogger,
13
- injectReporter
14
- };
@@ -1,87 +0,0 @@
1
- import { getCookie } from "hono/cookie";
2
- import { getHost } from "../../utils";
3
- function createBaseHookContext(c, logger, metrics) {
4
- return {
5
- request: new BaseHookRequest(c),
6
- response: new BaseHookResponse(c),
7
- logger,
8
- metrics
9
- };
10
- }
11
- class BaseHookRequest {
12
- get url() {
13
- return this.req.url;
14
- }
15
- get host() {
16
- return getHost(this.req.raw);
17
- }
18
- get pathname() {
19
- return this.req.path;
20
- }
21
- get query() {
22
- return this.req.query();
23
- }
24
- get headers() {
25
- return this.req.header();
26
- }
27
- get cookies() {
28
- return {
29
- // FIXME: ModernRequest Type Error
30
- get: (key) => {
31
- return getCookie(this.c, key);
32
- }
33
- };
34
- }
35
- get cookie() {
36
- return this.req.header("cookie");
37
- }
38
- constructor(c) {
39
- this.c = c;
40
- this.req = c.req;
41
- }
42
- }
43
- class BaseHookResponse {
44
- get(key) {
45
- return this.c.res.headers.get(key);
46
- }
47
- set(key, value) {
48
- if ([
49
- "set-cookie",
50
- "Set-Cookie"
51
- ].includes(key)) {
52
- this.c.header(key, value.toString(), {
53
- append: true
54
- });
55
- } else {
56
- this.c.header(key, value.toString());
57
- }
58
- }
59
- status(code) {
60
- this.c.status(code);
61
- }
62
- get cookies() {
63
- const setCookie = (key, value) => {
64
- this.c.header("set-cookie", `${key}=${value}`, {
65
- append: true
66
- });
67
- };
68
- const clearCookie = () => {
69
- this.c.header("set-cookie", void 0);
70
- };
71
- return {
72
- set: setCookie,
73
- clear: clearCookie
74
- };
75
- }
76
- raw(body, options) {
77
- this.c.res = this.c.newResponse(body, options);
78
- this.private_overrided = true;
79
- }
80
- constructor(c) {
81
- this.private_overrided = false;
82
- this.c = c;
83
- }
84
- }
85
- export {
86
- createBaseHookContext
87
- };
@@ -1,51 +0,0 @@
1
- import { RouterAPI } from "./routerApi";
2
- import { TemplateApi } from "./template";
3
- import { createBaseHookContext } from "./base";
4
- function createAfterMatchCtx(c, entryName, logger, metrics) {
5
- const baseContext = createBaseHookContext(c, logger, metrics);
6
- return {
7
- ...baseContext,
8
- router: new RouterAPI(entryName)
9
- };
10
- }
11
- async function createAfterRenderCtx(c, logger, metrics) {
12
- const baseContext = createBaseHookContext(c, logger, metrics);
13
- const resBody = await c.res.text();
14
- return {
15
- ...baseContext,
16
- template: new TemplateApi(resBody)
17
- };
18
- }
19
- function createCustomMiddlewaresCtx(c, logger, metrics) {
20
- var _c_env_node, _c_env_node1;
21
- const baseContext = createBaseHookContext(c, logger, metrics);
22
- const reporter = c.get("reporter");
23
- return {
24
- ...baseContext,
25
- reporter,
26
- response: {
27
- ...baseContext.response,
28
- locals: {}
29
- },
30
- source: {
31
- req: (_c_env_node = c.env.node) === null || _c_env_node === void 0 ? void 0 : _c_env_node.req,
32
- res: (_c_env_node1 = c.env.node) === null || _c_env_node1 === void 0 ? void 0 : _c_env_node1.res
33
- }
34
- };
35
- }
36
- function createAfterStreamingRenderContext(c, logger, route, metrics) {
37
- const baseContext = createBaseHookContext(c, logger, metrics);
38
- return (chunk) => {
39
- return {
40
- ...baseContext,
41
- route,
42
- chunk
43
- };
44
- };
45
- }
46
- export {
47
- createAfterMatchCtx,
48
- createAfterRenderCtx,
49
- createAfterStreamingRenderContext,
50
- createCustomMiddlewaresCtx
51
- };
@@ -1,106 +0,0 @@
1
- import { time } from "@modern-js/runtime-utils/time";
2
- import { transformResponse } from "../../utils";
3
- import { ServerReportTimings } from "../../constants";
4
- import { createAfterMatchCtx, createAfterRenderCtx, createCustomMiddlewaresCtx, createAfterStreamingRenderContext } from "./context";
5
- const noop = () => {
6
- };
7
- const isHtmlResponse = (response) => {
8
- const contentType = response.headers.get("content-type");
9
- return contentType === null || contentType === void 0 ? void 0 : contentType.includes("text/html");
10
- };
11
- class CustomServer {
12
- getHookMiddleware(entryName, routes) {
13
- return async (c, next) => {
14
- const routeInfo = routes.find((route) => route.entryName === entryName);
15
- const logger = c.get("logger");
16
- const reporter = c.get("reporter");
17
- const metrics = c.get("metrics");
18
- const afterMatchCtx = createAfterMatchCtx(c, entryName, logger, metrics);
19
- const getCost = time();
20
- await this.runner.afterMatch(afterMatchCtx, {
21
- onLast: noop
22
- });
23
- const cost = getCost();
24
- cost && (reporter === null || reporter === void 0 ? void 0 : reporter.reportTiming(ServerReportTimings.SERVER_HOOK_AFTER_MATCH, cost));
25
- const {
26
- // current,
27
- url,
28
- status
29
- } = afterMatchCtx.router;
30
- if (url) {
31
- return c.redirect(url, status);
32
- }
33
- const { current } = afterMatchCtx.router;
34
- if (current !== entryName) {
35
- const rewriteRoute = routes.find((route) => route.entryName === current);
36
- if (rewriteRoute) {
37
- return this.serverBase.request(rewriteRoute.urlPath);
38
- }
39
- }
40
- if (c.finalized) {
41
- return void 0;
42
- }
43
- await next();
44
- if (c.finalized && (!c.res.body || !isHtmlResponse(c.res))) {
45
- return void 0;
46
- }
47
- if (routeInfo.isStream) {
48
- const afterStreamingRenderContext = createAfterStreamingRenderContext(c, logger, routeInfo, metrics);
49
- c.res = transformResponse(c.res, (chunk) => {
50
- const context = afterStreamingRenderContext(chunk);
51
- return this.runner.afterStreamingRender(context, {
52
- onLast: ({ chunk: chunk2 }) => chunk2
53
- });
54
- });
55
- } else {
56
- const afterRenderCtx = await createAfterRenderCtx(c, logger, metrics);
57
- const getCost2 = time();
58
- await this.runner.afterRender(afterRenderCtx, {
59
- onLast: noop
60
- });
61
- const cost2 = getCost2();
62
- cost2 && (reporter === null || reporter === void 0 ? void 0 : reporter.reportTiming(ServerReportTimings.SERVER_HOOK_AFTER_RENDER, cost2));
63
- if (afterRenderCtx.response.private_overrided) {
64
- return void 0;
65
- }
66
- const newBody = afterRenderCtx.template.get();
67
- c.res = c.body(newBody);
68
- }
69
- };
70
- }
71
- getServerMiddleware() {
72
- return async (c, next) => {
73
- const serverMiddleware = await this.serverMiddlewarePromise;
74
- if (!serverMiddleware) {
75
- return next();
76
- }
77
- const logger = c.get("logger");
78
- const reporter = c.get("reporter");
79
- const metrics = c.get("metrics");
80
- const customMiddlewareCtx = createCustomMiddlewaresCtx(c, logger, metrics);
81
- const getCost = time();
82
- await serverMiddleware(customMiddlewareCtx);
83
- const cost = getCost();
84
- cost && (reporter === null || reporter === void 0 ? void 0 : reporter.reportTiming(ServerReportTimings.SERVER_MIDDLEWARE, cost));
85
- if (!c.finalized) {
86
- return next();
87
- }
88
- };
89
- }
90
- constructor(runner, serverBase, pwd) {
91
- this.runner = runner;
92
- this.serverBase = serverBase;
93
- const webExtension = [];
94
- this.serverMiddlewarePromise = runner.prepareWebServer({
95
- pwd,
96
- config: {
97
- middleware: webExtension
98
- }
99
- }, {
100
- onLast: () => null
101
- });
102
- }
103
- }
104
- export {
105
- CustomServer
106
- };
@@ -1,20 +0,0 @@
1
- class RouterAPI {
2
- redirect(url, status = 302) {
3
- this.url = url;
4
- this.status = status;
5
- }
6
- rewrite(entryName) {
7
- this.current = entryName;
8
- }
9
- use(entryName) {
10
- this.rewrite(entryName);
11
- }
12
- constructor(entryName) {
13
- this.current = entryName;
14
- this.status = 200;
15
- this.url = "";
16
- }
17
- }
18
- export {
19
- RouterAPI
20
- };
@@ -1,34 +0,0 @@
1
- import { REPLACE_REG } from "../../constants";
2
- class TemplateApi {
3
- set(content) {
4
- this.body = content;
5
- }
6
- get() {
7
- return this.body;
8
- }
9
- prependHead(fragment) {
10
- const { head } = REPLACE_REG.before;
11
- this.replaceBody(new RegExp(head), (beforeHead) => `${beforeHead}${fragment}`);
12
- }
13
- appendHead(fragment) {
14
- const { head } = REPLACE_REG.after;
15
- this.replaceBody(head, () => `${fragment}${head}`);
16
- }
17
- prependBody(fragment) {
18
- const { body } = REPLACE_REG.before;
19
- this.replaceBody(new RegExp(body), (beforeBody) => `${beforeBody}${fragment}`);
20
- }
21
- appendBody(fragment) {
22
- const { body } = REPLACE_REG.after;
23
- this.replaceBody(body, () => `${fragment}${body}`);
24
- }
25
- replaceBody(searchValue, replaceCb) {
26
- this.body = this.body.replace(searchValue, replaceCb);
27
- }
28
- constructor(body) {
29
- this.body = body;
30
- }
31
- }
32
- export {
33
- TemplateApi
34
- };
@@ -1,10 +0,0 @@
1
- const favionFallbackMiddleware = async (c, next) => {
2
- if (c.req.path === "/favicon.ico") {
3
- return c.body(null, 204);
4
- } else {
5
- return next();
6
- }
7
- };
8
- export {
9
- favionFallbackMiddleware
10
- };
@@ -1,3 +0,0 @@
1
- export * from "./faviconFallback";
2
- export * from "./monitor";
3
- export * from "./renderHandler";
@@ -1,63 +0,0 @@
1
- import { time } from "@modern-js/runtime-utils/time";
2
- import { ServerReportTimings } from "../constants";
3
- const defaultReporter = {
4
- init() {
5
- },
6
- reportError() {
7
- },
8
- reportTiming() {
9
- },
10
- reportInfo() {
11
- },
12
- reportWarn() {
13
- }
14
- };
15
- function injectReporter() {
16
- return async (c, next) => {
17
- const reporter = c.get("reporter");
18
- if (!reporter) {
19
- c.set("reporter", defaultReporter);
20
- }
21
- await next();
22
- };
23
- }
24
- function initReporter(entryName) {
25
- return async (c, next) => {
26
- const reporter = c.get("reporter");
27
- if (!reporter) {
28
- await next();
29
- return;
30
- }
31
- await reporter.init({
32
- entryName
33
- });
34
- const getCost = time();
35
- await next();
36
- const cost = getCost();
37
- reporter.reportTiming(ServerReportTimings.SERVER_HANDLE_REQUEST, cost);
38
- };
39
- }
40
- function injectLogger(inputLogger) {
41
- return async (c, next) => {
42
- const logger = c.get("logger");
43
- if (!logger && inputLogger) {
44
- c.set("logger", inputLogger);
45
- }
46
- await next();
47
- };
48
- }
49
- function injectMetrics(inputMetrics) {
50
- return async (c, next) => {
51
- const metrics = c.get("metrics");
52
- if (!metrics) {
53
- c.set("metrics", inputMetrics);
54
- }
55
- await next();
56
- };
57
- }
58
- export {
59
- initReporter,
60
- injectLogger,
61
- injectMetrics,
62
- injectReporter
63
- };
@@ -1,22 +0,0 @@
1
- import { MAIN_ENTRY_NAME } from "@modern-js/utils/universal/constants";
2
- const dataHandler = async (request, { routeInfo, serverRoutes, reporter, logger, serverManifest }) => {
3
- var _serverManifest_loaderBundles;
4
- const serverLoaderModule = serverManifest === null || serverManifest === void 0 ? void 0 : (_serverManifest_loaderBundles = serverManifest.loaderBundles) === null || _serverManifest_loaderBundles === void 0 ? void 0 : _serverManifest_loaderBundles[routeInfo.entryName || MAIN_ENTRY_NAME];
5
- if (!serverLoaderModule) {
6
- return;
7
- }
8
- const { routes, handleRequest } = serverLoaderModule;
9
- const response = await handleRequest({
10
- request,
11
- serverRoutes,
12
- context: {
13
- logger,
14
- reporter
15
- },
16
- routes
17
- });
18
- return response;
19
- };
20
- export {
21
- dataHandler
22
- };
@@ -1,69 +0,0 @@
1
- import { checkIsProd, sortRoutes, getRuntimeEnv } from "../../utils";
2
- import { initReporter } from "../monitor";
3
- import { CustomServer } from "../customServer";
4
- import { createRender } from "./render";
5
- function createRenderHandler(render) {
6
- return async (c, _) => {
7
- var _c_env_node;
8
- const logger = c.get("logger");
9
- const reporter = c.get("reporter");
10
- const templates = c.get("templates") || {};
11
- const serverManifest = c.get("serverManifest") || {};
12
- const request = c.req.raw;
13
- const nodeReq = (_c_env_node = c.env.node) === null || _c_env_node === void 0 ? void 0 : _c_env_node.req;
14
- const res = await render(request, {
15
- logger,
16
- nodeReq,
17
- reporter,
18
- templates,
19
- serverManifest
20
- });
21
- return res;
22
- };
23
- }
24
- async function getRenderHandler(options) {
25
- const { routes, pwd, config } = options;
26
- if (routes && routes.length > 0) {
27
- var _config_server, _options_config_security;
28
- const ssrConfig = (_config_server = config.server) === null || _config_server === void 0 ? void 0 : _config_server.ssr;
29
- const forceCSR = typeof ssrConfig === "object" ? ssrConfig.forceCSR : false;
30
- const render = createRender({
31
- routes,
32
- pwd,
33
- staticGenerate: options.staticGenerate,
34
- metaName: options.metaName || "modern-js",
35
- forceCSR,
36
- nonce: (_options_config_security = options.config.security) === null || _options_config_security === void 0 ? void 0 : _options_config_security.nonce
37
- });
38
- return render;
39
- }
40
- return null;
41
- }
42
- async function bindRenderHandler(server, options) {
43
- const { routes, pwd } = options;
44
- const { runner } = server;
45
- if (routes && routes.length > 0) {
46
- const customServer = new CustomServer(runner, server, pwd);
47
- if (getRuntimeEnv() === "node") {
48
- const cacheModuleName = "./ssrCache";
49
- const { ssrCache } = await import(cacheModuleName);
50
- await ssrCache.loadCacheMod(checkIsProd() ? pwd : void 0);
51
- }
52
- const pageRoutes = routes.filter((route) => !route.isApi).sort(sortRoutes);
53
- for (const route of pageRoutes) {
54
- const { urlPath: originUrlPath, entryName } = route;
55
- const urlPath = originUrlPath.endsWith("/") ? `${originUrlPath}*` : `${originUrlPath}/*`;
56
- const customServerHookMiddleware = customServer.getHookMiddleware(entryName || "main", routes);
57
- server.use(urlPath, initReporter(entryName));
58
- server.use(urlPath, customServerHookMiddleware);
59
- const customServerMiddleware = customServer.getServerMiddleware();
60
- server.use(urlPath, customServerMiddleware);
61
- }
62
- const render = await getRenderHandler(options);
63
- render && server.all("*", createRenderHandler(render));
64
- }
65
- }
66
- export {
67
- bindRenderHandler,
68
- getRenderHandler
69
- };