@modern-js/prod-server 2.47.0 → 2.47.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +18 -92
  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 -109
  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 -83
  33. package/dist/cjs/libs/render/ssrCache/manager.js +0 -106
  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 -175
  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 -151
  73. package/dist/esm/libs/render/ssrCache/manager.js +0 -170
  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 -75
  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 -59
  113. package/dist/esm-node/libs/render/ssrCache/manager.js +0 -82
  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,229 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var server_exports = {};
30
- __export(server_exports, {
31
- Server: () => Server
32
- });
33
- module.exports = __toCommonJS(server_exports);
34
- var import_define_property = require("@swc/helpers/_/_define_property");
35
- var import_path = __toESM(require("path"));
36
- var import_utils = require("@modern-js/utils");
37
- var import_server_core = require("@modern-js/server-core");
38
- var import_metrics = require("../libs/metrics");
39
- var import_loadConfig = require("../libs/loadConfig");
40
- var import_utils2 = require("../utils");
41
- var import_modernServerSplit = require("./modernServerSplit");
42
- class Server {
43
- /**
44
- * 初始化顺序
45
- * - 读取 .env.{process.env.MODERN_ENV} 文件,加载环境变量
46
- * - 获取 server runtime config
47
- * - 设置 context
48
- * - 创建 hooksRunner
49
- * - 合并插件,内置插件和 serverConfig 中配置的插件
50
- * - 执行 config hook
51
- * - 获取最终的配置
52
- * - 设置配置到 context
53
- * - 初始化 server
54
- * - 执行 prepare hook
55
- * - 执行 server init
56
- */
57
- async init({ disableHttpServer = false } = {
58
- disableHttpServer: false
59
- }) {
60
- const { options } = this;
61
- await this.loadServerEnv(options);
62
- this.initServerConfig(options);
63
- await this.injectContext(this.runner, options);
64
- this.runner = await this.createHookRunner();
65
- await this.initConfig(this.runner, options);
66
- await this.injectContext(this.runner, options);
67
- this.server = this.serverImpl(options);
68
- await this.runPrepareHook(this.runner);
69
- if (!disableHttpServer) {
70
- this.app = await this.server.createHTTPServer(this.getRequestHandler());
71
- }
72
- {
73
- const result = await this.runner.beforeServerInit({
74
- app: this.app,
75
- server: this.server
76
- });
77
- ({ app: this.app = this.app, server: this.server } = result);
78
- }
79
- await this.server.onInit(this.runner, this.app);
80
- {
81
- const result = await this.runner.afterServerInit({
82
- app: this.app,
83
- server: this.server
84
- });
85
- ({ app: this.app = this.app, server: this.server } = result);
86
- }
87
- return this;
88
- }
89
- /**
90
- * Execute config hooks
91
- * @param runner
92
- * @param options
93
- */
94
- runConfigHook(runner, serverConfig) {
95
- const newServerConfig = runner.config(serverConfig || {});
96
- return newServerConfig;
97
- }
98
- async runPrepareHook(runner) {
99
- runner.prepare();
100
- }
101
- initServerConfig(options) {
102
- const { pwd, serverConfigFile } = options;
103
- const distDirectory = import_path.default.join(pwd, options.config.output.path || "dist");
104
- const serverConfigPath = (0, import_loadConfig.getServerConfigPath)(distDirectory, serverConfigFile);
105
- const serverConfig = (0, import_loadConfig.requireConfig)(serverConfigPath);
106
- this.serverConfig = serverConfig;
107
- }
108
- /**
109
- *
110
- * merge cliConfig and serverConfig
111
- */
112
- async initConfig(runner, options) {
113
- const { pwd, config } = options;
114
- const { serverConfig } = this;
115
- const finalServerConfig = this.runConfigHook(runner, serverConfig);
116
- const resolvedConfigPath = (0, import_utils.ensureAbsolutePath)(pwd, import_path.default.join(config.output.path || "dist", import_utils.OUTPUT_CONFIG_FILE));
117
- options.config = (0, import_loadConfig.loadConfig)({
118
- cliConfig: config,
119
- serverConfig: finalServerConfig,
120
- resolvedConfigPath
121
- });
122
- }
123
- async close() {
124
- var _this_server_close, _this_server;
125
- await ((_this_server_close = (_this_server = this.server).close) === null || _this_server_close === void 0 ? void 0 : _this_server_close.call(_this_server));
126
- this.app.close();
127
- }
128
- listen(options, listener) {
129
- const callback = () => {
130
- listener === null || listener === void 0 ? void 0 : listener();
131
- };
132
- if (typeof options === "object") {
133
- if (process.env.PORT) {
134
- Object.assign(options, {
135
- port: process.env.PORT
136
- });
137
- }
138
- this.app.listen(options, callback);
139
- } else {
140
- this.app.listen(process.env.PORT || options || 8080, callback);
141
- }
142
- }
143
- getRequestHandler() {
144
- return (req, res, next) => {
145
- const requestHandler = this.server.getRequestHandler();
146
- return requestHandler(req, res, next);
147
- };
148
- }
149
- async render(req, res, url) {
150
- return this.server.render(req, res, url);
151
- }
152
- async createHookRunner() {
153
- import_server_core.serverManager.clear();
154
- const { options } = this;
155
- const { internalPlugins = import_utils.INTERNAL_SERVER_PLUGINS, pwd, plugins = [] } = options;
156
- const serverPlugins = this.serverConfig.plugins || [];
157
- const loadedPlugins = (0, import_server_core.loadPlugins)(pwd, [
158
- ...serverPlugins,
159
- ...plugins
160
- ], {
161
- internalPlugins
162
- });
163
- (0, import_utils2.debug)("plugins", loadedPlugins);
164
- loadedPlugins.forEach((p) => {
165
- import_server_core.serverManager.usePlugin(p);
166
- });
167
- const hooksRunner = await import_server_core.serverManager.init();
168
- return hooksRunner;
169
- }
170
- async injectContext(runner, options) {
171
- const appContext = this.initAppContext();
172
- const { config, pwd } = options;
173
- import_server_core.ConfigContext.set(config);
174
- import_server_core.AppContext.set({
175
- ...appContext,
176
- distDirectory: import_path.default.join(pwd, config.output.path || "dist")
177
- });
178
- }
179
- initAppContext() {
180
- const { options } = this;
181
- const { pwd: appDirectory, plugins = [], config, appContext } = options;
182
- const serverPlugins = plugins.map((p) => ({
183
- server: p
184
- }));
185
- return {
186
- appDirectory,
187
- apiDirectory: appContext === null || appContext === void 0 ? void 0 : appContext.apiDirectory,
188
- lambdaDirectory: appContext === null || appContext === void 0 ? void 0 : appContext.lambdaDirectory,
189
- sharedDirectory: (appContext === null || appContext === void 0 ? void 0 : appContext.sharedDirectory) || import_path.default.resolve(appDirectory, import_utils.SHARED_DIR),
190
- distDirectory: import_path.default.join(appDirectory, config.output.path || "dist"),
191
- plugins: serverPlugins
192
- };
193
- }
194
- async loadServerEnv(options) {
195
- const { pwd: appDirectory } = options;
196
- const serverEnv = process.env.MODERN_ENV;
197
- const defaultEnvPath = import_path.default.resolve(appDirectory, `.env`);
198
- const serverEnvPath = import_path.default.resolve(appDirectory, `.env.${serverEnv}`);
199
- for (const envPath of [
200
- serverEnvPath,
201
- defaultEnvPath
202
- ]) {
203
- if (await import_utils.fs.pathExists(envPath) && !(await import_utils.fs.stat(envPath)).isDirectory()) {
204
- const envConfig = import_utils.dotenv.config({
205
- path: envPath
206
- });
207
- (0, import_utils.dotenvExpand)(envConfig);
208
- }
209
- }
210
- }
211
- constructor(options) {
212
- (0, import_define_property._)(this, "options", void 0);
213
- (0, import_define_property._)(this, "serverImpl", import_modernServerSplit.createProdServer);
214
- (0, import_define_property._)(this, "server", void 0);
215
- (0, import_define_property._)(this, "app", void 0);
216
- (0, import_define_property._)(this, "runner", void 0);
217
- (0, import_define_property._)(this, "serverConfig", void 0);
218
- options.logger = options.logger || (0, import_utils.createLogger)({
219
- level: "warn"
220
- });
221
- options.metrics = options.metrics || import_metrics.metrics;
222
- this.options = options;
223
- this.serverConfig = {};
224
- }
225
- }
226
- // Annotate the CommonJS export names for ESM import in node:
227
- 0 && (module.exports = {
228
- Server
229
- });