@modern-js/prod-server 1.22.1 → 2.0.0-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 (132) hide show
  1. package/CHANGELOG.md +271 -17
  2. package/dist/js/modern/constants.js +32 -27
  3. package/dist/js/modern/index.js +11 -7
  4. package/dist/js/modern/libs/context/context.js +54 -132
  5. package/dist/js/modern/libs/context/index.js +5 -2
  6. package/dist/js/modern/libs/hook-api/index.js +134 -0
  7. package/dist/js/modern/libs/hook-api/route.js +13 -37
  8. package/dist/js/modern/libs/hook-api/template.js +41 -32
  9. package/dist/js/modern/libs/loadConfig.js +46 -32
  10. package/dist/js/modern/libs/metrics.js +6 -7
  11. package/dist/js/modern/libs/proxy.js +70 -44
  12. package/dist/js/modern/libs/render/cache/__tests__/cache.fun.test.js +112 -68
  13. package/dist/js/modern/libs/render/cache/__tests__/cache.test.js +246 -225
  14. package/dist/js/modern/libs/render/cache/__tests__/cacheable.js +43 -49
  15. package/dist/js/modern/libs/render/cache/__tests__/error-configuration.js +36 -34
  16. package/dist/js/modern/libs/render/cache/__tests__/matched-cache.js +83 -113
  17. package/dist/js/modern/libs/render/cache/index.js +93 -50
  18. package/dist/js/modern/libs/render/cache/page-caches/index.js +31 -8
  19. package/dist/js/modern/libs/render/cache/page-caches/lru.js +6 -16
  20. package/dist/js/modern/libs/render/cache/spr.js +133 -167
  21. package/dist/js/modern/libs/render/cache/type.js +0 -1
  22. package/dist/js/modern/libs/render/cache/util.js +71 -45
  23. package/dist/js/modern/libs/render/index.js +76 -61
  24. package/dist/js/modern/libs/render/measure.js +42 -34
  25. package/dist/js/modern/libs/render/reader.js +68 -76
  26. package/dist/js/modern/libs/render/ssr.js +63 -33
  27. package/dist/js/modern/libs/render/static.js +51 -37
  28. package/dist/js/modern/libs/render/type.js +9 -7
  29. package/dist/js/modern/libs/route/index.js +12 -30
  30. package/dist/js/modern/libs/route/matcher.js +28 -50
  31. package/dist/js/modern/libs/route/route.js +9 -31
  32. package/dist/js/modern/libs/serve-file.js +40 -20
  33. package/dist/js/modern/server/index.js +152 -168
  34. package/dist/js/modern/server/modern-server-split.js +44 -60
  35. package/dist/js/modern/server/modern-server.js +416 -526
  36. package/dist/js/modern/type.js +0 -1
  37. package/dist/js/modern/utils.js +62 -58
  38. package/dist/js/modern/worker-server.js +54 -0
  39. package/dist/js/node/constants.js +53 -32
  40. package/dist/js/node/index.js +37 -67
  41. package/dist/js/node/libs/context/context.js +84 -150
  42. package/dist/js/node/libs/context/index.js +28 -16
  43. package/dist/js/node/libs/hook-api/index.js +164 -0
  44. package/dist/js/node/libs/hook-api/route.js +35 -45
  45. package/dist/js/node/libs/hook-api/template.js +64 -40
  46. package/dist/js/node/libs/loadConfig.js +74 -55
  47. package/dist/js/node/libs/metrics.js +28 -12
  48. package/dist/js/node/libs/proxy.js +90 -55
  49. package/dist/js/node/libs/render/cache/__tests__/cache.fun.test.js +99 -61
  50. package/dist/js/node/libs/render/cache/__tests__/cache.test.js +147 -140
  51. package/dist/js/node/libs/render/cache/__tests__/cacheable.js +65 -55
  52. package/dist/js/node/libs/render/cache/__tests__/error-configuration.js +58 -40
  53. package/dist/js/node/libs/render/cache/__tests__/matched-cache.js +105 -119
  54. package/dist/js/node/libs/render/cache/index.js +115 -65
  55. package/dist/js/node/libs/render/cache/page-caches/index.js +54 -16
  56. package/dist/js/node/libs/render/cache/page-caches/lru.js +33 -26
  57. package/dist/js/node/libs/render/cache/spr.js +161 -188
  58. package/dist/js/node/libs/render/cache/type.js +15 -5
  59. package/dist/js/node/libs/render/cache/util.js +99 -63
  60. package/dist/js/node/libs/render/index.js +106 -87
  61. package/dist/js/node/libs/render/measure.js +61 -44
  62. package/dist/js/node/libs/render/reader.js +98 -100
  63. package/dist/js/node/libs/render/ssr.js +92 -58
  64. package/dist/js/node/libs/render/static.js +80 -53
  65. package/dist/js/node/libs/render/type.js +31 -13
  66. package/dist/js/node/libs/route/index.js +35 -44
  67. package/dist/js/node/libs/route/matcher.js +48 -65
  68. package/dist/js/node/libs/route/route.js +29 -37
  69. package/dist/js/node/libs/serve-file.js +74 -37
  70. package/dist/js/node/server/index.js +170 -203
  71. package/dist/js/node/server/modern-server-split.js +70 -73
  72. package/dist/js/node/server/modern-server.js +432 -577
  73. package/dist/js/node/type.js +15 -3
  74. package/dist/js/node/utils.js +87 -93
  75. package/dist/js/node/worker-server.js +77 -0
  76. package/dist/js/treeshaking/constants.js +29 -0
  77. package/dist/js/treeshaking/index.js +13 -0
  78. package/dist/js/treeshaking/libs/context/context.js +274 -0
  79. package/dist/js/treeshaking/libs/context/index.js +5 -0
  80. package/dist/js/treeshaking/libs/hook-api/index.js +281 -0
  81. package/dist/js/treeshaking/libs/hook-api/route.js +68 -0
  82. package/dist/js/treeshaking/libs/hook-api/template.js +127 -0
  83. package/dist/js/treeshaking/libs/loadConfig.js +82 -0
  84. package/dist/js/treeshaking/libs/metrics.js +6 -0
  85. package/dist/js/treeshaking/libs/proxy.js +244 -0
  86. package/dist/js/treeshaking/libs/render/cache/__tests__/cache.fun.test.js +291 -0
  87. package/dist/js/treeshaking/libs/render/cache/__tests__/cache.test.js +781 -0
  88. package/dist/js/treeshaking/libs/render/cache/__tests__/cacheable.js +67 -0
  89. package/dist/js/treeshaking/libs/render/cache/__tests__/error-configuration.js +45 -0
  90. package/dist/js/treeshaking/libs/render/cache/__tests__/matched-cache.js +147 -0
  91. package/dist/js/treeshaking/libs/render/cache/index.js +346 -0
  92. package/dist/js/treeshaking/libs/render/cache/page-caches/index.js +154 -0
  93. package/dist/js/treeshaking/libs/render/cache/page-caches/lru.js +84 -0
  94. package/dist/js/treeshaking/libs/render/cache/spr.js +492 -0
  95. package/dist/js/treeshaking/libs/render/cache/type.js +1 -0
  96. package/dist/js/treeshaking/libs/render/cache/util.js +280 -0
  97. package/dist/js/treeshaking/libs/render/index.js +233 -0
  98. package/dist/js/treeshaking/libs/render/measure.js +146 -0
  99. package/dist/js/treeshaking/libs/render/reader.js +339 -0
  100. package/dist/js/treeshaking/libs/render/ssr.js +223 -0
  101. package/dist/js/treeshaking/libs/render/static.js +216 -0
  102. package/dist/js/treeshaking/libs/render/type.js +7 -0
  103. package/dist/js/treeshaking/libs/route/index.js +130 -0
  104. package/dist/js/treeshaking/libs/route/matcher.js +138 -0
  105. package/dist/js/treeshaking/libs/route/route.js +40 -0
  106. package/dist/js/treeshaking/libs/serve-file.js +184 -0
  107. package/dist/js/treeshaking/server/index.js +505 -0
  108. package/dist/js/treeshaking/server/modern-server-split.js +360 -0
  109. package/dist/js/treeshaking/server/modern-server.js +1083 -0
  110. package/dist/js/treeshaking/type.js +1 -0
  111. package/dist/js/treeshaking/utils.js +147 -0
  112. package/dist/js/treeshaking/worker-server.js +177 -0
  113. package/dist/types/libs/context/context.d.ts +1 -1
  114. package/dist/types/libs/hook-api/index.d.ts +5 -0
  115. package/dist/types/libs/hook-api/route.d.ts +9 -14
  116. package/dist/types/libs/hook-api/template.d.ts +19 -9
  117. package/dist/types/libs/render/cache/index.d.ts +4 -2
  118. package/dist/types/libs/render/type.d.ts +3 -1
  119. package/dist/types/libs/route/route.d.ts +0 -1
  120. package/dist/types/libs/serve-file.d.ts +2 -1
  121. package/dist/types/server/index.d.ts +2 -0
  122. package/dist/types/server/modern-server.d.ts +11 -11
  123. package/dist/types/type.d.ts +8 -10
  124. package/dist/types/utils.d.ts +3 -4
  125. package/dist/types/worker-server.d.ts +15 -0
  126. package/package.json +31 -45
  127. package/dist/js/modern/libs/render/modern/browser-list.js +0 -7
  128. package/dist/js/modern/libs/render/modern/index.js +0 -48
  129. package/dist/js/node/libs/render/modern/browser-list.js +0 -14
  130. package/dist/js/node/libs/render/modern/index.js +0 -64
  131. package/dist/types/libs/render/modern/browser-list.d.ts +0 -1
  132. package/dist/types/libs/render/modern/index.d.ts +0 -3
package/CHANGELOG.md CHANGED
@@ -1,39 +1,293 @@
1
1
  # @modern-js/prod-server
2
2
 
3
- ## 1.22.1
3
+ ## 2.0.0-beta.4
4
4
 
5
- ### Patch Changes
5
+ ### Major Changes
6
6
 
7
- - @modern-js/server-core@1.22.1
8
- - @modern-js/utils@1.22.1
7
+ - dda38c9c3e: chore: v2
9
8
 
10
- ## 1.21.6
9
+ ### Minor Changes
11
10
 
12
- ### Patch Changes
11
+ - c9e800d39a: feat: support React18 streaming SSR
12
+ feat: 支持 React18 流式 SSR
13
+ - 543be9558e: feat: compile server loader and support handle loader request
14
+ feat: 编译 server loader 并支持处理 loader 的请求
15
+
16
+ ### Patch Changes
17
+
18
+ - 7879e8f: refactor: remove enableModernMode config
19
+
20
+ refactor: 不再支持 enableModernMode 配置项
21
+
22
+ - d032d49e09: export createHandle
23
+ 导出 createHandle 函数
24
+ - 15bf09d9c8: feat: support completely custom server, export render() api for render single page
25
+ feat: 支持完全自定义 Server,导出 render() 方法用来渲染单个页面
26
+ - cc971eabfc: refactor: move server plugin load logic in `@modern-js/core`
27
+ refactor:移除在 `@modern-js/core` 中的 server 插件加载逻辑
28
+ - 40ed5874c6: feat: inject css chunk into html for streaming ssr
29
+ feat: streaming ssr 返回的 html 注入 css chunk
30
+ - 102d32e4ba: feat(server): add `req` and `res` to SSR context
31
+
32
+ feat(server): 添加 `req` 和 `res` 到 SSR context 中
33
+
34
+ - 3bbea92b2a: feat: support Hook、Middleware new API
35
+ feat: 支持 Hook、Middleware 的新 API
36
+ - 73cd29dd9f: fix(server): add favicon fallback handler
37
+
38
+ fix(server): 添加 favicon 兜底处理逻辑
39
+
40
+ - cce8ecee2d: fix: handle some `TODO` & `FIXME`, change some tests
41
+ fix: 处理一些 `TODO` 和 `FIXME`, 修改了一些 tests
42
+ - 18aaf42249: fix: fix server loader redirects
43
+ fix: 修复 server loader 重定向错误
44
+ - 14b712da84: fix: use consistent alias type and default value across packages
45
+
46
+ fix: 在各个包中使用一致的 alias 类型定义和默认值
47
+
48
+ - Updated dependencies [7879e8f]
49
+ - Updated dependencies [6aca875]
50
+ - Updated dependencies [15bf09d9c8]
51
+ - Updated dependencies [2e6031955e]
52
+ - Updated dependencies [7b7d12c]
53
+ - Updated dependencies [92f0eade39]
54
+ - Updated dependencies [edd1cfb1af]
55
+ - Updated dependencies [cc971eabfc]
56
+ - Updated dependencies [5b9049f2e9]
57
+ - Updated dependencies [92004d1906]
58
+ - Updated dependencies [b8bbe036c7]
59
+ - Updated dependencies [d5a31df781]
60
+ - Updated dependencies [dda38c9c3e]
61
+ - Updated dependencies [3bbea92b2a]
62
+ - Updated dependencies [b710adb843]
63
+ - Updated dependencies [ea7cf06]
64
+ - Updated dependencies [bbe4c4a]
65
+ - Updated dependencies [e4558a0]
66
+ - Updated dependencies [abf3421a75]
67
+ - Updated dependencies [543be9558e]
68
+ - Updated dependencies [14b712da84]
69
+ - @modern-js/utils@2.0.0-beta.4
70
+ - @modern-js/server-core@2.0.0-beta.4
71
+
72
+ ## 2.0.0-beta.3
73
+
74
+ ### Major Changes
75
+
76
+ - dda38c9c3e: chore: v2
13
77
 
14
- - @modern-js/server-core@1.21.6
15
- - @modern-js/utils@1.21.6
78
+ ### Minor Changes
16
79
 
17
- ## 1.21.5
80
+ - c9e800d39a: feat: support React18 streaming SSR
81
+ feat: 支持 React18 流式 SSR
82
+ - 543be9558e: feat: compile server loader and support handle loader request
83
+ feat: 编译 server loader 并支持处理 loader 的请求
84
+
85
+ ### Patch Changes
86
+
87
+ - d032d49e09: export createHandle
88
+ 导出 createHandle 函数
89
+ - 15bf09d9c8: feat: support completely custom server, export render() api for render single page
90
+ feat: 支持完全自定义 Server,导出 render() 方法用来渲染单个页面
91
+ - cc971eabfc: refactor: move server plugin load logic in `@modern-js/core`
92
+ refactor:移除在 `@modern-js/core` 中的 server 插件加载逻辑
93
+ - 40ed5874c6: feat: inject css chunk into html for streaming ssr
94
+ feat: streaming ssr 返回的 html 注入 css chunk
95
+ - 102d32e4ba: feat(server): add `req` and `res` to SSR context
96
+
97
+ feat(server): 添加 `req` 和 `res` 到 SSR context 中
98
+
99
+ - 3bbea92b2a: feat: support Hook、Middleware new API
100
+ feat: 支持 Hook、Middleware 的新 API
101
+ - 73cd29dd9f: fix(server): add favicon fallback handler
102
+
103
+ fix(server): 添加 favicon 兜底处理逻辑
104
+
105
+ - cce8ece: fix: handle some `TODO` & `FIXME`, change some tests
106
+ fix: 处理一些 `TODO` 和 `FIXME`, 修改了一些 tests
107
+ - 18aaf42249: fix: fix server loader redirects
108
+ fix: 修复 server loader 重定向错误
109
+ - 14b712da84: fix: use consistent alias type and default value across packages
110
+
111
+ fix: 在各个包中使用一致的 alias 类型定义和默认值
112
+
113
+ - Updated dependencies [6aca875]
114
+ - Updated dependencies [15bf09d9c8]
115
+ - Updated dependencies [2e60319]
116
+ - Updated dependencies [92f0eade39]
117
+ - Updated dependencies [edd1cfb1af]
118
+ - Updated dependencies [cc971eabfc]
119
+ - Updated dependencies [5b9049f2e9]
120
+ - Updated dependencies [92004d1906]
121
+ - Updated dependencies [b8bbe036c7]
122
+ - Updated dependencies [d5a31df781]
123
+ - Updated dependencies [dda38c9c3e]
124
+ - Updated dependencies [3bbea92b2a]
125
+ - Updated dependencies [b710adb]
126
+ - Updated dependencies [ea7cf06]
127
+ - Updated dependencies [bbe4c4a]
128
+ - Updated dependencies [e4558a0]
129
+ - Updated dependencies [abf3421a75]
130
+ - Updated dependencies [543be9558e]
131
+ - Updated dependencies [14b712da84]
132
+ - @modern-js/utils@2.0.0-beta.3
133
+ - @modern-js/server-core@2.0.0-beta.3
134
+
135
+ ## 2.0.0-beta.2
136
+
137
+ ### Major Changes
138
+
139
+ - dda38c9c3e: chore: v2
140
+
141
+ ### Minor Changes
142
+
143
+ - c9e800d39a: feat: support React18 streaming SSR
144
+ feat: 支持 React18 流式 SSR
145
+ - 543be9558e: feat: compile server loader and support handle loader request
146
+ feat: 编译 server loader 并支持处理 loader 的请求
18
147
 
19
148
  ### Patch Changes
20
149
 
21
- - @modern-js/server-core@1.21.5
22
- - @modern-js/utils@1.21.5
150
+ - d032d49: export createHandle
151
+ 导出 createHandle 函数
152
+ - 15bf09d9c8: feat: support completely custom server, export render() api for render single page
153
+ feat: 支持完全自定义 Server,导出 render() 方法用来渲染单个页面
154
+ - cc971eabfc: refactor: move server plugin load logic in `@modern-js/core`
155
+ refactor:移除在 `@modern-js/core` 中的 server 插件加载逻辑
156
+ - 40ed587: feat: inject css chunk into html for streaming ssr
157
+ feat: streaming ssr 返回的 html 注入 css chunk
158
+ - 102d32e4ba: feat(server): add `req` and `res` to SSR context
159
+
160
+ feat(server): 添加 `req` 和 `res` 到 SSR context 中
161
+
162
+ - 3bbea92b2a: feat: support Hook、Middleware new API
163
+ feat: 支持 Hook、Middleware 的新 API
164
+ - 73cd29dd9f: fix(server): add favicon fallback handler
165
+
166
+ fix(server): 添加 favicon 兜底处理逻辑
167
+
168
+ - 18aaf42: fix: fix server loader redirects
169
+ fix: 修复 server loader 重定向错误
170
+ - 14b712da84: fix: use consistent alias type and default value across packages
171
+
172
+ fix: 在各个包中使用一致的 alias 类型定义和默认值
173
+
174
+ - Updated dependencies [15bf09d9c8]
175
+ - Updated dependencies [92f0ead]
176
+ - Updated dependencies [edd1cfb1af]
177
+ - Updated dependencies [cc971eabfc]
178
+ - Updated dependencies [5b9049f2e9]
179
+ - Updated dependencies [92004d1]
180
+ - Updated dependencies [b8bbe036c7]
181
+ - Updated dependencies [d5a31df781]
182
+ - Updated dependencies [dda38c9c3e]
183
+ - Updated dependencies [3bbea92b2a]
184
+ - Updated dependencies [abf3421a75]
185
+ - Updated dependencies [543be9558e]
186
+ - Updated dependencies [14b712da84]
187
+ - @modern-js/server-core@2.0.0-beta.2
188
+ - @modern-js/utils@2.0.0-beta.2
189
+
190
+ ## 2.0.0-beta.1
191
+
192
+ ### Major Changes
193
+
194
+ - dda38c9: chore: v2
195
+
196
+ ### Minor Changes
23
197
 
24
- ## 1.21.4
198
+ - c9e800d39a: feat: support React18 streaming SSR
199
+ feat: 支持 React18 流式 SSR
200
+ - 543be9558e: feat: compile server loader and support handle loader request
201
+ feat: 编译 server loader 并支持处理 loader 的请求
25
202
 
26
203
  ### Patch Changes
27
204
 
28
- - @modern-js/server-core@1.21.4
29
- - @modern-js/utils@1.21.4
205
+ - d032d49: export createHandle
206
+ 导出 createHandle 函数
207
+ - 15bf09d9c8: feat: support completely custom server, export render() api for render single page
208
+ feat: 支持完全自定义 Server,导出 render() 方法用来渲染单个页面
209
+ - cc971eabfc: refactor: move server plugin load logic in `@modern-js/core`
210
+ refactor:移除在 `@modern-js/core` 中的 server 插件加载逻辑
211
+ - 40ed587: feat: inject css chunk into html for streaming ssr
212
+ feat: streaming ssr 返回的 html 注入 css chunk
213
+ - 102d32e4ba: feat(server): add `req` and `res` to SSR context
30
214
 
31
- ## 1.21.3
215
+ feat(server): 添加 `req` 和 `res` 到 SSR context 中
216
+
217
+ - 3bbea92b2a: feat: support Hook、Middleware new API
218
+ feat: 支持 Hook、Middleware 的新 API
219
+ - 73cd29dd9f: fix(server): add favicon fallback handler
220
+
221
+ fix(server): 添加 favicon 兜底处理逻辑
222
+
223
+ - 18aaf42: fix: fix server loader redirects
224
+ fix: 修复 server loader 重定向错误
225
+ - 14b712d: fix: use consistent alias type and default value across packages
226
+
227
+ fix: 在各个包中使用一致的 alias 类型定义和默认值
228
+
229
+ - Updated dependencies [15bf09d9c8]
230
+ - Updated dependencies [92f0ead]
231
+ - Updated dependencies [edd1cfb1af]
232
+ - Updated dependencies [cc971eabfc]
233
+ - Updated dependencies [5b9049f]
234
+ - Updated dependencies [92004d1]
235
+ - Updated dependencies [b8bbe036c7]
236
+ - Updated dependencies [d5a31df781]
237
+ - Updated dependencies [dda38c9]
238
+ - Updated dependencies [3bbea92b2a]
239
+ - Updated dependencies [abf3421]
240
+ - Updated dependencies [543be9558e]
241
+ - Updated dependencies [14b712d]
242
+ - @modern-js/server-core@2.0.0-beta.1
243
+ - @modern-js/utils@2.0.0-beta.1
244
+
245
+ ## 2.0.0-beta.0
246
+
247
+ ### Major Changes
248
+
249
+ - dda38c9: chore: v2
250
+
251
+ ### Minor Changes
252
+
253
+ - c9e800d39: feat: support React18 streaming SSR
254
+ feat: 支持 React18 流式 SSR
255
+ - 543be95: feat: compile server loader and support handle loader request
256
+ feat: 编译 server loader 并支持处理 loader 的请求
32
257
 
33
258
  ### Patch Changes
34
259
 
35
- - @modern-js/server-core@1.21.3
36
- - @modern-js/utils@1.21.3
260
+ - 15bf09d9c: feat: support completely custom server, export render() api for render single page
261
+ feat: 支持完全自定义 Server,导出 render() 方法用来渲染单个页面
262
+ - cc971eabf: refactor: move server plugin load logic in `@modern-js/core`
263
+ refactor:移除在 `@modern-js/core` 中的 server 插件加载逻辑
264
+ - 102d32e4b: feat(server): add `req` and `res` to SSR context
265
+
266
+ feat(server): 添加 `req` 和 `res` 到 SSR context 中
267
+
268
+ - 3bbea92b2: feat: support Hook、Middleware new API
269
+ feat: 支持 Hook、Middleware 的新 API
270
+ - 73cd29dd9: fix(server): add favicon fallback handler
271
+
272
+ fix(server): 添加 favicon 兜底处理逻辑
273
+
274
+ - 14b712d: fix: use consistent alias type and default value across packages
275
+
276
+ fix: 在各个包中使用一致的 alias 类型定义和默认值
277
+
278
+ - Updated dependencies [15bf09d9c]
279
+ - Updated dependencies [edd1cfb1a]
280
+ - Updated dependencies [cc971eabf]
281
+ - Updated dependencies [5b9049f]
282
+ - Updated dependencies [b8bbe036c]
283
+ - Updated dependencies [d5a31df78]
284
+ - Updated dependencies [dda38c9]
285
+ - Updated dependencies [3bbea92b2]
286
+ - Updated dependencies [abf3421]
287
+ - Updated dependencies [543be95]
288
+ - Updated dependencies [14b712d]
289
+ - @modern-js/server-core@2.0.0-beta.0
290
+ - @modern-js/utils@2.0.0-beta.0
37
291
 
38
292
  ## 1.21.2
39
293
 
@@ -1,30 +1,35 @@
1
- export const AGGRED_DIR = {
2
- mock: 'config/mock',
3
- server: 'server',
4
- api: 'api',
5
- shared: 'shared',
6
- lambda: 'lambda'
1
+ const AGGRED_DIR = {
2
+ mock: "config/mock",
3
+ server: "server",
4
+ api: "api",
5
+ shared: "shared",
6
+ lambda: "lambda"
7
7
  };
8
- export let ApiServerMode;
9
-
10
- (function (ApiServerMode) {
11
- ApiServerMode["func"] = "function";
12
- ApiServerMode["frame"] = "framework";
13
- })(ApiServerMode || (ApiServerMode = {}));
14
-
15
- export const ERROR_DIGEST = {
16
- INIT: 'Server init error',
17
- ENOTF: 'Page could not be found',
18
- WARMUP: 'SSR warmup failed',
19
- EINTER: 'Internal server error',
20
- ERENDER: 'SSR render failed',
21
- EMICROINJ: 'Get micro-frontend info failed'
8
+ var ApiServerMode = /* @__PURE__ */ ((ApiServerMode2) => {
9
+ ApiServerMode2["func"] = "function";
10
+ ApiServerMode2["frame"] = "framework";
11
+ return ApiServerMode2;
12
+ })(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"
22
20
  };
23
- export const ERROR_PAGE_TEXT = {
24
- 404: 'This page could not be found.',
25
- 500: 'Internal Server Error.'
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
+ export {
30
+ AGGRED_DIR,
31
+ ApiServerMode,
32
+ ERROR_DIGEST,
33
+ ERROR_PAGE_TEXT,
34
+ RUN_MODE
26
35
  };
27
- export const RUN_MODE = {
28
- FULL: 'full',
29
- TYPE: 'type'
30
- };
@@ -1,14 +1,18 @@
1
1
  import { Server } from "./server";
2
- export { Server };
3
- export { ModernServer } from "./server/modern-server";
4
- export { createProxyHandler } from "./libs/proxy";
2
+ import { ModernServer } from "./server/modern-server";
3
+ import { createProxyHandler } from "./libs/proxy";
5
4
  export * from "./type";
6
5
  export * from "./constants";
7
- export default (options => {
6
+ var src_default = (options) => {
8
7
  if (options == null) {
9
- throw new Error('can not start mserver without options');
8
+ throw new Error("can not start mserver without options");
10
9
  }
11
-
12
10
  const server = new Server(options);
13
11
  return server.init();
14
- });
12
+ };
13
+ export {
14
+ ModernServer,
15
+ Server,
16
+ createProxyHandler,
17
+ src_default as default
18
+ };
@@ -1,238 +1,160 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
- import { URL } from 'url';
4
- import qs from 'querystring';
5
- import { Buffer } from 'buffer';
6
- import createEtag from 'etag';
7
- import fresh from 'fresh';
1
+ import { URL } from "url";
2
+ import qs from "querystring";
3
+ import { Buffer } from "buffer";
4
+ import createEtag from "etag";
5
+ import fresh from "fresh";
8
6
  import { headersWithoutCookie } from "../../utils";
9
- export class ModernServerContext {
10
- /**
11
- * http request
12
- */
13
-
14
- /**
15
- * http response
16
- */
17
-
18
- /**
19
- * url params
20
- */
21
- get logger() {
22
- return this.req.logger;
23
- }
24
-
25
- get metrics() {
26
- return this.req.metrics;
27
- }
28
-
7
+ class ModernServerContext {
29
8
  constructor(req, res, options) {
30
- _defineProperty(this, "req", void 0);
31
-
32
- _defineProperty(this, "res", void 0);
33
-
34
- _defineProperty(this, "params", {});
35
-
36
- _defineProperty(this, "serverData", void 0);
37
-
38
- _defineProperty(this, "options", {});
39
-
9
+ this.params = {};
10
+ this.options = {};
40
11
  this.req = req;
41
12
  this.res = res;
42
13
  this.options = options || {};
43
14
  this.serverData = {};
44
15
  this.bind();
45
16
  }
46
-
17
+ get logger() {
18
+ return this.req.logger;
19
+ }
20
+ get metrics() {
21
+ return this.req.metrics;
22
+ }
47
23
  bind() {
48
- const {
49
- req,
50
- res
51
- } = this;
52
-
53
- req.get = key => this.getReqHeader(key);
54
-
24
+ const { req, res } = this;
25
+ req.get = (key) => this.getReqHeader(key);
55
26
  res.set = (key, value) => this.res.setHeader(key, value);
56
-
57
- res.send = body => {
27
+ res.send = (body) => {
58
28
  this.send(body);
59
29
  };
60
- } // compat express res.send, only support etag now
61
-
62
-
30
+ }
63
31
  send(body) {
64
32
  try {
65
- const generateETag = !this.res.getHeader('ETag') && this.options.etag;
66
-
67
- if (body !== undefined && generateETag) {
68
- const encoding = typeof body === 'string' ? 'utf-8' : undefined;
33
+ const generateETag = !this.res.getHeader("ETag") && this.options.etag;
34
+ if (body !== void 0 && generateETag) {
35
+ const encoding = typeof body === "string" ? "utf-8" : void 0;
69
36
  const buf = !Buffer.isBuffer(body) ? Buffer.from(body, encoding) : body;
70
- const etag = createEtag(buf, {
71
- weak: true
72
- });
73
-
37
+ const etag = createEtag(buf, { weak: true });
74
38
  if (etag) {
75
- this.res.setHeader('ETag', etag);
39
+ this.res.setHeader("ETag", etag);
76
40
  }
77
41
  }
78
-
79
42
  if (this.fresh) {
80
43
  this.status = 304;
81
44
  }
82
45
  } catch (e) {
83
46
  this.logger.error(e.message);
84
47
  }
85
-
86
48
  this.res.end(body);
87
49
  }
88
-
89
50
  setParams(params) {
90
51
  this.params = params;
91
52
  }
92
-
93
53
  setServerData(key, value) {
94
54
  this.serverData[key] = value;
95
55
  }
96
-
97
56
  getReqHeader(key) {
98
- const {
99
- req
100
- } = this;
57
+ const { req } = this;
101
58
  const field = key.toLowerCase();
102
-
103
59
  switch (field) {
104
- case 'referer':
105
- case 'referrer':
106
- return req.headers.referrer || req.headers.referer || '';
107
-
60
+ case "referer":
61
+ case "referrer":
62
+ return req.headers.referrer || req.headers.referer || "";
108
63
  default:
109
- return req.headers[field] || '';
64
+ return req.headers[field] || "";
110
65
  }
111
66
  }
112
-
113
67
  get fresh() {
114
- const {
115
- status,
116
- res,
117
- method
118
- } = this; // GET or HEAD for weak freshness validation only
119
-
120
- if ('GET' !== method && 'HEAD' !== method) {
68
+ const { status, res, method } = this;
69
+ if ("GET" !== method && "HEAD" !== method) {
121
70
  return false;
122
71
  }
123
-
124
72
  if (status >= 200 && status < 300 || 304 === status) {
125
73
  return fresh(this.headers, {
126
- etag: res.getHeader('ETag'),
127
- 'last-modified': res.getHeader('Last-Modified')
74
+ etag: res.getHeader("ETag"),
75
+ "last-modified": res.getHeader("Last-Modified")
128
76
  });
129
77
  }
130
-
131
78
  return false;
132
79
  }
133
- /* request property */
134
-
135
-
136
80
  get headers() {
137
81
  return this.req.headers;
138
82
  }
139
-
140
83
  get method() {
141
84
  return this.req.method;
142
85
  }
143
-
144
86
  get url() {
145
- return this.req.url || '';
87
+ return this.req.url || "";
146
88
  }
147
-
148
89
  set url(val) {
149
90
  this.req.url = val;
150
91
  }
151
-
152
92
  get host() {
153
- let host = this.getReqHeader('X-Forwarded-Host');
154
-
93
+ let host = this.getReqHeader("X-Forwarded-Host");
155
94
  if (!host) {
156
- host = this.getReqHeader('Host');
95
+ host = this.getReqHeader("Host");
157
96
  }
158
-
159
- return host.split(/\s*,\s*/, 1)[0] || '';
97
+ return host.split(/\s*,\s*/, 1)[0] || "";
160
98
  }
161
-
162
99
  get protocol() {
163
100
  if (this.req.socket.encrypted) {
164
- return 'https';
101
+ return "https";
165
102
  }
166
-
167
- const proto = this.getReqHeader('X-Forwarded-Proto');
168
- return proto ? proto.split(/\s*,\s*/, 1)[0] : 'http';
103
+ const proto = this.getReqHeader("X-Forwarded-Proto");
104
+ return proto ? proto.split(/\s*,\s*/, 1)[0] : "http";
169
105
  }
170
-
171
106
  get origin() {
172
107
  return `${this.protocol}://${this.host}`;
173
108
  }
174
-
175
109
  get href() {
176
110
  return this.origin + this.url;
177
111
  }
178
-
179
112
  get parsedURL() {
180
113
  const url = new URL(this.req.url, this.origin);
181
114
  return url;
182
115
  }
183
-
184
116
  get path() {
185
117
  return this.parsedURL.pathname;
186
118
  }
187
-
188
119
  set path(p) {
189
- const url = new URL(this.req.url, this.origin); // this should never happened
190
-
120
+ const url = new URL(this.req.url, this.origin);
191
121
  if (!url || !p) {
192
122
  return;
193
123
  }
194
-
195
124
  if (url.pathname === p) {
196
125
  return;
197
126
  }
198
-
199
127
  url.pathname = p;
200
128
  this.url = url.toString();
201
129
  }
202
-
203
130
  get querystring() {
204
131
  if (!this.req) {
205
- return '';
132
+ return "";
206
133
  }
207
-
208
- return this.parsedURL.search.replace(/^\?/, '') || '';
134
+ return this.parsedURL.search.replace(/^\?/, "") || "";
209
135
  }
210
-
211
136
  get query() {
212
137
  const str = this.querystring;
213
138
  return qs.parse(str);
214
139
  }
215
- /* response property */
216
-
217
-
218
140
  get status() {
219
141
  return this.res.statusCode;
220
142
  }
221
-
222
143
  set status(statusCode) {
223
144
  this.res.statusCode = statusCode;
224
145
  }
225
- /**
226
- * 判断链接是否已经关闭
227
- */
228
-
229
-
230
146
  resHasHandled() {
231
147
  return this.res.writableEnded;
232
148
  }
233
-
234
- error(dig, e = '') {
235
- this.logger.error(`Web Server Error - ${dig}, error = %s, req.url = %s, req.headers = %o`, e instanceof Error ? e.stack || e.message : e, this.path, headersWithoutCookie(this.headers));
236
- }
237
-
238
- }
149
+ error(dig, e = "") {
150
+ this.logger.error(
151
+ `Web Server Error - ${dig}, error = %s, req.url = %s, req.headers = %o`,
152
+ e instanceof Error ? e.stack || e.message : e,
153
+ this.path,
154
+ headersWithoutCookie(this.headers)
155
+ );
156
+ }
157
+ }
158
+ export {
159
+ ModernServerContext
160
+ };