@modern-js/server 0.0.0-nightly-20231214170701 → 0.0.0-nightly-20231215170639

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.
@@ -6,7 +6,8 @@ import { _ as _define_property } from "@swc/helpers/_/_define_property";
6
6
  import { _ as _get } from "@swc/helpers/_/_get";
7
7
  import { _ as _get_prototype_of } from "@swc/helpers/_/_get_prototype_of";
8
8
  import { _ as _inherits } from "@swc/helpers/_/_inherits";
9
- import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
9
+ import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
10
+ import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
10
11
  import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
11
12
  import { _ as _create_super } from "@swc/helpers/_/_create_super";
12
13
  import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
@@ -14,14 +15,38 @@ import { createServer } from "http";
14
15
  import path from "path";
15
16
  import { createServer as createHttpsServer } from "https";
16
17
  import { API_DIR, SERVER_BUNDLE_DIRECTORY, SERVER_DIR, SHARED_DIR, LOADABLE_STATS_FILE } from "@modern-js/utils";
17
- import { createProxyHandler, ModernServer, AGGRED_DIR, createRenderHandler } from "@modern-js/prod-server";
18
+ import { ModernServer, AGGRED_DIR, createRenderHandler } from "@modern-js/prod-server";
18
19
  import { merge as deepMerge } from "@modern-js/utils/lodash";
19
20
  import { getDefaultDevOptions } from "../constants";
20
21
  import { createMockHandler } from "../dev-tools/mock";
21
22
  import { enableRegister } from "../dev-tools/register";
22
23
  import Watcher, { mergeWatchOptions } from "../dev-tools/watcher";
23
- import DevMiddleware from "../dev-tools/dev-middleware";
24
24
  import { workerSSRRender } from "./workerSSRRender";
25
+ var transformToRsbuildServerOptions = function(dev) {
26
+ var _dev_devMiddleware, _dev_before, _dev_after;
27
+ var rsbuildOptions = {
28
+ hmr: Boolean(dev.hot),
29
+ client: dev.client,
30
+ writeToDisk: (_dev_devMiddleware = dev.devMiddleware) === null || _dev_devMiddleware === void 0 ? void 0 : _dev_devMiddleware.writeToDisk,
31
+ compress: dev.compress,
32
+ headers: dev.headers,
33
+ historyApiFallback: dev.historyApiFallback,
34
+ proxy: dev.proxy,
35
+ publicDir: false
36
+ };
37
+ if (((_dev_before = dev.before) === null || _dev_before === void 0 ? void 0 : _dev_before.length) || ((_dev_after = dev.after) === null || _dev_after === void 0 ? void 0 : _dev_after.length)) {
38
+ rsbuildOptions.setupMiddlewares = _to_consumable_array(dev.setupMiddlewares || []).concat([
39
+ function(middlewares) {
40
+ var _middlewares, _middlewares1;
41
+ (_middlewares = middlewares).unshift.apply(_middlewares, _to_consumable_array(dev.before || []));
42
+ (_middlewares1 = middlewares).push.apply(_middlewares1, _to_consumable_array(dev.after || []));
43
+ }
44
+ ]);
45
+ } else if (dev.setupMiddlewares) {
46
+ rsbuildOptions.setupMiddlewares = dev.setupMiddlewares;
47
+ }
48
+ return rsbuildOptions;
49
+ };
25
50
  var ModernDevServer = /* @__PURE__ */ function(ModernServer2) {
26
51
  "use strict";
27
52
  _inherits(ModernDevServer2, ModernServer2);
@@ -34,16 +59,16 @@ var ModernDevServer = /* @__PURE__ */ function(ModernServer2) {
34
59
  _define_property(_assert_this_initialized(_this), "dev", void 0);
35
60
  _define_property(_assert_this_initialized(_this), "useWorkerSSR", void 0);
36
61
  _define_property(_assert_this_initialized(_this), "appContext", void 0);
37
- _define_property(_assert_this_initialized(_this), "devMiddleware", void 0);
62
+ _define_property(_assert_this_initialized(_this), "getMiddlewares", void 0);
63
+ _define_property(_assert_this_initialized(_this), "rsbuild", void 0);
38
64
  _define_property(_assert_this_initialized(_this), "watcher", void 0);
65
+ _define_property(_assert_this_initialized(_this), "closeCb", []);
39
66
  _this.appContext = options.appContext;
40
67
  _this.workDir = _this.pwd;
41
68
  _this.useWorkerSSR = Boolean(options.useWorkerSSR);
42
69
  _this.dev = _this.getDevOptions(options);
43
- _this.devMiddleware = new DevMiddleware({
44
- dev: _this.dev,
45
- devMiddleware: options.devMiddleware
46
- });
70
+ _this.getMiddlewares = options.getMiddlewares;
71
+ _this.rsbuild = options.rsbuild;
47
72
  enableRegister(_this.pwd, _this.conf);
48
73
  return _this;
49
74
  }
@@ -68,41 +93,6 @@ var ModernDevServer = /* @__PURE__ */ function(ModernServer2) {
68
93
  });
69
94
  }
70
95
  },
71
- {
72
- key: "applySetupMiddlewares",
73
- value: function applySetupMiddlewares() {
74
- var _this = this;
75
- var setupMiddlewares = this.dev.setupMiddlewares || [];
76
- var serverOptions = {
77
- sockWrite: function(type, data) {
78
- return _this.devMiddleware.sockWrite(type, data);
79
- }
80
- };
81
- var befores = [];
82
- var afters = [];
83
- setupMiddlewares.forEach(function(handler) {
84
- var _befores, _afters;
85
- handler({
86
- unshift: function() {
87
- for (var _len = arguments.length, handlers = new Array(_len), _key = 0; _key < _len; _key++) {
88
- handlers[_key] = arguments[_key];
89
- }
90
- return (_befores = befores).unshift.apply(_befores, _to_consumable_array(handlers));
91
- },
92
- push: function() {
93
- for (var _len = arguments.length, handlers = new Array(_len), _key = 0; _key < _len; _key++) {
94
- handlers[_key] = arguments[_key];
95
- }
96
- return (_afters = afters).push.apply(_afters, _to_consumable_array(handlers));
97
- }
98
- }, serverOptions);
99
- });
100
- return {
101
- befores,
102
- afters
103
- };
104
- }
105
- },
106
96
  {
107
97
  key: "onInit",
108
98
  value: (
@@ -113,38 +103,60 @@ var ModernDevServer = /* @__PURE__ */ function(ModernServer2) {
113
103
  return _get(_get_prototype_of(ModernDevServer2.prototype), "onInit", _this);
114
104
  };
115
105
  return _async_to_generator(function() {
116
- var dev, _this_applySetupMiddlewares, befores, afters, beforeHandlers, afterHandlers;
106
+ var dev, conf, isUseStreamingSSR, isUseSSRPreload, _ref, rsbuildMiddlewares, close, onUpgrade;
117
107
  return _ts_generator(this, function(_state) {
118
108
  switch (_state.label) {
119
109
  case 0:
120
110
  _this1.runner = runner;
121
- dev = _this1.dev;
122
- _this_applySetupMiddlewares = _this1.applySetupMiddlewares(), befores = _this_applySetupMiddlewares.befores, afters = _this_applySetupMiddlewares.afters;
111
+ dev = _this1.dev, conf = _this1.conf;
112
+ isUseStreamingSSR = function(routes) {
113
+ return routes === null || routes === void 0 ? void 0 : routes.some(function(r) {
114
+ return r.isStream === true;
115
+ });
116
+ };
117
+ isUseSSRPreload = function() {
118
+ var _conf_server = conf.server, ssr = _conf_server.ssr, ssrByEntries = _conf_server.ssrByEntries;
119
+ var checkUsePreload = function(ssr2) {
120
+ return typeof ssr2 === "object" && Boolean(ssr2.preload);
121
+ };
122
+ return checkUsePreload(ssr) || Object.values(ssrByEntries || {}).some(function(ssr2) {
123
+ return checkUsePreload(ssr2);
124
+ });
125
+ };
123
126
  return [
124
127
  4,
125
- _this1.setupBeforeDevMiddleware()
128
+ _this1.getMiddlewares(_object_spread_props(_object_spread({}, transformToRsbuildServerOptions(_this1.dev)), {
129
+ compress: !isUseStreamingSSR(_this1.getRoutes()) && !isUseSSRPreload() && dev.compress,
130
+ htmlFallback: false,
131
+ publicDir: false
132
+ }))
126
133
  ];
127
134
  case 1:
128
- beforeHandlers = _state.sent();
129
- _this1.addMiddlewareHandler(_to_consumable_array(beforeHandlers).concat(_to_consumable_array(befores)));
135
+ _ref = _state.sent(), rsbuildMiddlewares = _ref.middlewares, close = _ref.close, onUpgrade = _ref.onUpgrade;
136
+ app.on("upgrade", onUpgrade);
137
+ _this1.rsbuild.onDevCompileDone(function(param) {
138
+ var stats = param.stats;
139
+ if (stats.toJson({
140
+ all: false
141
+ }).name !== "server") {
142
+ _this1.onRepack({
143
+ routes: _this1.getRoutes()
144
+ });
145
+ }
146
+ });
130
147
  return [
131
148
  4,
132
- _this1.applyDefaultMiddlewares(app)
149
+ _this1.applyDefaultMiddlewares()
133
150
  ];
134
151
  case 2:
135
152
  _state.sent();
136
- return [
137
- 4,
138
- _this1.setupAfterDevMiddleware()
139
- ];
140
- case 3:
141
- afterHandlers = _state.sent();
142
- _this1.addMiddlewareHandler(_to_consumable_array(afters).concat(_to_consumable_array(afterHandlers)));
153
+ _this1.addMiddlewareHandler(rsbuildMiddlewares);
154
+ _this1.closeCb.push(close);
143
155
  return [
144
156
  4,
145
157
  _superprop_get_onInit().call(_this1, runner, app)
146
158
  ];
147
- case 4:
159
+ case 3:
148
160
  _state.sent();
149
161
  if (dev.watch) {
150
162
  _this1.startWatcher();
@@ -175,6 +187,81 @@ var ModernDevServer = /* @__PURE__ */ function(ModernServer2) {
175
187
  }
176
188
  )
177
189
  },
190
+ {
191
+ key: "close",
192
+ value: function close() {
193
+ var _this = this;
194
+ return _async_to_generator(function() {
195
+ var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, cb, err;
196
+ return _ts_generator(this, function(_state) {
197
+ switch (_state.label) {
198
+ case 0:
199
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
200
+ _state.label = 1;
201
+ case 1:
202
+ _state.trys.push([
203
+ 1,
204
+ 6,
205
+ 7,
206
+ 8
207
+ ]);
208
+ _iterator = _this.closeCb[Symbol.iterator]();
209
+ _state.label = 2;
210
+ case 2:
211
+ if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done))
212
+ return [
213
+ 3,
214
+ 5
215
+ ];
216
+ cb = _step.value;
217
+ return [
218
+ 4,
219
+ cb()
220
+ ];
221
+ case 3:
222
+ _state.sent();
223
+ _state.label = 4;
224
+ case 4:
225
+ _iteratorNormalCompletion = true;
226
+ return [
227
+ 3,
228
+ 2
229
+ ];
230
+ case 5:
231
+ return [
232
+ 3,
233
+ 8
234
+ ];
235
+ case 6:
236
+ err = _state.sent();
237
+ _didIteratorError = true;
238
+ _iteratorError = err;
239
+ return [
240
+ 3,
241
+ 8
242
+ ];
243
+ case 7:
244
+ try {
245
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
246
+ _iterator.return();
247
+ }
248
+ } finally {
249
+ if (_didIteratorError) {
250
+ throw _iteratorError;
251
+ }
252
+ }
253
+ return [
254
+ 7
255
+ ];
256
+ case 8:
257
+ return [
258
+ 2
259
+ ];
260
+ }
261
+ });
262
+ })();
263
+ }
264
+ },
178
265
  {
179
266
  key: "getRenderHandler",
180
267
  value: (
@@ -201,133 +288,25 @@ var ModernDevServer = /* @__PURE__ */ function(ModernServer2) {
201
288
  },
202
289
  {
203
290
  key: "applyDefaultMiddlewares",
204
- value: function applyDefaultMiddlewares(app) {
291
+ value: function applyDefaultMiddlewares() {
205
292
  var _this = this;
206
293
  return _async_to_generator(function() {
207
- var pwd, dev, devMiddleware, conf, isUseStreamingSSR, isUseSSRPreload, _ref, compression, _createProxyHandler, handlers, handleUpgrade, _ref1, connectHistoryApiFallback, historyApiFallbackMiddleware;
294
+ var pwd;
208
295
  return _ts_generator(this, function(_state) {
209
- switch (_state.label) {
210
- case 0:
211
- pwd = _this.pwd, dev = _this.dev, devMiddleware = _this.devMiddleware, conf = _this.conf;
212
- isUseStreamingSSR = function(routes) {
213
- return routes === null || routes === void 0 ? void 0 : routes.some(function(r) {
214
- return r.isStream === true;
215
- });
216
- };
217
- isUseSSRPreload = function() {
218
- var _conf_server = conf.server, ssr = _conf_server.ssr, ssrByEntries = _conf_server.ssrByEntries;
219
- var checkUsePreload = function(ssr2) {
220
- return typeof ssr2 === "object" && Boolean(ssr2.preload);
221
- };
222
- return checkUsePreload(ssr) || Object.values(ssrByEntries || {}).some(function(ssr2) {
223
- return checkUsePreload(ssr2);
224
- });
225
- };
226
- if (!(!isUseStreamingSSR(_this.getRoutes()) && !isUseSSRPreload() && dev.compress))
227
- return [
228
- 3,
229
- 2
230
- ];
231
- return [
232
- 4,
233
- import("http-compression")
234
- ];
235
- case 1:
236
- _ref = _state.sent(), compression = _ref.default;
237
- _this.addHandler(function(ctx, next) {
238
- compression({
239
- gzip: true,
240
- brotli: false
241
- })(ctx.req, ctx.res, next);
242
- });
243
- _state.label = 2;
244
- case 2:
245
- _this.addHandler(function(ctx, next) {
246
- ctx.res.setHeader("Access-Control-Allow-Origin", "*");
247
- if (ctx.path.includes("hot-update")) {
248
- ctx.res.setHeader("Access-Control-Allow-Credentials", "false");
249
- }
250
- var confHeaders = dev.headers;
251
- if (confHeaders) {
252
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
253
- try {
254
- for (var _iterator = Object.entries(confHeaders)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
255
- var _step_value = _sliced_to_array(_step.value, 2), key = _step_value[0], value = _step_value[1];
256
- ctx.res.setHeader(key, value);
257
- }
258
- } catch (err) {
259
- _didIteratorError = true;
260
- _iteratorError = err;
261
- } finally {
262
- try {
263
- if (!_iteratorNormalCompletion && _iterator.return != null) {
264
- _iterator.return();
265
- }
266
- } finally {
267
- if (_didIteratorError) {
268
- throw _iteratorError;
269
- }
270
- }
271
- }
272
- }
273
- next();
274
- });
275
- _this.mockHandler = createMockHandler({
276
- pwd
277
- });
278
- _this.addHandler(function(ctx, next) {
279
- if (_this.mockHandler) {
280
- _this.mockHandler(ctx, next);
281
- } else {
282
- next();
283
- }
284
- });
285
- if (dev.proxy) {
286
- _createProxyHandler = createProxyHandler(dev.proxy), handlers = _createProxyHandler.handlers, handleUpgrade = _createProxyHandler.handleUpgrade;
287
- app && handleUpgrade(app);
288
- handlers.forEach(function(handler) {
289
- _this.addHandler(handler);
290
- });
291
- }
292
- devMiddleware.init(app);
293
- devMiddleware.on("change", function(stats) {
294
- if (stats.toJson({
295
- all: false
296
- }).name !== "server") {
297
- _this.onRepack({
298
- routes: _this.getRoutes()
299
- });
300
- }
301
- });
302
- _this.addHandler(function(ctx, next) {
303
- var req = ctx.req, res = ctx.res;
304
- if (devMiddleware.middleware) {
305
- devMiddleware.middleware(req, res, next);
306
- } else {
307
- next();
308
- }
309
- });
310
- if (!dev.historyApiFallback)
311
- return [
312
- 3,
313
- 4
314
- ];
315
- return [
316
- 4,
317
- import("connect-history-api-fallback")
318
- ];
319
- case 3:
320
- _ref1 = _state.sent(), connectHistoryApiFallback = _ref1.default;
321
- historyApiFallbackMiddleware = connectHistoryApiFallback(typeof dev.historyApiFallback === "boolean" ? {} : dev.historyApiFallback);
322
- _this.addHandler(function(ctx, next) {
323
- return historyApiFallbackMiddleware(ctx.req, ctx.res, next);
324
- });
325
- _state.label = 4;
326
- case 4:
327
- return [
328
- 2
329
- ];
330
- }
296
+ pwd = _this.pwd;
297
+ _this.mockHandler = createMockHandler({
298
+ pwd
299
+ });
300
+ _this.addHandler(function(ctx, next) {
301
+ if (_this.mockHandler) {
302
+ _this.mockHandler(ctx, next);
303
+ } else {
304
+ next();
305
+ }
306
+ });
307
+ return [
308
+ 2
309
+ ];
331
310
  });
332
311
  })();
333
312
  }
@@ -397,13 +376,14 @@ var ModernDevServer = /* @__PURE__ */ function(ModernServer2) {
397
376
  var _this = this;
398
377
  var _this_dev_devMiddleware, _this_dev;
399
378
  var isInit = false;
400
- if (this.devMiddleware && ((_this_dev = this.dev) === null || _this_dev === void 0 ? void 0 : (_this_dev_devMiddleware = _this_dev.devMiddleware) === null || _this_dev_devMiddleware === void 0 ? void 0 : _this_dev_devMiddleware.writeToDisk) === false) {
379
+ if (((_this_dev = this.dev) === null || _this_dev === void 0 ? void 0 : (_this_dev_devMiddleware = _this_dev.devMiddleware) === null || _this_dev_devMiddleware === void 0 ? void 0 : _this_dev_devMiddleware.writeToDisk) === false) {
401
380
  this.addHandler(function(ctx, next) {
381
+ var _ctx_res_locals;
402
382
  if (isInit) {
403
383
  return next();
404
384
  }
405
385
  isInit = true;
406
- if (!ctx.res.locals.webpack) {
386
+ if (!((_ctx_res_locals = ctx.res.locals) === null || _ctx_res_locals === void 0 ? void 0 : _ctx_res_locals.webpack)) {
407
387
  _this.reader.init();
408
388
  return next();
409
389
  }
@@ -511,7 +491,7 @@ var ModernDevServer = /* @__PURE__ */ function(ModernServer2) {
511
491
  key: "setupStaticMiddleware",
512
492
  value: function setupStaticMiddleware(_) {
513
493
  return function() {
514
- var _ref = _async_to_generator(function(context, next) {
494
+ var _ref = _async_to_generator(function(_context, next) {
515
495
  return _ts_generator(this, function(_state) {
516
496
  return [
517
497
  2,
@@ -519,64 +499,12 @@ var ModernDevServer = /* @__PURE__ */ function(ModernServer2) {
519
499
  ];
520
500
  });
521
501
  });
522
- return function(context, next) {
502
+ return function(_context, next) {
523
503
  return _ref.apply(this, arguments);
524
504
  };
525
505
  }();
526
506
  }
527
507
  },
528
- {
529
- key: "setupBeforeDevMiddleware",
530
- value: function setupBeforeDevMiddleware() {
531
- var _this = this;
532
- return _async_to_generator(function() {
533
- var runner, conf, dev, setupMids, pluginMids;
534
- return _ts_generator(this, function(_state) {
535
- switch (_state.label) {
536
- case 0:
537
- runner = _this.runner, conf = _this.conf, dev = _this.dev;
538
- setupMids = dev.before || [];
539
- return [
540
- 4,
541
- runner.beforeDevServer(conf)
542
- ];
543
- case 1:
544
- pluginMids = _state.sent();
545
- return [
546
- 2,
547
- _to_consumable_array(setupMids).concat(_to_consumable_array(pluginMids)).flat()
548
- ];
549
- }
550
- });
551
- })();
552
- }
553
- },
554
- {
555
- key: "setupAfterDevMiddleware",
556
- value: function setupAfterDevMiddleware() {
557
- var _this = this;
558
- return _async_to_generator(function() {
559
- var runner, conf, dev, setupMids, pluginMids;
560
- return _ts_generator(this, function(_state) {
561
- switch (_state.label) {
562
- case 0:
563
- runner = _this.runner, conf = _this.conf, dev = _this.dev;
564
- setupMids = dev.after || [];
565
- return [
566
- 4,
567
- runner.afterDevServer(conf)
568
- ];
569
- case 1:
570
- pluginMids = _state.sent();
571
- return [
572
- 2,
573
- _to_consumable_array(pluginMids).concat(_to_consumable_array(setupMids)).flat()
574
- ];
575
- }
576
- });
577
- })();
578
- }
579
- },
580
508
  {
581
509
  key: "cleanSSRCache",
582
510
  value: function cleanSSRCache() {