@modern-js/prod-server 1.21.6 → 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 +274 -13
  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
@@ -1,224 +1,208 @@
1
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
-
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
-
5
- 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; }
6
-
7
- import path from 'path';
8
- import fs from 'fs';
9
- import { Logger, SHARED_DIR, OUTPUT_CONFIG_FILE, dotenv, dotenvExpand } from '@modern-js/utils';
10
- import { serverManager, AppContext, ConfigContext, loadPlugins } from '@modern-js/server-core';
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __async = (__this, __arguments, generator) => {
21
+ return new Promise((resolve, reject) => {
22
+ var fulfilled = (value) => {
23
+ try {
24
+ step(generator.next(value));
25
+ } catch (e) {
26
+ reject(e);
27
+ }
28
+ };
29
+ var rejected = (value) => {
30
+ try {
31
+ step(generator.throw(value));
32
+ } catch (e) {
33
+ reject(e);
34
+ }
35
+ };
36
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
37
+ step((generator = generator.apply(__this, __arguments)).next());
38
+ });
39
+ };
40
+ import path from "path";
41
+ import fs from "fs";
42
+ import {
43
+ Logger,
44
+ SHARED_DIR,
45
+ OUTPUT_CONFIG_FILE,
46
+ dotenv,
47
+ dotenvExpand,
48
+ INTERNAL_SERVER_PLUGINS
49
+ } from "@modern-js/utils";
50
+ import {
51
+ serverManager,
52
+ AppContext,
53
+ ConfigContext,
54
+ loadPlugins
55
+ } from "@modern-js/server-core";
11
56
  import { metrics as defaultMetrics } from "../libs/metrics";
12
- import { loadConfig, getServerConfigPath, requireConfig } from "../libs/loadConfig";
57
+ import {
58
+ loadConfig,
59
+ getServerConfigPath,
60
+ requireConfig
61
+ } from "../libs/loadConfig";
13
62
  import { debug } from "../utils";
14
63
  import { createProdServer } from "./modern-server-split";
15
- export class Server {
64
+ class Server {
16
65
  constructor(options) {
17
- _defineProperty(this, "options", void 0);
18
-
19
- _defineProperty(this, "serverImpl", createProdServer);
20
-
21
- _defineProperty(this, "server", void 0);
22
-
23
- _defineProperty(this, "app", void 0);
24
-
25
- _defineProperty(this, "runner", void 0);
26
-
27
- _defineProperty(this, "serverConfig", void 0);
28
-
66
+ this.serverImpl = createProdServer;
29
67
  options.logger = options.logger || new Logger({
30
- level: 'warn'
68
+ level: "warn"
31
69
  });
32
70
  options.metrics = options.metrics || defaultMetrics;
33
71
  this.options = options;
34
72
  this.serverConfig = {};
35
73
  }
36
- /**
37
- * 初始化顺序
38
- * - 读取 .env.{process.env.MODERN_ENV} 文件,加载环境变量
39
- * - 获取 server runtime config
40
- * - 设置 context
41
- * - 创建 hooksRunner
42
- * - 合并插件,内置插件和 serverConfig 中配置的插件
43
- * - 执行 config hook
44
- * - 获取最终的配置
45
- * - 设置配置到 context
46
- * - 初始化 server
47
- * - 执行 prepare hook
48
- * - 执行 server init
49
- */
50
-
51
-
52
- async init() {
53
- const {
54
- options
55
- } = this;
56
- this.loadServerEnv(options);
57
- this.initServerConfig(options);
58
- await this.injectContext(this.runner, options); // initialize server runner
59
-
60
- this.runner = await this.createHookRunner(); // init config and execute config hook
61
-
62
- await this.initConfig(this.runner, options);
63
- await this.injectContext(this.runner, options); // initialize server
64
-
65
- this.server = this.serverImpl(options);
66
- await this.runPrepareHook(this.runner); // create http-server
67
-
68
- this.app = await this.server.createHTTPServer(this.getRequestHandler()); // runner can only be used after server init
69
-
70
- await this.server.onInit(this.runner, this.app);
71
- return this;
74
+ init() {
75
+ return __async(this, null, function* () {
76
+ const { options } = this;
77
+ this.loadServerEnv(options);
78
+ this.initServerConfig(options);
79
+ yield this.injectContext(this.runner, options);
80
+ this.runner = yield this.createHookRunner();
81
+ yield this.initConfig(this.runner, options);
82
+ yield this.injectContext(this.runner, options);
83
+ this.server = this.serverImpl(options);
84
+ yield this.runPrepareHook(this.runner);
85
+ this.app = yield this.server.createHTTPServer(this.getRequestHandler());
86
+ yield this.server.onInit(this.runner, this.app);
87
+ return this;
88
+ });
72
89
  }
73
- /**
74
- * Execute config hooks
75
- * @param runner
76
- * @param options
77
- */
78
-
79
-
80
90
  runConfigHook(runner, serverConfig) {
81
91
  const newServerConfig = runner.config(serverConfig || {});
82
92
  return newServerConfig;
83
93
  }
84
-
85
- async runPrepareHook(runner) {
86
- runner.prepare();
94
+ runPrepareHook(runner) {
95
+ return __async(this, null, function* () {
96
+ runner.prepare();
97
+ });
87
98
  }
88
-
89
99
  initServerConfig(options) {
90
- var _options$config$outpu;
91
-
92
- const {
93
- pwd,
100
+ const { pwd, serverConfigFile } = options;
101
+ const distDirectory = path.join(pwd, options.config.output.path || "dist");
102
+ const serverConfigPath = getServerConfigPath(
103
+ distDirectory,
94
104
  serverConfigFile
95
- } = options;
96
- const distDirectory = path.join(pwd, ((_options$config$outpu = options.config.output) === null || _options$config$outpu === void 0 ? void 0 : _options$config$outpu.path) || 'dist');
97
- const serverConfigPath = getServerConfigPath(distDirectory, serverConfigFile);
105
+ );
98
106
  const serverConfig = requireConfig(serverConfigPath);
99
107
  this.serverConfig = serverConfig;
100
108
  }
101
- /**
102
- *
103
- * merge cliConfig and serverConfig
104
- */
105
-
106
-
107
- async initConfig(runner, options) {
108
- var _config$output;
109
-
110
- const {
111
- pwd,
112
- config
113
- } = options;
114
- const {
115
- serverConfig
116
- } = this;
117
- const finalServerConfig = this.runConfigHook(runner, serverConfig);
118
- const resolvedConfigPath = path.join(pwd, (config === null || config === void 0 ? void 0 : (_config$output = config.output) === null || _config$output === void 0 ? void 0 : _config$output.path) || 'dist', OUTPUT_CONFIG_FILE);
119
- options.config = loadConfig({
120
- cliConfig: config,
121
- serverConfig: finalServerConfig,
122
- resolvedConfigPath
109
+ initConfig(runner, options) {
110
+ return __async(this, null, function* () {
111
+ const { pwd, config } = options;
112
+ const { serverConfig } = this;
113
+ const finalServerConfig = this.runConfigHook(runner, serverConfig);
114
+ const resolvedConfigPath = path.join(
115
+ pwd,
116
+ config.output.path || "dist",
117
+ OUTPUT_CONFIG_FILE
118
+ );
119
+ options.config = loadConfig({
120
+ cliConfig: config,
121
+ serverConfig: finalServerConfig,
122
+ resolvedConfigPath
123
+ });
123
124
  });
124
125
  }
125
-
126
- async close() {
127
- this.app.close();
126
+ close() {
127
+ return __async(this, null, function* () {
128
+ this.app.close();
129
+ });
128
130
  }
129
-
130
131
  listen(options, listener) {
131
132
  const callback = () => {
132
- listener === null || listener === void 0 ? void 0 : listener();
133
+ listener == null ? void 0 : listener();
133
134
  };
134
-
135
- if (typeof options === 'object') {
135
+ if (typeof options === "object") {
136
136
  this.app.listen(options, callback);
137
137
  } else {
138
138
  this.app.listen(process.env.PORT || options || 8080, callback);
139
139
  }
140
140
  }
141
-
142
141
  getRequestHandler() {
143
142
  return (req, res, next) => {
144
143
  const requestHandler = this.server.getRequestHandler();
145
144
  return requestHandler(req, res, next);
146
145
  };
147
146
  }
148
-
149
- async createHookRunner() {
150
- // clear server manager every create time
151
- serverManager.clear();
152
- const {
153
- options
154
- } = this; // TODO: 确认下这里是不是可以不从 options 中取插件,而是从 config 中取和过滤
155
-
156
- const {
157
- plugins = [],
158
- pwd,
159
- config
160
- } = options;
161
- const serverPlugins = this.serverConfig.plugins || []; // server app context for serve plugin
162
-
163
- const loadedPlugins = loadPlugins(plugins.concat(serverPlugins), pwd);
164
- debug('plugins', config.plugins, loadedPlugins);
165
- loadedPlugins.forEach(p => {
166
- serverManager.usePlugin(p);
167
- }); // create runner
168
-
169
- const hooksRunner = await serverManager.init();
170
- return hooksRunner;
147
+ render(req, res, url) {
148
+ return __async(this, null, function* () {
149
+ return this.server.render(req, res, url);
150
+ });
171
151
  }
172
-
173
- async injectContext(runner, options) {
174
- var _config$output2;
175
-
176
- const appContext = this.initAppContext();
177
- const {
178
- config,
179
- pwd
180
- } = options;
181
- ConfigContext.set(config);
182
- AppContext.set(_objectSpread(_objectSpread({}, appContext), {}, {
183
- distDirectory: path.join(pwd, ((_config$output2 = config.output) === null || _config$output2 === void 0 ? void 0 : _config$output2.path) || 'dist')
184
- }));
152
+ createHookRunner() {
153
+ return __async(this, null, function* () {
154
+ serverManager.clear();
155
+ const { options } = this;
156
+ const {
157
+ internalPlugins = INTERNAL_SERVER_PLUGINS,
158
+ pwd,
159
+ plugins = []
160
+ } = options;
161
+ const serverPlugins = this.serverConfig.plugins || [];
162
+ const loadedPlugins = loadPlugins(pwd, [...serverPlugins, ...plugins], {
163
+ internalPlugins
164
+ });
165
+ debug("plugins", loadedPlugins);
166
+ loadedPlugins.forEach((p) => {
167
+ serverManager.usePlugin(p);
168
+ });
169
+ const hooksRunner = yield serverManager.init();
170
+ return hooksRunner;
171
+ });
172
+ }
173
+ injectContext(runner, options) {
174
+ return __async(this, null, function* () {
175
+ const appContext = this.initAppContext();
176
+ const { config, pwd } = options;
177
+ ConfigContext.set(config);
178
+ AppContext.set(__spreadProps(__spreadValues({}, appContext), {
179
+ distDirectory: path.join(pwd, config.output.path || "dist")
180
+ }));
181
+ });
185
182
  }
186
-
187
183
  initAppContext() {
188
- var _config$output3;
189
-
190
- const {
191
- options
192
- } = this;
193
- const {
194
- pwd: appDirectory,
195
- plugins = [],
196
- config
197
- } = options;
198
- const serverPlugins = plugins.map(p => ({
184
+ const { options } = this;
185
+ const { pwd: appDirectory, plugins = [], config } = options;
186
+ const serverPlugins = plugins.map((p) => ({
199
187
  server: p
200
188
  }));
201
189
  return {
202
190
  appDirectory,
203
- distDirectory: path.join(appDirectory, ((_config$output3 = config.output) === null || _config$output3 === void 0 ? void 0 : _config$output3.path) || 'dist'),
191
+ distDirectory: path.join(appDirectory, config.output.path || "dist"),
204
192
  sharedDirectory: path.resolve(appDirectory, SHARED_DIR),
205
193
  plugins: serverPlugins
206
194
  };
207
195
  }
208
-
209
196
  loadServerEnv(options) {
210
- const {
211
- pwd: appDirectory
212
- } = options;
197
+ const { pwd: appDirectory } = options;
213
198
  const serverEnv = process.env.MODERN_ENV;
214
199
  const serverEnvPath = path.resolve(appDirectory, `.env.${serverEnv}`);
215
-
216
200
  if (serverEnv && fs.existsSync(serverEnvPath) && !fs.statSync(serverEnvPath).isDirectory()) {
217
- const envConfig = dotenv.config({
218
- path: serverEnvPath
219
- });
201
+ const envConfig = dotenv.config({ path: serverEnvPath });
220
202
  dotenvExpand(envConfig);
221
203
  }
222
204
  }
223
-
224
- }
205
+ }
206
+ export {
207
+ Server
208
+ };
@@ -1,83 +1,64 @@
1
- import { RUN_MODE } from "../constants";
1
+ var __getProtoOf = Object.getPrototypeOf;
2
+ var __reflectGet = Reflect.get;
3
+ var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
4
+ var __async = (__this, __arguments, generator) => {
5
+ return new Promise((resolve, reject) => {
6
+ var fulfilled = (value) => {
7
+ try {
8
+ step(generator.next(value));
9
+ } catch (e) {
10
+ reject(e);
11
+ }
12
+ };
13
+ var rejected = (value) => {
14
+ try {
15
+ step(generator.throw(value));
16
+ } catch (e) {
17
+ reject(e);
18
+ }
19
+ };
20
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
21
+ step((generator = generator.apply(__this, __arguments)).next());
22
+ });
23
+ };
2
24
  import { ModernServer } from "./modern-server";
3
-
4
25
  class ModernSSRServer extends ModernServer {
5
26
  prepareAPIHandler(_) {
6
27
  return null;
7
28
  }
8
-
9
- filterRoutes(routes) {
10
- return routes.filter(route => !route.isApi);
11
- }
12
-
13
- async setupBeforeProdMiddleware() {
14
- if (this.runMode === RUN_MODE.FULL) {
15
- await super.setupBeforeProdMiddleware();
16
- }
17
- }
18
-
19
- async emitRouteHook(_, _input) {
20
- if (this.runMode === RUN_MODE.FULL) {
21
- await super.emitRouteHook(_, _input);
22
- }
29
+ handleAPI(context) {
30
+ return __async(this, null, function* () {
31
+ return this.render404(context);
32
+ });
23
33
  }
24
-
25
34
  }
26
-
27
35
  class ModernAPIServer extends ModernServer {
28
36
  prepareWebHandler(_) {
29
37
  return null;
30
38
  }
31
-
32
39
  filterRoutes(routes) {
33
- return routes.filter(route => route.isApi);
40
+ return routes.filter((route) => route.isApi);
34
41
  }
35
-
36
- async setupBeforeProdMiddleware() {
37
- if (this.runMode === RUN_MODE.FULL) {
38
- await super.setupBeforeProdMiddleware();
39
- }
40
- }
41
-
42
- async emitRouteHook(_, _input) {// empty
43
- }
44
-
45
42
  }
46
-
47
43
  class ModernWebServer extends ModernServer {
48
- async warmupSSRBundle() {
49
- return null;
44
+ warmupSSRBundle() {
45
+ return __async(this, null, function* () {
46
+ return null;
47
+ });
50
48
  }
51
-
52
- async handleAPI(context) {
53
- const {
54
- proxyTarget
55
- } = this;
56
-
57
- if (proxyTarget !== null && proxyTarget !== void 0 && proxyTarget.api) {
58
- return this.proxy();
59
- } else {
49
+ handleAPI(context) {
50
+ return __async(this, null, function* () {
60
51
  return this.render404(context);
61
- }
52
+ });
62
53
  }
63
-
64
- async handleWeb(context, route) {
65
- const {
66
- proxyTarget
67
- } = this;
68
-
69
- if (route.isSSR && proxyTarget !== null && proxyTarget !== void 0 && proxyTarget.ssr) {
70
- return this.proxy();
71
- } else {
72
- // if no proxyTarget but access web server, degradation to csr
54
+ handleWeb(context, route) {
55
+ return __async(this, null, function* () {
73
56
  route.isSSR = false;
74
- return super.handleWeb(context, route);
75
- }
57
+ return __superGet(ModernWebServer.prototype, this, "handleWeb").call(this, context, route);
58
+ });
76
59
  }
77
-
78
60
  }
79
-
80
- export const createProdServer = options => {
61
+ const createProdServer = (options) => {
81
62
  if (options.apiOnly) {
82
63
  return new ModernAPIServer(options);
83
64
  } else if (options.ssrOnly) {
@@ -87,4 +68,7 @@ export const createProdServer = options => {
87
68
  } else {
88
69
  return new ModernServer(options);
89
70
  }
90
- };
71
+ };
72
+ export {
73
+ createProdServer
74
+ };