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