@modern-js/server 1.1.2 → 1.1.4-rc.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 (67) hide show
  1. package/CHANGELOG.md +46 -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/hook-api/route.js +37 -0
  5. package/dist/js/modern/libs/{hook-api.js → hook-api/template.js} +0 -0
  6. package/dist/js/modern/libs/proxy.js +2 -2
  7. package/dist/js/modern/libs/render/cache/__tests__/cache.test.js +2 -2
  8. package/dist/js/modern/libs/render/cache/index.js +2 -2
  9. package/dist/js/modern/libs/render/cache/type.js +0 -1
  10. package/dist/js/modern/libs/route/index.js +4 -0
  11. package/dist/js/modern/libs/route/matcher.js +4 -0
  12. package/dist/js/modern/server/dev-server/dev-server-split.js +28 -0
  13. package/dist/js/modern/server/{dev-server.js → dev-server/dev-server.js} +41 -22
  14. package/dist/js/modern/server/dev-server/index.js +2 -0
  15. package/dist/js/modern/server/index.js +64 -62
  16. package/dist/js/modern/server/modern-server-split.js +81 -0
  17. package/dist/js/modern/server/modern-server.js +117 -59
  18. package/dist/js/modern/type.js +0 -1
  19. package/dist/js/modern/utils.js +11 -3
  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/hook-api/route.js +46 -0
  23. package/dist/js/node/libs/{hook-api.js → hook-api/template.js} +0 -0
  24. package/dist/js/node/libs/proxy.js +2 -2
  25. package/dist/js/node/libs/render/cache/__tests__/cache.test.js +2 -2
  26. package/dist/js/node/libs/render/cache/index.js +2 -2
  27. package/dist/js/node/libs/route/index.js +4 -0
  28. package/dist/js/node/libs/route/matcher.js +4 -0
  29. package/dist/js/node/server/dev-server/dev-server-split.js +41 -0
  30. package/dist/js/node/server/{dev-server.js → dev-server/dev-server.js} +42 -21
  31. package/dist/js/node/server/dev-server/index.js +27 -0
  32. package/dist/js/node/server/index.js +71 -63
  33. package/dist/js/node/server/modern-server-split.js +97 -0
  34. package/dist/js/node/server/modern-server.js +120 -60
  35. package/dist/js/node/utils.js +14 -4
  36. package/dist/types/libs/hook-api/route.d.ts +13 -0
  37. package/dist/types/libs/{hook-api.d.ts → hook-api/template.d.ts} +0 -0
  38. package/dist/types/libs/route/index.d.ts +1 -0
  39. package/dist/types/libs/route/matcher.d.ts +1 -0
  40. package/dist/types/server/dev-server/dev-server-split.d.ts +15 -0
  41. package/dist/types/server/{dev-server.d.ts → dev-server/dev-server.d.ts} +6 -5
  42. package/dist/types/server/dev-server/index.d.ts +2 -0
  43. package/dist/types/server/index.d.ts +3 -1
  44. package/dist/types/server/modern-server-split.d.ts +26 -0
  45. package/dist/types/server/modern-server.d.ts +19 -11
  46. package/dist/types/type.d.ts +5 -0
  47. package/dist/types/utils.d.ts +3 -2
  48. package/package.json +12 -11
  49. package/src/libs/hook-api/route.ts +38 -0
  50. package/src/libs/{hook-api.ts → hook-api/template.ts} +0 -0
  51. package/src/libs/route/index.ts +4 -0
  52. package/src/libs/route/matcher.ts +4 -0
  53. package/src/server/{web-server.ts → dev-server/dev-server-split.ts} +12 -14
  54. package/src/server/{dev-server.ts → dev-server/dev-server.ts} +62 -33
  55. package/src/server/dev-server/index.ts +2 -0
  56. package/src/server/index.ts +80 -47
  57. package/src/server/modern-server-split.ts +97 -0
  58. package/src/server/modern-server.ts +135 -81
  59. package/src/type.ts +5 -0
  60. package/src/utils.ts +16 -2
  61. package/dist/js/modern/server/api-server.js +0 -36
  62. package/dist/js/modern/server/web-server.js +0 -30
  63. package/dist/js/node/server/api-server.js +0 -50
  64. package/dist/js/node/server/web-server.js +0 -44
  65. package/dist/types/server/api-server.d.ts +0 -17
  66. package/dist/types/server/web-server.d.ts +0 -15
  67. package/src/server/api-server.ts +0 -47
@@ -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
 
@@ -11,10 +11,11 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
11
11
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
12
12
 
13
13
  /* eslint-disable max-lines */
14
+ import { createServer } from 'http';
14
15
  import util from 'util';
15
16
  import path from 'path';
16
17
  import { fs, ROUTE_SPEC_FILE } from '@modern-js/utils';
17
- import { gather, createMiddlewareCollecter } from '@modern-js/server-utils';
18
+ import { createMiddlewareCollecter } from '@modern-js/server-utils';
18
19
  import mime from 'mime-types';
19
20
  import axios from 'axios';
20
21
  import { RouteMatchManager } from "../libs/route";
@@ -25,7 +26,8 @@ import * as reader from "../libs/render/reader";
25
26
  import { createProxyHandler } from "../libs/proxy";
26
27
  import { createContext } from "../libs/context";
27
28
  import { AGGRED_DIR, ApiServerMode, ERROR_DIGEST, ERROR_PAGE_TEXT } from "../constants";
28
- import { createTemplateAPI } from "../libs/hook-api";
29
+ import { createTemplateAPI } from "../libs/hook-api/template";
30
+ import { createRouteAPI } from "../libs/hook-api/route";
29
31
  const API_DIR = './api';
30
32
  const SERVER_DIR = './server';
31
33
  export class ModernServer {
@@ -39,8 +41,9 @@ export class ModernServer {
39
41
  routes,
40
42
  staticGenerate,
41
43
  logger,
42
- measure
43
- }, runner) {
44
+ measure,
45
+ proxyTarget
46
+ }) {
44
47
  this.pwd = void 0;
45
48
  this.distDir = void 0;
46
49
  this.workDir = void 0;
@@ -48,9 +51,10 @@ export class ModernServer {
48
51
  this.conf = void 0;
49
52
  this.handlers = [];
50
53
  this.presetRoutes = void 0;
54
+ this.runner = void 0;
51
55
  this.logger = void 0;
52
56
  this.measure = void 0;
53
- this.runner = void 0;
57
+ this.proxyTarget = void 0;
54
58
  this.isDev = false;
55
59
  this.staticFileHandler = void 0;
56
60
  this.routeRenderHandler = void 0;
@@ -64,14 +68,14 @@ export class ModernServer {
64
68
 
65
69
  this.isDev = Boolean(dev);
66
70
  this.pwd = pwd;
67
- this.distDir = path.join(pwd, config.output.path || '');
71
+ this.distDir = path.join(pwd, config.output.path || 'dist');
68
72
  this.workDir = this.isDev ? pwd : this.distDir;
69
73
  this.conf = config;
70
- this.runner = runner;
71
74
  this.logger = logger;
72
75
  this.measure = measure;
73
76
  this.router = new RouteMatchManager();
74
77
  this.presetRoutes = routes;
78
+ this.proxyTarget = proxyTarget;
75
79
 
76
80
  if (staticGenerate) {
77
81
  this.staticGenerate = staticGenerate;
@@ -86,9 +90,10 @@ export class ModernServer {
86
90
  } // server prepare
87
91
 
88
92
 
89
- async init() {
93
+ async init(runner) {
90
94
  var _conf$bff;
91
95
 
96
+ this.runner = runner;
92
97
  const {
93
98
  distDir,
94
99
  isDev,
@@ -153,19 +158,10 @@ export class ModernServer {
153
158
 
154
159
  close() {
155
160
  reader.close();
156
- } // warmup ssr function
157
-
158
-
159
- warmupSSRBundle() {
160
- const {
161
- distDir
162
- } = this;
163
- const bundles = this.router.getBundles();
164
- bundles.forEach(bundle => {
165
- const filepath = path.join(distDir, bundle); // if error, just throw and let process die
161
+ }
166
162
 
167
- require(filepath);
168
- });
163
+ async createHTTPServer(handler) {
164
+ return createServer(handler);
169
165
  } // read route spec from route.json
170
166
 
171
167
 
@@ -200,12 +196,7 @@ export class ModernServer {
200
196
  const {
201
197
  workDir,
202
198
  runner
203
- } = this; // inner tool, gather user inject
204
-
205
- const {
206
- api: userAPIExt,
207
- web: userWebExt
208
- } = gather(workDir); // server hook, gather plugin inject
199
+ } = this; // server hook, gather plugin inject
209
200
 
210
201
  const _createMiddlewareColl = createMiddlewareCollecter(),
211
202
  {
@@ -222,16 +213,21 @@ export class ModernServer {
222
213
  const serverDir = path.join(workDir, SERVER_DIR); // get api or web server handler from server-framework plugin
223
214
 
224
215
  if (await fs.pathExists(path.join(serverDir))) {
225
- const webExtension = mergeExtension(pluginWebExt, userWebExt);
216
+ const webExtension = mergeExtension(pluginWebExt);
226
217
  this.frameWebHandler = await this.prepareWebHandler(webExtension);
227
218
  }
228
219
 
229
220
  if (fs.existsSync(apiDir)) {
230
221
  const mode = fs.existsSync(path.join(apiDir, AGGRED_DIR.lambda)) ? ApiServerMode.frame : ApiServerMode.func; // if use lambda/, mean framework style of writing, then discard user extension
231
222
 
232
- const apiExtension = mergeExtension(pluginAPIExt, mode === ApiServerMode.frame ? [] : userAPIExt);
223
+ const apiExtension = mergeExtension(pluginAPIExt);
233
224
  this.frameAPIHandler = await this.prepareAPIHandler(mode, apiExtension);
234
225
  }
226
+ } // Todo
227
+
228
+
229
+ async proxy() {
230
+ return null;
235
231
  }
236
232
  /* —————————————————————— function will be overwrite —————————————————————— */
237
233
 
@@ -263,7 +259,7 @@ export class ModernServer {
263
259
  pwd: workDir,
264
260
  mode,
265
261
  config: extension,
266
- prefix
262
+ prefix: Array.isArray(prefix) ? prefix[0] : prefix
267
263
  }, {
268
264
  onLast: () => null
269
265
  });
@@ -273,34 +269,54 @@ export class ModernServer {
273
269
  return routes;
274
270
  }
275
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
+
276
291
  async preServerInit() {
277
292
  const {
278
- conf
293
+ conf,
294
+ runner
279
295
  } = this;
280
- const preMiddleware = await this.runner.preServerInit(conf);
281
- preMiddleware.forEach(mid => {
296
+ const preMiddleware = await runner.preServerInit(conf);
297
+ preMiddleware.flat().forEach(mid => {
282
298
  this.addHandler(mid);
283
299
  });
284
300
  }
285
301
 
286
- prepareFavicons(favicon, faviconByEntries) {
287
- const faviconNames = [];
302
+ async handleAPI(context) {
303
+ const {
304
+ req,
305
+ res
306
+ } = context;
288
307
 
289
- if (favicon) {
290
- faviconNames.push(favicon.substring(favicon.lastIndexOf('/') + 1));
308
+ if (!this.frameAPIHandler) {
309
+ throw new Error('can not found api hanlder');
291
310
  }
292
311
 
293
- if (faviconByEntries) {
294
- Object.keys(faviconByEntries).forEach(f => {
295
- const curFavicon = faviconByEntries[f];
312
+ await this.frameAPIHandler(req, res);
313
+ }
296
314
 
297
- if (curFavicon) {
298
- faviconNames.push(curFavicon.substring(curFavicon.lastIndexOf('/') + 1));
299
- }
300
- });
301
- }
315
+ async handleWeb(context, route) {
316
+ return this.routeRenderHandler(context, route);
317
+ }
302
318
 
303
- return faviconNames;
319
+ verifyMatch(_c, _m) {// empty
304
320
  }
305
321
  /* —————————————————————— private function —————————————————————— */
306
322
  // handler route.json, include api / csr / ssr
@@ -311,25 +327,43 @@ export class ModernServer {
311
327
  const {
312
328
  req,
313
329
  res
314
- } = context; // match routes in the route spec
330
+ } = context;
331
+ await this.emitRouteHook('beforeMatch', {
332
+ context
333
+ }); // match routes in the route spec
315
334
 
316
335
  const matched = this.router.match(context.url);
317
336
 
318
337
  if (!matched) {
319
338
  this.render404(context);
320
339
  return;
340
+ } else {
341
+ this.verifyMatch(context, matched);
321
342
  }
322
343
 
323
- const route = matched.generate();
324
- const params = matched.parseURLParams(context.url);
344
+ if (res.headersSent) {
345
+ return;
346
+ }
347
+
348
+ const routeAPI = createRouteAPI(matched, this.router);
349
+ await this.emitRouteHook('afterMatch', {
350
+ context,
351
+ routeAPI
352
+ });
353
+
354
+ if (res.headersSent) {
355
+ return;
356
+ }
357
+
358
+ const {
359
+ current
360
+ } = routeAPI;
361
+ const route = current.generate();
362
+ const params = current.parseURLParams(context.url);
325
363
  context.setParams(params); // route is api service
326
364
 
327
365
  if (route.isApi) {
328
- if (!this.frameAPIHandler) {
329
- throw new Error('can not found api hanlder');
330
- }
331
-
332
- await this.frameAPIHandler(req, res);
366
+ this.handleAPI(context);
333
367
  return;
334
368
  }
335
369
 
@@ -342,7 +376,13 @@ export class ModernServer {
342
376
  return;
343
377
  }
344
378
 
345
- const file = await this.routeRenderHandler(context, route);
379
+ if (route.entryName) {
380
+ await this.emitRouteHook('beforeRender', {
381
+ context
382
+ });
383
+ }
384
+
385
+ const file = await this.handleWeb(context, route);
346
386
 
347
387
  if (!file) {
348
388
  this.render404(context);
@@ -360,11 +400,9 @@ export class ModernServer {
360
400
 
361
401
  if (route.entryName) {
362
402
  const templateAPI = createTemplateAPI(file.content.toString());
363
- await this.runner.afterRender({
403
+ await this.emitRouteHook('afterRender', {
364
404
  context,
365
405
  templateAPI
366
- }, {
367
- onLast: noop
368
406
  });
369
407
  await this.injectMicroFE(context, templateAPI);
370
408
  response = templateAPI.get();
@@ -532,5 +570,25 @@ export class ModernServer {
532
570
  res.end(createErrorDocument(status, text));
533
571
  }
534
572
 
573
+ prepareFavicons(favicon, faviconByEntries) {
574
+ const faviconNames = [];
575
+
576
+ if (favicon) {
577
+ faviconNames.push(favicon.substring(favicon.lastIndexOf('/') + 1));
578
+ }
579
+
580
+ if (faviconByEntries) {
581
+ Object.keys(faviconByEntries).forEach(f => {
582
+ const curFavicon = faviconByEntries[f];
583
+
584
+ if (curFavicon) {
585
+ faviconNames.push(curFavicon.substring(curFavicon.lastIndexOf('/') + 1));
586
+ }
587
+ });
588
+ }
589
+
590
+ return faviconNames;
591
+ }
592
+
535
593
  }
536
594
  /* eslint-enable max-lines */
@@ -1,2 +1 @@
1
- export {};
2
1
  export {};
@@ -1,7 +1,7 @@
1
- export const mergeExtension = (users, plugins) => {
1
+ export const mergeExtension = users => {
2
2
  const output = [];
3
3
  return {
4
- middleware: output.concat(users).concat(plugins)
4
+ middleware: output.concat(users)
5
5
  };
6
6
  };
7
7
  export const toMessage = (dig, e) => {
@@ -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
 
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createRouteAPI = void 0;
7
+
8
+ class RouteAPI {
9
+ constructor(matched, router) {
10
+ this.router = void 0;
11
+ this.current = void 0;
12
+ this.current = matched;
13
+ this.router = router;
14
+ }
15
+
16
+ cur() {
17
+ return this.current.generate();
18
+ }
19
+
20
+ get(entryName) {
21
+ const {
22
+ router
23
+ } = this;
24
+ const matched = router.matchEntry(entryName);
25
+ return matched ? matched.generate() : null;
26
+ }
27
+
28
+ use(entryName) {
29
+ const {
30
+ router
31
+ } = this;
32
+ const matched = router.matchEntry(entryName);
33
+
34
+ if (matched) {
35
+ this.current = matched;
36
+ return true;
37
+ } else {
38
+ return false;
39
+ }
40
+ }
41
+
42
+ }
43
+
44
+ const createRouteAPI = (matched, router) => new RouteAPI(matched, router);
45
+
46
+ exports.createRouteAPI = createRouteAPI;
@@ -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
 
@@ -64,6 +64,10 @@ class RouteMatchManager {
64
64
  return best;
65
65
  }
66
66
 
67
+ matchEntry(entryname) {
68
+ return this.matchers.find(matcher => matcher.matchEntry(entryname));
69
+ }
70
+
67
71
  getBundles() {
68
72
  const bundles = this.specs.filter(route => route.isSSR).map(route => route.bundle);
69
73
  return bundles;
@@ -68,6 +68,10 @@ class RouteMatcher {
68
68
 
69
69
  return false;
70
70
  }
71
+ }
72
+
73
+ matchEntry(entryName) {
74
+ return this.spec.entryName === entryName;
71
75
  } // compiler urlPath to regexp if necessary
72
76
 
73
77
 
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ModernSSRDevServer = exports.ModernAPIDevServer = void 0;
7
+
8
+ var _devServer = require("./dev-server");
9
+
10
+ class ModernSSRDevServer extends _devServer.ModernDevServer {
11
+ prepareAPIHandler(_m, _) {
12
+ return null;
13
+ }
14
+
15
+ async prepareWebHandler(extension) {
16
+ return super.prepareWebHandler(extension);
17
+ }
18
+
19
+ filterRoutes(routes) {
20
+ return routes.filter(route => route.entryName);
21
+ }
22
+
23
+ }
24
+
25
+ exports.ModernSSRDevServer = ModernSSRDevServer;
26
+
27
+ class ModernAPIDevServer extends _devServer.ModernDevServer {
28
+ async prepareAPIHandler(mode, extension) {
29
+ return super.prepareAPIHandler(mode, extension);
30
+ }
31
+
32
+ filterRoutes(routes) {
33
+ return routes.filter(route => route.isApi);
34
+ }
35
+
36
+ async preServerInit() {// noop
37
+ }
38
+
39
+ }
40
+
41
+ exports.ModernAPIDevServer = ModernAPIDevServer;