@modern-js/prod-server 2.46.1 → 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 (169) hide show
  1. package/README.md +20 -16
  2. package/dist/cjs/{libs/hook-api/route.js → error.js} +16 -25
  3. package/dist/cjs/index.js +46 -24
  4. package/dist/esm/error.js +15 -0
  5. package/dist/esm/index.js +105 -19
  6. package/dist/esm-node/error.js +14 -0
  7. package/dist/esm-node/index.js +44 -17
  8. package/dist/types/error.d.ts +6 -0
  9. package/dist/types/index.d.ts +21 -11
  10. package/package.json +19 -93
  11. package/dist/cjs/constants.js +0 -72
  12. package/dist/cjs/libs/context/context.js +0 -240
  13. package/dist/cjs/libs/context/index.js +0 -31
  14. package/dist/cjs/libs/hook-api/afterRenderForStream.js +0 -34
  15. package/dist/cjs/libs/hook-api/base.js +0 -107
  16. package/dist/cjs/libs/hook-api/index.js +0 -85
  17. package/dist/cjs/libs/hook-api/index.worker.js +0 -119
  18. package/dist/cjs/libs/hook-api/template.js +0 -74
  19. package/dist/cjs/libs/hook-api/templateForStream.js +0 -52
  20. package/dist/cjs/libs/loadConfig.js +0 -70
  21. package/dist/cjs/libs/metrics.js +0 -33
  22. package/dist/cjs/libs/preload/flushServerHeader.js +0 -49
  23. package/dist/cjs/libs/preload/index.js +0 -24
  24. package/dist/cjs/libs/preload/parseLinks.js +0 -124
  25. package/dist/cjs/libs/preload/shouldFlushServerHeader.js +0 -52
  26. package/dist/cjs/libs/preload/transformLinks2String.js +0 -150
  27. package/dist/cjs/libs/proxy.js +0 -99
  28. package/dist/cjs/libs/render/index.js +0 -97
  29. package/dist/cjs/libs/render/measure.js +0 -74
  30. package/dist/cjs/libs/render/ssr.js +0 -126
  31. package/dist/cjs/libs/render/ssrCache/cacheMod.js +0 -56
  32. package/dist/cjs/libs/render/ssrCache/index.js +0 -81
  33. package/dist/cjs/libs/render/ssrCache/manager.js +0 -104
  34. package/dist/cjs/libs/render/static.js +0 -72
  35. package/dist/cjs/libs/render/type.js +0 -33
  36. package/dist/cjs/libs/render/utils.js +0 -41
  37. package/dist/cjs/libs/reporter.js +0 -39
  38. package/dist/cjs/libs/route/index.js +0 -85
  39. package/dist/cjs/libs/route/matcher.js +0 -117
  40. package/dist/cjs/libs/route/route.js +0 -49
  41. package/dist/cjs/libs/serveFile.js +0 -84
  42. package/dist/cjs/libs/serverTiming.js +0 -44
  43. package/dist/cjs/renderHtml.js +0 -72
  44. package/dist/cjs/server/index.js +0 -229
  45. package/dist/cjs/server/modernServer.js +0 -532
  46. package/dist/cjs/server/modernServerSplit.js +0 -67
  47. package/dist/cjs/type.js +0 -16
  48. package/dist/cjs/utils.js +0 -164
  49. package/dist/cjs/workerServer.js +0 -264
  50. package/dist/esm/constants.js +0 -43
  51. package/dist/esm/libs/context/context.js +0 -292
  52. package/dist/esm/libs/context/index.js +0 -8
  53. package/dist/esm/libs/hook-api/afterRenderForStream.js +0 -33
  54. package/dist/esm/libs/hook-api/base.js +0 -108
  55. package/dist/esm/libs/hook-api/index.js +0 -55
  56. package/dist/esm/libs/hook-api/index.worker.js +0 -113
  57. package/dist/esm/libs/hook-api/route.js +0 -41
  58. package/dist/esm/libs/hook-api/template.js +0 -84
  59. package/dist/esm/libs/hook-api/templateForStream.js +0 -35
  60. package/dist/esm/libs/loadConfig.js +0 -36
  61. package/dist/esm/libs/metrics.js +0 -9
  62. package/dist/esm/libs/preload/flushServerHeader.js +0 -50
  63. package/dist/esm/libs/preload/index.js +0 -2
  64. package/dist/esm/libs/preload/parseLinks.js +0 -172
  65. package/dist/esm/libs/preload/shouldFlushServerHeader.js +0 -27
  66. package/dist/esm/libs/preload/transformLinks2String.js +0 -140
  67. package/dist/esm/libs/proxy.js +0 -160
  68. package/dist/esm/libs/render/index.js +0 -142
  69. package/dist/esm/libs/render/measure.js +0 -69
  70. package/dist/esm/libs/render/ssr.js +0 -129
  71. package/dist/esm/libs/render/ssrCache/cacheMod.js +0 -33
  72. package/dist/esm/libs/render/ssrCache/index.js +0 -146
  73. package/dist/esm/libs/render/ssrCache/manager.js +0 -159
  74. package/dist/esm/libs/render/static.js +0 -100
  75. package/dist/esm/libs/render/type.js +0 -9
  76. package/dist/esm/libs/render/utils.js +0 -16
  77. package/dist/esm/libs/reporter.js +0 -15
  78. package/dist/esm/libs/route/index.js +0 -116
  79. package/dist/esm/libs/route/matcher.js +0 -128
  80. package/dist/esm/libs/route/route.js +0 -26
  81. package/dist/esm/libs/serveFile.js +0 -68
  82. package/dist/esm/libs/serverTiming.js +0 -30
  83. package/dist/esm/renderHtml.js +0 -150
  84. package/dist/esm/server/index.js +0 -426
  85. package/dist/esm/server/modernServer.js +0 -1018
  86. package/dist/esm/server/modernServerSplit.js +0 -138
  87. package/dist/esm/type.js +0 -0
  88. package/dist/esm/utils.js +0 -103
  89. package/dist/esm/workerServer.js +0 -347
  90. package/dist/esm-node/constants.js +0 -43
  91. package/dist/esm-node/libs/context/context.js +0 -206
  92. package/dist/esm-node/libs/context/index.js +0 -6
  93. package/dist/esm-node/libs/hook-api/afterRenderForStream.js +0 -10
  94. package/dist/esm-node/libs/hook-api/base.js +0 -72
  95. package/dist/esm-node/libs/hook-api/index.js +0 -57
  96. package/dist/esm-node/libs/hook-api/index.worker.js +0 -92
  97. package/dist/esm-node/libs/hook-api/route.js +0 -24
  98. package/dist/esm-node/libs/hook-api/template.js +0 -49
  99. package/dist/esm-node/libs/hook-api/templateForStream.js +0 -28
  100. package/dist/esm-node/libs/loadConfig.js +0 -34
  101. package/dist/esm-node/libs/metrics.js +0 -9
  102. package/dist/esm-node/libs/preload/flushServerHeader.js +0 -25
  103. package/dist/esm-node/libs/preload/index.js +0 -2
  104. package/dist/esm-node/libs/preload/parseLinks.js +0 -90
  105. package/dist/esm-node/libs/preload/shouldFlushServerHeader.js +0 -27
  106. package/dist/esm-node/libs/preload/transformLinks2String.js +0 -126
  107. package/dist/esm-node/libs/proxy.js +0 -74
  108. package/dist/esm-node/libs/render/index.js +0 -63
  109. package/dist/esm-node/libs/render/measure.js +0 -49
  110. package/dist/esm-node/libs/render/ssr.js +0 -92
  111. package/dist/esm-node/libs/render/ssrCache/cacheMod.js +0 -22
  112. package/dist/esm-node/libs/render/ssrCache/index.js +0 -57
  113. package/dist/esm-node/libs/render/ssrCache/manager.js +0 -80
  114. package/dist/esm-node/libs/render/static.js +0 -38
  115. package/dist/esm-node/libs/render/type.js +0 -9
  116. package/dist/esm-node/libs/render/utils.js +0 -16
  117. package/dist/esm-node/libs/reporter.js +0 -15
  118. package/dist/esm-node/libs/route/index.js +0 -60
  119. package/dist/esm-node/libs/route/matcher.js +0 -93
  120. package/dist/esm-node/libs/route/route.js +0 -25
  121. package/dist/esm-node/libs/serveFile.js +0 -49
  122. package/dist/esm-node/libs/serverTiming.js +0 -20
  123. package/dist/esm-node/renderHtml.js +0 -80
  124. package/dist/esm-node/server/index.js +0 -195
  125. package/dist/esm-node/server/modernServer.js +0 -498
  126. package/dist/esm-node/server/modernServerSplit.js +0 -43
  127. package/dist/esm-node/type.js +0 -0
  128. package/dist/esm-node/utils.js +0 -132
  129. package/dist/esm-node/workerServer.js +0 -239
  130. package/dist/types/constants.d.ts +0 -30
  131. package/dist/types/libs/context/context.d.ts +0 -62
  132. package/dist/types/libs/context/index.d.ts +0 -7
  133. package/dist/types/libs/hook-api/afterRenderForStream.d.ts +0 -4
  134. package/dist/types/libs/hook-api/base.d.ts +0 -53
  135. package/dist/types/libs/hook-api/index.d.ts +0 -6
  136. package/dist/types/libs/hook-api/index.worker.d.ts +0 -19
  137. package/dist/types/libs/hook-api/route.d.ts +0 -9
  138. package/dist/types/libs/hook-api/template.d.ts +0 -22
  139. package/dist/types/libs/hook-api/templateForStream.d.ts +0 -8
  140. package/dist/types/libs/loadConfig.d.ts +0 -13
  141. package/dist/types/libs/metrics.d.ts +0 -3
  142. package/dist/types/libs/preload/flushServerHeader.d.ts +0 -14
  143. package/dist/types/libs/preload/index.d.ts +0 -2
  144. package/dist/types/libs/preload/parseLinks.d.ts +0 -13
  145. package/dist/types/libs/preload/shouldFlushServerHeader.d.ts +0 -3
  146. package/dist/types/libs/preload/transformLinks2String.d.ts +0 -3
  147. package/dist/types/libs/proxy.d.ts +0 -13
  148. package/dist/types/libs/render/index.d.ts +0 -21
  149. package/dist/types/libs/render/measure.d.ts +0 -10
  150. package/dist/types/libs/render/ssr.d.ts +0 -12
  151. package/dist/types/libs/render/ssrCache/cacheMod.d.ts +0 -8
  152. package/dist/types/libs/render/ssrCache/index.d.ts +0 -7
  153. package/dist/types/libs/render/ssrCache/manager.d.ts +0 -14
  154. package/dist/types/libs/render/static.d.ts +0 -3
  155. package/dist/types/libs/render/type.d.ts +0 -36
  156. package/dist/types/libs/render/utils.d.ts +0 -5
  157. package/dist/types/libs/reporter.d.ts +0 -2
  158. package/dist/types/libs/route/index.d.ts +0 -15
  159. package/dist/types/libs/route/matcher.d.ts +0 -15
  160. package/dist/types/libs/route/route.d.ts +0 -14
  161. package/dist/types/libs/serveFile.d.ts +0 -9
  162. package/dist/types/libs/serverTiming.d.ts +0 -13
  163. package/dist/types/renderHtml.d.ts +0 -23
  164. package/dist/types/server/index.d.ts +0 -55
  165. package/dist/types/server/modernServer.d.ts +0 -71
  166. package/dist/types/server/modernServerSplit.d.ts +0 -2
  167. package/dist/types/type.d.ts +0 -77
  168. package/dist/types/utils.d.ts +0 -24
  169. package/dist/types/workerServer.d.ts +0 -59
@@ -1,138 +0,0 @@
1
- import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
- import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
3
- import { _ as _create_class } from "@swc/helpers/_/_create_class";
4
- import { _ as _get } from "@swc/helpers/_/_get";
5
- import { _ as _get_prototype_of } from "@swc/helpers/_/_get_prototype_of";
6
- import { _ as _inherits } from "@swc/helpers/_/_inherits";
7
- import { _ as _create_super } from "@swc/helpers/_/_create_super";
8
- import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
9
- import { ModernServer } from "./modernServer";
10
- var ModernSSRServer = /* @__PURE__ */ function(ModernServer2) {
11
- "use strict";
12
- _inherits(ModernSSRServer2, ModernServer2);
13
- var _super = _create_super(ModernSSRServer2);
14
- function ModernSSRServer2() {
15
- _class_call_check(this, ModernSSRServer2);
16
- return _super.apply(this, arguments);
17
- }
18
- _create_class(ModernSSRServer2, [
19
- {
20
- key: "prepareAPIHandler",
21
- value: function prepareAPIHandler(_) {
22
- return null;
23
- }
24
- },
25
- {
26
- key: "handleAPI",
27
- value: function handleAPI(context) {
28
- var _this = this;
29
- return _async_to_generator(function() {
30
- return _ts_generator(this, function(_state) {
31
- return [
32
- 2,
33
- _this.render404(context)
34
- ];
35
- });
36
- })();
37
- }
38
- }
39
- ]);
40
- return ModernSSRServer2;
41
- }(ModernServer);
42
- var ModernAPIServer = /* @__PURE__ */ function(ModernServer2) {
43
- "use strict";
44
- _inherits(ModernAPIServer2, ModernServer2);
45
- var _super = _create_super(ModernAPIServer2);
46
- function ModernAPIServer2() {
47
- _class_call_check(this, ModernAPIServer2);
48
- return _super.apply(this, arguments);
49
- }
50
- _create_class(ModernAPIServer2, [
51
- {
52
- key: "prepareWebHandler",
53
- value: function prepareWebHandler(_) {
54
- return null;
55
- }
56
- },
57
- {
58
- key: "filterRoutes",
59
- value: function filterRoutes(routes) {
60
- return routes.filter(function(route) {
61
- return route.isApi;
62
- });
63
- }
64
- }
65
- ]);
66
- return ModernAPIServer2;
67
- }(ModernServer);
68
- var ModernWebServer = /* @__PURE__ */ function(ModernServer2) {
69
- "use strict";
70
- _inherits(ModernWebServer2, ModernServer2);
71
- var _super = _create_super(ModernWebServer2);
72
- function ModernWebServer2() {
73
- _class_call_check(this, ModernWebServer2);
74
- return _super.apply(this, arguments);
75
- }
76
- _create_class(ModernWebServer2, [
77
- {
78
- key: "warmupSSRBundle",
79
- value: function warmupSSRBundle() {
80
- return _async_to_generator(function() {
81
- return _ts_generator(this, function(_state) {
82
- return [
83
- 2,
84
- null
85
- ];
86
- });
87
- })();
88
- }
89
- },
90
- {
91
- key: "handleAPI",
92
- value: function handleAPI(context) {
93
- var _this = this;
94
- return _async_to_generator(function() {
95
- return _ts_generator(this, function(_state) {
96
- return [
97
- 2,
98
- _this.render404(context)
99
- ];
100
- });
101
- })();
102
- }
103
- },
104
- {
105
- key: "handleWeb",
106
- value: function handleWeb(context, route) {
107
- var _this = this;
108
- var _this1 = this, _superprop_get_handleWeb = function() {
109
- return _get(_get_prototype_of(ModernWebServer2.prototype), "handleWeb", _this);
110
- };
111
- return _async_to_generator(function() {
112
- return _ts_generator(this, function(_state) {
113
- route.isSSR = false;
114
- return [
115
- 2,
116
- _superprop_get_handleWeb().call(_this1, context, route)
117
- ];
118
- });
119
- })();
120
- }
121
- }
122
- ]);
123
- return ModernWebServer2;
124
- }(ModernServer);
125
- var createProdServer = function(options) {
126
- if (options.apiOnly) {
127
- return new ModernAPIServer(options);
128
- } else if (options.ssrOnly) {
129
- return new ModernSSRServer(options);
130
- } else if (options.webOnly) {
131
- return new ModernWebServer(options);
132
- } else {
133
- return new ModernServer(options);
134
- }
135
- };
136
- export {
137
- createProdServer
138
- };
package/dist/esm/type.js DELETED
File without changes
package/dist/esm/utils.js DELETED
@@ -1,103 +0,0 @@
1
- import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
2
- import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
3
- import { createDebugger } from "@modern-js/utils";
4
- var debug = createDebugger("prod-server");
5
- var mergeExtension = function(users) {
6
- var output = [];
7
- return {
8
- middleware: output.concat(users)
9
- };
10
- };
11
- var noop = function() {
12
- };
13
- var createErrorDocument = function(status, text) {
14
- var title = "".concat(status, ": ").concat(text);
15
- return '<!DOCTYPE html>\n <html lang="en">\n <head>\n <meta charset="utf-8">\n <meta name="viewport" content="width=device-width">\n <title>'.concat(title, '</title>\n <style>\n html,body {\n margin: 0;\n }\n\n .page-container {\n color: #000;\n background: #fff;\n height: 100vh;\n text-align: center;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n }\n </style>\n </head>\n <body>\n <div class="page-container">\n <h1>').concat(status, "</h1>\n <div>").concat(text, "</div>\n </body>\n </html>\n ");
16
- };
17
- var createMiddlewareCollecter = function() {
18
- var webMiddlewares = [];
19
- var apiMiddlewares = [];
20
- var addWebMiddleware = function(input) {
21
- webMiddlewares.push(input);
22
- };
23
- var addAPIMiddleware = function(input) {
24
- apiMiddlewares.push(input);
25
- };
26
- var getMiddlewares = function() {
27
- return {
28
- web: webMiddlewares,
29
- api: apiMiddlewares
30
- };
31
- };
32
- return {
33
- getMiddlewares,
34
- addWebMiddleware,
35
- addAPIMiddleware
36
- };
37
- };
38
- var getStaticReg = function() {
39
- var output = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, html = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, prefix = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "/";
40
- var tmp = output.distPath, _ref = tmp === void 0 ? {} : tmp, cssPath = _ref.css, jsPath = _ref.js, mediaPath = _ref.media;
41
- var favicon = html.favicon, faviconByEntries = html.faviconByEntries;
42
- var favicons = prepareFavicons(favicon, faviconByEntries);
43
- var staticFiles = [
44
- cssPath,
45
- jsPath,
46
- mediaPath
47
- ].filter(function(v) {
48
- return Boolean(v);
49
- });
50
- var staticReg = [
51
- "static/",
52
- "upload/"
53
- ].concat(_to_consumable_array(staticFiles));
54
- var iconReg = [
55
- "favicon.ico",
56
- "icon.png"
57
- ].concat(_to_consumable_array(favicons));
58
- var regPrefix = prefix.endsWith("/") ? prefix : "".concat(prefix, "/");
59
- var staticPathRegExp = new RegExp("^".concat(regPrefix, "(").concat(_to_consumable_array(staticReg).concat(_to_consumable_array(iconReg)).join("|"), ")"));
60
- return staticPathRegExp;
61
- };
62
- var prepareFavicons = function(favicon, faviconByEntries) {
63
- var faviconNames = [];
64
- if (favicon) {
65
- faviconNames.push(favicon.substring(favicon.lastIndexOf("/") + 1));
66
- }
67
- if (faviconByEntries) {
68
- Object.keys(faviconByEntries).forEach(function(f) {
69
- var curFavicon = faviconByEntries[f];
70
- if (curFavicon) {
71
- faviconNames.push(curFavicon.substring(curFavicon.lastIndexOf("/") + 1));
72
- }
73
- });
74
- }
75
- return faviconNames;
76
- };
77
- var headersWithoutCookie = function(headers) {
78
- if (typeof headers.cookie !== "undefined") {
79
- var safeHeaders = _object_spread({}, headers);
80
- delete safeHeaders.cookie;
81
- return safeHeaders;
82
- }
83
- return headers;
84
- };
85
- var isRedirect = function(code) {
86
- return [
87
- 301,
88
- 302,
89
- 307,
90
- 308
91
- ].includes(code);
92
- };
93
- export {
94
- createErrorDocument,
95
- createMiddlewareCollecter,
96
- debug,
97
- getStaticReg,
98
- headersWithoutCookie,
99
- isRedirect,
100
- mergeExtension,
101
- noop,
102
- prepareFavicons
103
- };
@@ -1,347 +0,0 @@
1
- import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
- import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
3
- import { _ as _create_class } from "@swc/helpers/_/_create_class";
4
- import { _ as _define_property } from "@swc/helpers/_/_define_property";
5
- import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
6
- import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
7
- import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
8
- import { createAsyncPipeline } from "@modern-js/plugin";
9
- import { createAfterMatchContext, createAfterRenderContext, createMiddlewareContext } from "./libs/hook-api/index.worker";
10
- import { RouteMatchManager } from "./libs/route";
11
- import { metrics as defaultMetrics } from "./libs/metrics";
12
- import { defaultReporter } from "./libs/reporter";
13
- var createLogger = function() {
14
- return {
15
- error: function error(message) {
16
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
17
- args[_key - 1] = arguments[_key];
18
- }
19
- var _console;
20
- (_console = console).error.apply(_console, [
21
- message
22
- ].concat(_to_consumable_array(args)));
23
- },
24
- info: function info(message) {
25
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
26
- args[_key - 1] = arguments[_key];
27
- }
28
- var _console;
29
- (_console = console).error.apply(_console, [
30
- message
31
- ].concat(_to_consumable_array(args)));
32
- },
33
- warn: function warn(message) {
34
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
35
- args[_key - 1] = arguments[_key];
36
- }
37
- var _console;
38
- (_console = console).warn.apply(_console, [
39
- message
40
- ].concat(_to_consumable_array(args)));
41
- },
42
- debug: function debug(message) {
43
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
44
- args[_key - 1] = arguments[_key];
45
- }
46
- var _console;
47
- (_console = console).debug.apply(_console, [
48
- message
49
- ].concat(_to_consumable_array(args)));
50
- }
51
- };
52
- };
53
- var calcFallback = function(metaName) {
54
- return "x-".concat(metaName.split(/[-_]/)[0], "-ssr-fallback");
55
- };
56
- var ReturnResponse = /* @__PURE__ */ function() {
57
- "use strict";
58
- function ReturnResponse2(body, status) {
59
- var headers = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
60
- _class_call_check(this, ReturnResponse2);
61
- _define_property(this, "body", void 0);
62
- _define_property(this, "status", void 0);
63
- _define_property(this, "headers", void 0);
64
- this.body = body;
65
- this.status = status;
66
- this.headers = new Headers(headers);
67
- this.headers.set("content-type", "text/html;charset=UTF-8");
68
- }
69
- _create_class(ReturnResponse2, [
70
- {
71
- /**
72
- * Iterate a Object
73
- * 1. adds the value if the key does not already exist.
74
- * 2. append the value if the key does already exist.
75
- *
76
- * more detail follow: https://developer.mozilla.org/en-US/docs/Web/API/Headers/append
77
- * @param headers
78
- * @returns
79
- */
80
- key: "appendHeaders",
81
- value: function appendHeaders(headers) {
82
- var _this = this;
83
- Object.entries(headers).forEach(function(param) {
84
- var _param = _sliced_to_array(param, 2), key = _param[0], value = _param[1];
85
- _this.headers.append(key, value.toString());
86
- });
87
- return this;
88
- }
89
- },
90
- {
91
- /**
92
- * Iterate a Object
93
- * 1. adds the value if the key does not already exist.
94
- * 2. modify the value if the key does already exist.
95
- *
96
- * more detail follow: https://developer.mozilla.org/en-US/docs/Web/API/Headers/set
97
- * @param headers
98
- * @returns
99
- */
100
- key: "setHeaders",
101
- value: function setHeaders(headers) {
102
- var _this = this;
103
- Object.entries(headers).forEach(function(param) {
104
- var _param = _sliced_to_array(param, 2), key = _param[0], value = _param[1];
105
- _this.headers.set(key, value.toString());
106
- });
107
- return this;
108
- }
109
- }
110
- ]);
111
- return ReturnResponse2;
112
- }();
113
- var RESPONSE_NOTFOUND = new ReturnResponse("404: Page not found", 404);
114
- var isRedirect = function(code) {
115
- return [
116
- 301,
117
- 302,
118
- 307,
119
- 308
120
- ].includes(code);
121
- };
122
- var checkIsSent = function(context) {
123
- if (context.res.isSent) {
124
- return true;
125
- }
126
- if (context.res.headers.get("Location") && isRedirect(context.res.status)) {
127
- return true;
128
- }
129
- return false;
130
- };
131
- var middlewarePipeline = createAsyncPipeline();
132
- var createHandler = function(manifest) {
133
- var routeMgr = new RouteMatchManager();
134
- var pages = manifest.pages, routes = manifest.routes, manifestOpts = manifest.options;
135
- var _ref = manifestOpts || {}, _ref_metaName = _ref.metaName, metaName = _ref_metaName === void 0 ? "modern-js" : _ref_metaName, _ref_forceCSR = _ref.forceCSR, forceCSR = _ref_forceCSR === void 0 ? false : _ref_forceCSR;
136
- routeMgr.reset(routes);
137
- return function() {
138
- var _ref2 = _async_to_generator(function(options) {
139
- var _page_serverHooks_afterMatch, _page_serverHooks, request, loadableStats, routeManifest, url, pageMatch, entryName, page, logger, metrics, reporter, route, hookContext, afterMatchHookContext, _page_serverHooks1, _page_serverHooks_afterRender, _page_serverHooks2, middlewarsHookContext, responseLike, params, baseUrl, serverRenderContext, body, afterRenderHookContext, e;
140
- function createServerRequest(url2, baseUrl2, request2, params2) {
141
- var pathname = url2.pathname, host = url2.host, searchParams = url2.searchParams;
142
- var rawHeaders = request2.headers;
143
- var headers = {};
144
- rawHeaders.forEach(function(value, key) {
145
- headers[key] = value;
146
- });
147
- var query = Object.fromEntries(searchParams);
148
- return {
149
- url: url2.href,
150
- baseUrl: baseUrl2,
151
- pathname,
152
- host,
153
- headers,
154
- params: params2,
155
- query
156
- };
157
- }
158
- return _ts_generator(this, function(_state) {
159
- switch (_state.label) {
160
- case 0:
161
- request = options.request, loadableStats = options.loadableStats, routeManifest = options.routeManifest;
162
- url = new URL(request.url);
163
- pageMatch = routeMgr.match(url.pathname);
164
- if (!pageMatch) {
165
- return [
166
- 2,
167
- RESPONSE_NOTFOUND
168
- ];
169
- }
170
- entryName = pageMatch.spec.urlPath;
171
- page = pages[entryName];
172
- if (forceCSR && url.searchParams.get("csr") === "1") {
173
- return [
174
- 2,
175
- createResponse(page.template)
176
- ];
177
- }
178
- logger = createLogger();
179
- metrics = defaultMetrics;
180
- reporter = defaultReporter;
181
- route = pageMatch.generate(url.pathname);
182
- hookContext = createWorkerHookContext(request.url, logger, metrics, reporter);
183
- afterMatchHookContext = createAfterMatchContext(hookContext, entryName);
184
- page === null || page === void 0 ? void 0 : (_page_serverHooks = page.serverHooks) === null || _page_serverHooks === void 0 ? void 0 : (_page_serverHooks_afterMatch = _page_serverHooks.afterMatch) === null || _page_serverHooks_afterMatch === void 0 ? void 0 : _page_serverHooks_afterMatch.call(_page_serverHooks, afterMatchHookContext, function() {
185
- return void 0;
186
- });
187
- if (checkIsSent(hookContext)) {
188
- return [
189
- 2,
190
- new ReturnResponse(hookContext.res.body || "Unkown body", hookContext.res.status, hookContext.res.headers)
191
- ];
192
- }
193
- if (!page.serverRender)
194
- return [
195
- 3,
196
- 4
197
- ];
198
- _state.label = 1;
199
- case 1:
200
- _state.trys.push([
201
- 1,
202
- 3,
203
- ,
204
- 4
205
- ]);
206
- middlewarsHookContext = createMiddlewareContext(hookContext);
207
- applyMiddlewares(middlewarsHookContext, (_page_serverHooks1 = page.serverHooks) === null || _page_serverHooks1 === void 0 ? void 0 : _page_serverHooks1.middleware);
208
- if (checkIsSent(hookContext)) {
209
- return [
210
- 2,
211
- new ReturnResponse(hookContext.res.body || "Unkown body", hookContext.res.status, hookContext.res.headers)
212
- ];
213
- }
214
- if (forceCSR && middlewarsHookContext.request.headers[calcFallback(metaName)]) {
215
- return [
216
- 2,
217
- createResponse(page.template)
218
- ];
219
- }
220
- responseLike = {
221
- headers: {},
222
- statusCode: 200,
223
- locals: {},
224
- setHeader: function setHeader(key, value) {
225
- this.headers[key] = value;
226
- },
227
- status: function status(code) {
228
- this.statusCode = code;
229
- }
230
- };
231
- params = pageMatch.parseURLParams(url.pathname) || {};
232
- baseUrl = pageMatch.urlPath;
233
- serverRenderContext = {
234
- request: createServerRequest(url, baseUrl, request, params),
235
- response: responseLike,
236
- loadableStats,
237
- routeManifest,
238
- redirection: {},
239
- template: page.template,
240
- entryName: page.entryName,
241
- logger,
242
- reporter: defaultReporter,
243
- metrics,
244
- req: request,
245
- res: responseLike,
246
- serverTiming: {
247
- addServeTiming: function addServeTiming() {
248
- return this;
249
- }
250
- }
251
- };
252
- return [
253
- 4,
254
- page.serverRender(serverRenderContext)
255
- ];
256
- case 2:
257
- body = _state.sent();
258
- afterRenderHookContext = createAfterRenderContext(hookContext, route, body);
259
- (_page_serverHooks2 = page.serverHooks) === null || _page_serverHooks2 === void 0 ? void 0 : (_page_serverHooks_afterRender = _page_serverHooks2.afterRender) === null || _page_serverHooks_afterRender === void 0 ? void 0 : _page_serverHooks_afterRender.call(_page_serverHooks2, afterRenderHookContext, function() {
260
- return void 0;
261
- });
262
- if (checkIsSent(hookContext)) {
263
- return [
264
- 2,
265
- new ReturnResponse(hookContext.res.body || "Unkown body", hookContext.res.status, hookContext.res.headers)
266
- ];
267
- }
268
- return [
269
- 2,
270
- new ReturnResponse(afterRenderHookContext.template.get(), responseLike.statusCode, responseLike.headers)
271
- ];
272
- case 3:
273
- e = _state.sent();
274
- console.warn("page(".concat(pageMatch.spec.urlPath, ") serverRender occur error: "));
275
- console.warn(e);
276
- return [
277
- 2,
278
- createResponse(page.template)
279
- ];
280
- case 4:
281
- console.warn("Can't not page(".concat(entryName, ") serverRender"));
282
- return [
283
- 2,
284
- createResponse(page.template)
285
- ];
286
- }
287
- });
288
- });
289
- return function(options) {
290
- return _ref2.apply(this, arguments);
291
- };
292
- }();
293
- };
294
- function createResponse(template) {
295
- if (template) {
296
- return new ReturnResponse(template, 200);
297
- } else {
298
- return RESPONSE_NOTFOUND;
299
- }
300
- }
301
- function createWorkerHookContext(url, logger, metrics, reporter) {
302
- var _ref = [
303
- {
304
- headers: new Headers(),
305
- body: "",
306
- status: 200,
307
- isSent: false
308
- },
309
- new Request(url)
310
- ], res = _ref[0], req = _ref[1];
311
- return {
312
- res,
313
- req,
314
- logger,
315
- metrics,
316
- reporter
317
- };
318
- }
319
- var appliedMiddlewares = false;
320
- function applyMiddlewares(ctx, middleware) {
321
- if (middleware) {
322
- var middlewares = function() {
323
- if (Array.isArray(middleware)) {
324
- return middleware;
325
- } else {
326
- return [
327
- middleware
328
- ];
329
- }
330
- }();
331
- if (!appliedMiddlewares) {
332
- middlewares.forEach(function(middleware2) {
333
- middlewarePipeline.use(middleware2);
334
- });
335
- appliedMiddlewares = true;
336
- }
337
- middlewarePipeline.run(ctx, {
338
- onLast: function() {
339
- return void 0;
340
- }
341
- });
342
- }
343
- }
344
- export {
345
- ReturnResponse,
346
- createHandler
347
- };
@@ -1,43 +0,0 @@
1
- const AGGRED_DIR = {
2
- mock: "config/mock",
3
- server: "server",
4
- api: "api",
5
- shared: "shared",
6
- lambda: "lambda"
7
- };
8
- var ApiServerMode;
9
- (function(ApiServerMode2) {
10
- ApiServerMode2["func"] = "function";
11
- ApiServerMode2["frame"] = "framework";
12
- })(ApiServerMode || (ApiServerMode = {}));
13
- const ERROR_DIGEST = {
14
- INIT: "Server init error",
15
- ENOTF: "Page could not be found",
16
- WARMUP: "SSR warmup failed",
17
- EINTER: "Internal server error",
18
- ERENDER: "SSR render failed",
19
- EMICROINJ: "Get micro-frontend info failed"
20
- };
21
- const ERROR_PAGE_TEXT = {
22
- 404: "This page could not be found.",
23
- 500: "Internal Server Error."
24
- };
25
- const RUN_MODE = {
26
- FULL: "full",
27
- TYPE: "type"
28
- };
29
- var ServerReportTimings;
30
- (function(ServerReportTimings2) {
31
- ServerReportTimings2["SERVER_HANDLE_REQUEST"] = "server-handle-request";
32
- ServerReportTimings2["SERVER_MIDDLEWARE"] = "server-middleware";
33
- ServerReportTimings2["SERVER_HOOK_AFTER_RENDER"] = "server-hook-after-render";
34
- ServerReportTimings2["SERVER_HOOK_AFTER_MATCH"] = "server-hook-after-match";
35
- })(ServerReportTimings || (ServerReportTimings = {}));
36
- export {
37
- AGGRED_DIR,
38
- ApiServerMode,
39
- ERROR_DIGEST,
40
- ERROR_PAGE_TEXT,
41
- RUN_MODE,
42
- ServerReportTimings
43
- };