@modern-js/server 1.1.3 → 1.1.5-beta.1

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 (67) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/js/modern/dev-tools/babel/register.js +2 -2
  3. package/dist/js/modern/dev-tools/mock/getMockData.js +2 -2
  4. package/dist/js/modern/libs/context/context.js +15 -7
  5. package/dist/js/modern/libs/context/index.js +2 -2
  6. package/dist/js/modern/libs/{measure.js → metrics.js} +2 -2
  7. package/dist/js/modern/libs/proxy.js +2 -2
  8. package/dist/js/modern/libs/render/cache/__tests__/cache.test.js +2 -2
  9. package/dist/js/modern/libs/render/cache/index.js +2 -2
  10. package/dist/js/modern/libs/render/index.js +6 -2
  11. package/dist/js/modern/libs/render/ssr.js +3 -2
  12. package/dist/js/modern/libs/route/route.js +1 -1
  13. package/dist/js/modern/server/dev-server/dev-server-split.js +2 -6
  14. package/dist/js/modern/server/dev-server/dev-server.js +11 -2
  15. package/dist/js/modern/server/dev-server/index.js +1 -1
  16. package/dist/js/modern/server/index.js +17 -15
  17. package/dist/js/modern/server/modern-server-split.js +55 -6
  18. package/dist/js/modern/server/modern-server.js +96 -56
  19. package/dist/js/modern/utils.js +9 -1
  20. package/dist/js/node/dev-tools/babel/register.js +2 -2
  21. package/dist/js/node/dev-tools/mock/getMockData.js +2 -2
  22. package/dist/js/node/libs/context/context.js +15 -7
  23. package/dist/js/node/libs/context/index.js +2 -2
  24. package/dist/js/node/libs/{measure.js → metrics.js} +3 -3
  25. package/dist/js/node/libs/proxy.js +2 -2
  26. package/dist/js/node/libs/render/cache/__tests__/cache.test.js +2 -2
  27. package/dist/js/node/libs/render/cache/index.js +2 -2
  28. package/dist/js/node/libs/render/index.js +6 -2
  29. package/dist/js/node/libs/render/ssr.js +3 -2
  30. package/dist/js/node/libs/route/route.js +1 -1
  31. package/dist/js/node/server/dev-server/dev-server-split.js +5 -9
  32. package/dist/js/node/server/dev-server/dev-server.js +11 -2
  33. package/dist/js/node/server/dev-server/index.js +4 -4
  34. package/dist/js/node/server/index.js +16 -14
  35. package/dist/js/node/server/modern-server-split.js +61 -9
  36. package/dist/js/node/server/modern-server.js +97 -57
  37. package/dist/js/node/utils.js +12 -2
  38. package/dist/types/libs/context/context.d.ts +5 -5
  39. package/dist/types/libs/context/index.d.ts +3 -3
  40. package/dist/types/libs/metrics.d.ts +3 -0
  41. package/dist/types/libs/render/index.d.ts +10 -1
  42. package/dist/types/libs/render/ssr.d.ts +2 -1
  43. package/dist/types/libs/render/type.d.ts +2 -21
  44. package/dist/types/libs/route/route.d.ts +2 -10
  45. package/dist/types/server/dev-server/dev-server-split.d.ts +3 -4
  46. package/dist/types/server/dev-server/index.d.ts +1 -1
  47. package/dist/types/server/modern-server-split.d.ts +15 -5
  48. package/dist/types/server/modern-server.d.ts +14 -7
  49. package/dist/types/type.d.ts +11 -5
  50. package/dist/types/utils.d.ts +2 -1
  51. package/package.json +5 -5
  52. package/src/libs/context/context.ts +12 -8
  53. package/src/libs/context/index.ts +3 -3
  54. package/src/libs/{measure.ts → metrics.ts} +3 -3
  55. package/src/libs/render/index.ts +21 -11
  56. package/src/libs/render/ssr.ts +5 -1
  57. package/src/libs/render/type.ts +3 -16
  58. package/src/libs/route/route.ts +4 -20
  59. package/src/server/dev-server/dev-server-split.ts +3 -7
  60. package/src/server/dev-server/dev-server.ts +14 -12
  61. package/src/server/dev-server/index.ts +1 -1
  62. package/src/server/index.ts +21 -14
  63. package/src/server/modern-server-split.ts +59 -7
  64. package/src/server/modern-server.ts +109 -64
  65. package/src/type.ts +12 -5
  66. package/src/utils.ts +14 -0
  67. package/dist/types/libs/measure.d.ts +0 -3
@@ -1,8 +1,8 @@
1
1
  const _excluded = ["getMiddlewares"];
2
2
 
3
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
3
+ 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; }
4
4
 
5
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
5
+ 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; }
6
6
 
7
7
  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; }
8
8
 
@@ -41,7 +41,8 @@ export class ModernServer {
41
41
  routes,
42
42
  staticGenerate,
43
43
  logger,
44
- measure
44
+ metrics,
45
+ proxyTarget
45
46
  }) {
46
47
  this.pwd = void 0;
47
48
  this.distDir = void 0;
@@ -52,7 +53,8 @@ export class ModernServer {
52
53
  this.presetRoutes = void 0;
53
54
  this.runner = void 0;
54
55
  this.logger = void 0;
55
- this.measure = void 0;
56
+ this.metrics = void 0;
57
+ this.proxyTarget = void 0;
56
58
  this.isDev = false;
57
59
  this.staticFileHandler = void 0;
58
60
  this.routeRenderHandler = void 0;
@@ -66,13 +68,14 @@ export class ModernServer {
66
68
 
67
69
  this.isDev = Boolean(dev);
68
70
  this.pwd = pwd;
69
- this.distDir = path.join(pwd, config.output.path || '');
71
+ this.distDir = path.join(pwd, config.output.path || 'dist');
70
72
  this.workDir = this.isDev ? pwd : this.distDir;
71
73
  this.conf = config;
72
74
  this.logger = logger;
73
- this.measure = measure;
75
+ this.metrics = metrics;
74
76
  this.router = new RouteMatchManager();
75
77
  this.presetRoutes = routes;
78
+ this.proxyTarget = proxyTarget;
76
79
 
77
80
  if (staticGenerate) {
78
81
  this.staticGenerate = staticGenerate;
@@ -159,19 +162,6 @@ export class ModernServer {
159
162
 
160
163
  async createHTTPServer(handler) {
161
164
  return createServer(handler);
162
- } // warmup ssr function
163
-
164
-
165
- warmupSSRBundle() {
166
- const {
167
- distDir
168
- } = this;
169
- const bundles = this.router.getBundles();
170
- bundles.forEach(bundle => {
171
- const filepath = path.join(distDir, bundle); // if error, just throw and let process die
172
-
173
- require(filepath);
174
- });
175
165
  } // read route spec from route.json
176
166
 
177
167
 
@@ -233,6 +223,11 @@ export class ModernServer {
233
223
  const apiExtension = mergeExtension(pluginAPIExt);
234
224
  this.frameAPIHandler = await this.prepareAPIHandler(mode, apiExtension);
235
225
  }
226
+ } // Todo
227
+
228
+
229
+ async proxy() {
230
+ return null;
236
231
  }
237
232
  /* —————————————————————— function will be overwrite —————————————————————— */
238
233
 
@@ -274,34 +269,58 @@ export class ModernServer {
274
269
  return routes;
275
270
  }
276
271
 
272
+ async emitRouteHook(eventName, input) {
273
+ return this.runner[eventName](input, {
274
+ onLast: noop
275
+ });
276
+ } // warmup ssr function
277
+
278
+
279
+ warmupSSRBundle() {
280
+ const {
281
+ distDir
282
+ } = this;
283
+ const bundles = this.router.getBundles();
284
+ bundles.forEach(bundle => {
285
+ const filepath = path.join(distDir, bundle); // if error, just throw and let process die
286
+
287
+ require(filepath);
288
+ });
289
+ }
290
+
277
291
  async preServerInit() {
278
292
  const {
279
- conf
293
+ conf,
294
+ runner
280
295
  } = this;
281
- const preMiddleware = await this.runner.preServerInit(conf);
296
+ const preMiddleware = await runner.preServerInit(conf);
282
297
  preMiddleware.flat().forEach(mid => {
283
298
  this.addHandler(mid);
284
299
  });
285
300
  }
286
301
 
287
- prepareFavicons(favicon, faviconByEntries) {
288
- const faviconNames = [];
302
+ async handleAPI(context) {
303
+ const {
304
+ req,
305
+ res
306
+ } = context;
289
307
 
290
- if (favicon) {
291
- faviconNames.push(favicon.substring(favicon.lastIndexOf('/') + 1));
308
+ if (!this.frameAPIHandler) {
309
+ throw new Error('can not found api hanlder');
292
310
  }
293
311
 
294
- if (faviconByEntries) {
295
- Object.keys(faviconByEntries).forEach(f => {
296
- const curFavicon = faviconByEntries[f];
312
+ await this.frameAPIHandler(req, res);
313
+ }
297
314
 
298
- if (curFavicon) {
299
- faviconNames.push(curFavicon.substring(curFavicon.lastIndexOf('/') + 1));
300
- }
301
- });
302
- }
315
+ async handleWeb(context, route) {
316
+ return this.routeRenderHandler({
317
+ ctx: context,
318
+ route,
319
+ runner: this.runner
320
+ });
321
+ }
303
322
 
304
- return faviconNames;
323
+ verifyMatch(_c, _m) {// empty
305
324
  }
306
325
  /* —————————————————————— private function —————————————————————— */
307
326
  // handler route.json, include api / csr / ssr
@@ -313,10 +332,8 @@ export class ModernServer {
313
332
  req,
314
333
  res
315
334
  } = context;
316
- await this.runner.beforeMatch({
335
+ await this.emitRouteHook('beforeMatch', {
317
336
  context
318
- }, {
319
- onLast: noop
320
337
  }); // match routes in the route spec
321
338
 
322
339
  const matched = this.router.match(context.url);
@@ -324,14 +341,18 @@ export class ModernServer {
324
341
  if (!matched) {
325
342
  this.render404(context);
326
343
  return;
344
+ } else {
345
+ this.verifyMatch(context, matched);
346
+ }
347
+
348
+ if (res.headersSent) {
349
+ return;
327
350
  }
328
351
 
329
352
  const routeAPI = createRouteAPI(matched, this.router);
330
- await this.runner.afterMatch({
353
+ await this.emitRouteHook('afterMatch', {
331
354
  context,
332
355
  routeAPI
333
- }, {
334
- onLast: noop
335
356
  });
336
357
 
337
358
  if (res.headersSent) {
@@ -346,11 +367,7 @@ export class ModernServer {
346
367
  context.setParams(params); // route is api service
347
368
 
348
369
  if (route.isApi) {
349
- if (!this.frameAPIHandler) {
350
- throw new Error('can not found api hanlder');
351
- }
352
-
353
- await this.frameAPIHandler(req, res);
370
+ this.handleAPI(context);
354
371
  return;
355
372
  }
356
373
 
@@ -363,12 +380,13 @@ export class ModernServer {
363
380
  return;
364
381
  }
365
382
 
366
- await this.runner.beforeRender({
367
- context
368
- }, {
369
- onLast: noop
370
- });
371
- const file = await this.routeRenderHandler(context, route);
383
+ if (route.entryName) {
384
+ await this.emitRouteHook('beforeRender', {
385
+ context
386
+ });
387
+ }
388
+
389
+ const file = await this.handleWeb(context, route);
372
390
 
373
391
  if (!file) {
374
392
  this.render404(context);
@@ -386,11 +404,9 @@ export class ModernServer {
386
404
 
387
405
  if (route.entryName) {
388
406
  const templateAPI = createTemplateAPI(file.content.toString());
389
- await this.runner.afterRender({
407
+ await this.emitRouteHook('afterRender', {
390
408
  context,
391
409
  templateAPI
392
- }, {
393
- onLast: noop
394
410
  });
395
411
  await this.injectMicroFE(context, templateAPI);
396
412
  response = templateAPI.get();
@@ -510,7 +526,7 @@ export class ModernServer {
510
526
  res.statusCode = 200;
511
527
  const context = createContext(req, res, {
512
528
  logger: this.logger,
513
- measure: this.measure
529
+ metrics: this.metrics
514
530
  });
515
531
 
516
532
  try {
@@ -543,7 +559,11 @@ export class ModernServer {
543
559
 
544
560
  if (entryName === status.toString() || entryName === '_error') {
545
561
  try {
546
- const file = await this.routeRenderHandler(context, route);
562
+ const file = await this.routeRenderHandler({
563
+ route,
564
+ ctx: context,
565
+ runner: this.runner
566
+ });
547
567
 
548
568
  if (file) {
549
569
  context.res.end(file.content);
@@ -558,5 +578,25 @@ export class ModernServer {
558
578
  res.end(createErrorDocument(status, text));
559
579
  }
560
580
 
581
+ prepareFavicons(favicon, faviconByEntries) {
582
+ const faviconNames = [];
583
+
584
+ if (favicon) {
585
+ faviconNames.push(favicon.substring(favicon.lastIndexOf('/') + 1));
586
+ }
587
+
588
+ if (faviconByEntries) {
589
+ Object.keys(faviconByEntries).forEach(f => {
590
+ const curFavicon = faviconByEntries[f];
591
+
592
+ if (curFavicon) {
593
+ faviconNames.push(curFavicon.substring(curFavicon.lastIndexOf('/') + 1));
594
+ }
595
+ });
596
+ }
597
+
598
+ return faviconNames;
599
+ }
600
+
561
601
  }
562
602
  /* eslint-enable max-lines */
@@ -47,4 +47,12 @@ export const createErrorDocument = (status, text) => {
47
47
  </body>
48
48
  </html>
49
49
  `;
50
- };
50
+ }; // This can live anywhere in your codebase:
51
+
52
+ export function applyMixins(derivedCtor, constructors) {
53
+ constructors.forEach(baseCtor => {
54
+ Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
55
+ Object.defineProperty(derivedCtor.prototype, name, Object.getOwnPropertyDescriptor(baseCtor.prototype, name) || Object.create(null));
56
+ });
57
+ });
58
+ }
@@ -11,9 +11,9 @@ var _serverUtils = require("@modern-js/server-utils");
11
11
 
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
 
14
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
14
+ 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; }
15
15
 
16
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
16
+ 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; }
17
17
 
18
18
  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; }
19
19
 
@@ -7,9 +7,9 @@ exports.default = void 0;
7
7
 
8
8
  var _utils = require("@modern-js/utils");
9
9
 
10
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
10
+ 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; }
11
11
 
12
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
12
+ 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; }
13
13
 
14
14
  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; }
15
15
 
@@ -27,17 +27,29 @@ class ModernServerContext {
27
27
  */
28
28
  constructor(req, res, {
29
29
  logger,
30
- measure
30
+ metrics
31
31
  }) {
32
32
  this.req = void 0;
33
33
  this.res = void 0;
34
34
  this.params = {};
35
35
  this.logger = void 0;
36
- this.measure = void 0;
36
+ this.metrics = void 0;
37
37
  this.req = req;
38
38
  this.res = res;
39
39
  this.logger = logger;
40
- this.measure = measure;
40
+ this.metrics = metrics;
41
+ this.bind();
42
+ }
43
+
44
+ bind() {
45
+ const {
46
+ req,
47
+ res
48
+ } = this;
49
+
50
+ req.get = key => this.getReqHeader(key);
51
+
52
+ res.set = (key, value) => this.res.setHeader(key, value);
41
53
  }
42
54
 
43
55
  setParams(params) {
@@ -66,10 +78,6 @@ class ModernServerContext {
66
78
  return this.req.headers;
67
79
  }
68
80
 
69
- set headers(val) {
70
- this.req.headers = val;
71
- }
72
-
73
81
  get method() {
74
82
  return this.req.method;
75
83
  }
@@ -15,10 +15,10 @@ var _context = require("./context");
15
15
 
16
16
  const createContext = (req, res, {
17
17
  logger,
18
- measure
18
+ metrics
19
19
  }) => new _context.ModernServerContext(req, res, {
20
20
  logger,
21
- measure
21
+ metrics
22
22
  });
23
23
 
24
24
  exports.createContext = createContext;
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.measure = void 0;
7
- const measure = {
6
+ exports.metrics = void 0;
7
+ const metrics = {
8
8
  gauges() {// no impl
9
9
  },
10
10
 
@@ -15,4 +15,4 @@ const measure = {
15
15
  }
16
16
 
17
17
  };
18
- exports.measure = measure;
18
+ exports.metrics = metrics;
@@ -7,9 +7,9 @@ exports.createProxyHandler = void 0;
7
7
 
8
8
  var _httpProxyMiddleware = require("http-proxy-middleware");
9
9
 
10
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
10
+ 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; }
11
11
 
12
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
12
+ 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; }
13
13
 
14
14
  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; }
15
15
 
@@ -8,9 +8,9 @@ var _cacheable = require("./cacheable");
8
8
 
9
9
  var _matchedCache = require("./matched-cache");
10
10
 
11
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
11
+ 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; }
12
12
 
13
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13
+ 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; }
14
14
 
15
15
  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; }
16
16
 
@@ -11,9 +11,9 @@ var _util = require("./util");
11
11
 
12
12
  var _constants = require("../../../constants");
13
13
 
14
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
14
+ 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; }
15
15
 
16
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
16
+ 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; }
17
17
 
18
18
  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; }
19
19
 
@@ -30,7 +30,11 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
30
30
  const createRenderHandler = ({
31
31
  distDir,
32
32
  staticGenerate
33
- }) => async function render(ctx, route) {
33
+ }) => async function render({
34
+ ctx,
35
+ route,
36
+ runner
37
+ }) {
34
38
  if (ctx.resHasHandled()) {
35
39
  return null;
36
40
  }
@@ -63,7 +67,7 @@ const createRenderHandler = ({
63
67
  bundle: route.bundle,
64
68
  template: templateHTML,
65
69
  staticGenerate
66
- });
70
+ }, runner);
67
71
  return result;
68
72
  } catch (err) {
69
73
  ctx.error(_constants.ERROR_DIGEST.ERENDER, err.stack);
@@ -15,7 +15,7 @@ var _cache = _interopRequireDefault(require("./cache"));
15
15
 
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
 
18
- const render = async (ctx, renderOptions) => {
18
+ const render = async (ctx, renderOptions, runner) => {
19
19
  const {
20
20
  bundle,
21
21
  distDir,
@@ -40,8 +40,9 @@ const render = async (ctx, renderOptions) => {
40
40
  distDir,
41
41
  staticGenerate,
42
42
  logger: ctx.logger,
43
- measure: ctx.measure
43
+ metrics: ctx.metrics
44
44
  };
45
+ runner.extendSSRContext(context);
45
46
 
46
47
  const serverRender = require(bundleJS)[_utils.SERVER_RENDER_FUNCTION_NAME];
47
48
 
@@ -17,7 +17,7 @@ class ModernRoute {
17
17
  this.isSSR = void 0;
18
18
  this.isSPA = void 0;
19
19
  this.enableModernMode = void 0;
20
- this.entryName = routeSpec.entryName;
20
+ this.entryName = routeSpec.entryName || '';
21
21
  this.urlPath = routeSpec.urlPath;
22
22
  this.entryPath = routeSpec.entryPath || '';
23
23
  this.isSSR = routeSpec.isSSR || false;
@@ -3,11 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.WebModernDevServer = exports.APIModernDevServer = void 0;
6
+ exports.ModernSSRDevServer = exports.ModernAPIDevServer = void 0;
7
7
 
8
8
  var _devServer = require("./dev-server");
9
9
 
10
- class WebModernDevServer extends _devServer.ModernDevServer {
10
+ class ModernSSRDevServer extends _devServer.ModernDevServer {
11
11
  prepareAPIHandler(_m, _) {
12
12
  return null;
13
13
  }
@@ -22,13 +22,9 @@ class WebModernDevServer extends _devServer.ModernDevServer {
22
22
 
23
23
  }
24
24
 
25
- exports.WebModernDevServer = WebModernDevServer;
26
-
27
- class APIModernDevServer extends _devServer.ModernDevServer {
28
- prepareWebHandler(_) {
29
- return null;
30
- }
25
+ exports.ModernSSRDevServer = ModernSSRDevServer;
31
26
 
27
+ class ModernAPIDevServer extends _devServer.ModernDevServer {
32
28
  async prepareAPIHandler(mode, extension) {
33
29
  return super.prepareAPIHandler(mode, extension);
34
30
  }
@@ -42,4 +38,4 @@ class APIModernDevServer extends _devServer.ModernDevServer {
42
38
 
43
39
  }
44
40
 
45
- exports.APIModernDevServer = APIModernDevServer;
41
+ exports.ModernAPIDevServer = ModernAPIDevServer;
@@ -41,6 +41,12 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
41
41
 
42
42
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
43
43
 
44
+ 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; }
45
+
46
+ 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; }
47
+
48
+ 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; }
49
+
44
50
  const DEFAULT_DEV_OPTIONS = {
45
51
  client: {
46
52
  port: '8080',
@@ -53,6 +59,7 @@ const DEFAULT_DEV_OPTIONS = {
53
59
  dev: {
54
60
  writeToDisk: true
55
61
  },
62
+ watch: true,
56
63
  hot: true,
57
64
  liveReload: true
58
65
  };
@@ -70,7 +77,7 @@ class ModernDevServer extends _modernServer.ModernServer {
70
77
  this.devMiddleware = void 0;
71
78
  this.compiler = options.compiler; // set dev server options, like webpack-dev-server
72
79
 
73
- this.dev = typeof options.dev === 'boolean' ? DEFAULT_DEV_OPTIONS : options.dev;
80
+ this.dev = typeof options.dev === 'boolean' ? DEFAULT_DEV_OPTIONS : _objectSpread(_objectSpread({}, DEFAULT_DEV_OPTIONS), options.dev);
74
81
  (0, _register.enableRegister)(this.pwd, this.conf);
75
82
  } // Complete the preparation of services
76
83
 
@@ -119,7 +126,9 @@ class ModernDevServer extends _modernServer.ModernServer {
119
126
 
120
127
  await super.init(runner); // watch mock/ server/ api/ dir file change
121
128
 
122
- this.startWatcher();
129
+ if (this.dev.watch) {
130
+ this.startWatcher();
131
+ }
123
132
  }
124
133
 
125
134
  ready(options = {}) {
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "APIModernDevServer", {
6
+ Object.defineProperty(exports, "ModernAPIDevServer", {
7
7
  enumerable: true,
8
8
  get: function () {
9
- return _devServerSplit.APIModernDevServer;
9
+ return _devServerSplit.ModernAPIDevServer;
10
10
  }
11
11
  });
12
12
  Object.defineProperty(exports, "ModernDevServer", {
@@ -15,10 +15,10 @@ Object.defineProperty(exports, "ModernDevServer", {
15
15
  return _devServer.ModernDevServer;
16
16
  }
17
17
  });
18
- Object.defineProperty(exports, "WebModernDevServer", {
18
+ Object.defineProperty(exports, "ModernSSRDevServer", {
19
19
  enumerable: true,
20
20
  get: function () {
21
- return _devServerSplit.WebModernDevServer;
21
+ return _devServerSplit.ModernSSRDevServer;
22
22
  }
23
23
  });
24
24