@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,10 +1,10 @@
1
1
  /* eslint-disable max-lines */
2
- import { IncomingMessage, ServerResponse, Server } from 'http';
2
+ import { IncomingMessage, ServerResponse, Server, createServer } from 'http';
3
3
  import util from 'util';
4
4
  import path from 'path';
5
5
  import { fs, ROUTE_SPEC_FILE } from '@modern-js/utils';
6
- import { Adapter } from '@modern-js/server-plugin';
7
- import { gather, createMiddlewareCollecter } from '@modern-js/server-utils';
6
+ import { Adapter, APIServerStartInput } from '@modern-js/server-plugin';
7
+ import { createMiddlewareCollecter } from '@modern-js/server-utils';
8
8
  import type { NormalizedConfig } from '@modern-js/core';
9
9
  import mime from 'mime-types';
10
10
  import axios from 'axios';
@@ -16,13 +16,18 @@ import {
16
16
  Logger,
17
17
  ReadyOptions,
18
18
  ConfWithBFF,
19
- } from '../type';
20
- import { RouteMatchManager, ModernRouteInterface } from '../libs/route';
21
- import { createRenderHandler } from '../libs/render';
22
- import { createStaticFileHandler } from '../libs/serve-file';
23
- import { createErrorDocument, mergeExtension, noop } from '../utils';
24
- import * as reader from '../libs/render/reader';
25
- import { createProxyHandler, ProxyOptions } from '../libs/proxy';
19
+ } from '@/type';
20
+ import {
21
+ RouteMatchManager,
22
+ ModernRouteInterface,
23
+ ModernRoute,
24
+ RouteMatcher,
25
+ } from '@/libs/route';
26
+ import { createRenderHandler } from '@/libs/render';
27
+ import { createStaticFileHandler } from '@/libs/serve-file';
28
+ import { createErrorDocument, mergeExtension, noop } from '@/utils';
29
+ import * as reader from '@/libs/render/reader';
30
+ import { createProxyHandler, ProxyOptions } from '@/libs/proxy';
26
31
  import { createContext, ModernServerContext } from '@/libs/context';
27
32
  import {
28
33
  AGGRED_DIR,
@@ -30,7 +35,8 @@ import {
30
35
  ERROR_DIGEST,
31
36
  ERROR_PAGE_TEXT,
32
37
  } from '@/constants';
33
- import { createTemplateAPI } from '@/libs/hook-api';
38
+ import { createTemplateAPI } from '@/libs/hook-api/template';
39
+ import { createRouteAPI } from '@/libs/hook-api/route';
34
40
 
35
41
  type ModernServerHandler = (
36
42
  context: ModernServerContext,
@@ -63,11 +69,13 @@ export class ModernServer {
63
69
 
64
70
  protected presetRoutes?: ModernRouteInterface[];
65
71
 
72
+ protected runner!: ServerHookRunner;
73
+
66
74
  protected readonly logger: Logger;
67
75
 
68
76
  protected readonly measure: Measure;
69
77
 
70
- private readonly runner: ServerHookRunner;
78
+ protected readonly proxyTarget: ModernServerOptions['proxyTarget'];
71
79
 
72
80
  private readonly isDev: boolean = false;
73
81
 
@@ -85,30 +93,28 @@ export class ModernServer {
85
93
 
86
94
  private proxyHandler: ReturnType<typeof createProxyHandler> = null;
87
95
 
88
- constructor(
89
- {
90
- pwd,
91
- config,
92
- dev,
93
- routes,
94
- staticGenerate,
95
- logger,
96
- measure,
97
- }: ModernServerOptions,
98
- runner: ServerHookRunner,
99
- ) {
96
+ constructor({
97
+ pwd,
98
+ config,
99
+ dev,
100
+ routes,
101
+ staticGenerate,
102
+ logger,
103
+ measure,
104
+ proxyTarget,
105
+ }: ModernServerOptions) {
100
106
  require('ignore-styles');
101
107
  this.isDev = Boolean(dev);
102
108
 
103
109
  this.pwd = pwd;
104
- this.distDir = path.join(pwd, config.output.path || '');
110
+ this.distDir = path.join(pwd, config.output.path || 'dist');
105
111
  this.workDir = this.isDev ? pwd : this.distDir;
106
112
  this.conf = config;
107
- this.runner = runner;
108
113
  this.logger = logger!;
109
114
  this.measure = measure!;
110
115
  this.router = new RouteMatchManager();
111
116
  this.presetRoutes = routes;
117
+ this.proxyTarget = proxyTarget;
112
118
 
113
119
  if (staticGenerate) {
114
120
  this.staticGenerate = staticGenerate;
@@ -122,7 +128,9 @@ export class ModernServer {
122
128
  }
123
129
 
124
130
  // server prepare
125
- public async init() {
131
+ public async init(runner: ServerHookRunner) {
132
+ this.runner = runner;
133
+
126
134
  const { distDir, isDev, staticGenerate, conf } = this;
127
135
 
128
136
  this.addHandler((ctx: ModernServerContext, next: NextFunction) => {
@@ -198,16 +206,14 @@ export class ModernServer {
198
206
  reader.close();
199
207
  }
200
208
 
201
- // warmup ssr function
202
- protected warmupSSRBundle() {
203
- const { distDir } = this;
204
- const bundles = this.router.getBundles();
205
-
206
- bundles.forEach(bundle => {
207
- const filepath = path.join(distDir, bundle!);
208
- // if error, just throw and let process die
209
- require(filepath);
210
- });
209
+ public async createHTTPServer(
210
+ handler: (
211
+ req: IncomingMessage,
212
+ res: ServerResponse,
213
+ next?: () => void,
214
+ ) => void,
215
+ ) {
216
+ return createServer(handler);
211
217
  }
212
218
 
213
219
  // read route spec from route.json
@@ -241,9 +247,6 @@ export class ModernServer {
241
247
  protected async prepareFrameHandler() {
242
248
  const { workDir, runner } = this;
243
249
 
244
- // inner tool, gather user inject
245
- const { api: userAPIExt, web: userWebExt } = gather(workDir);
246
-
247
250
  // server hook, gather plugin inject
248
251
  const { getMiddlewares, ...collector } = createMiddlewareCollecter();
249
252
 
@@ -255,7 +258,7 @@ export class ModernServer {
255
258
 
256
259
  // get api or web server handler from server-framework plugin
257
260
  if (await fs.pathExists(path.join(serverDir))) {
258
- const webExtension = mergeExtension(pluginWebExt, userWebExt);
261
+ const webExtension = mergeExtension(pluginWebExt);
259
262
  this.frameWebHandler = await this.prepareWebHandler(webExtension);
260
263
  }
261
264
 
@@ -265,14 +268,16 @@ export class ModernServer {
265
268
  : ApiServerMode.func;
266
269
 
267
270
  // if use lambda/, mean framework style of writing, then discard user extension
268
- const apiExtension = mergeExtension(
269
- pluginAPIExt,
270
- mode === ApiServerMode.frame ? [] : userAPIExt,
271
- );
271
+ const apiExtension = mergeExtension(pluginAPIExt);
272
272
  this.frameAPIHandler = await this.prepareAPIHandler(mode, apiExtension);
273
273
  }
274
274
  }
275
275
 
276
+ // Todo
277
+ protected async proxy() {
278
+ return null as any;
279
+ }
280
+
276
281
  /* —————————————————————— function will be overwrite —————————————————————— */
277
282
  protected async prepareWebHandler(
278
283
  extension: ReturnType<typeof mergeExtension>,
@@ -290,7 +295,7 @@ export class ModernServer {
290
295
 
291
296
  protected async prepareAPIHandler(
292
297
  mode: ApiServerMode,
293
- extension: ReturnType<typeof mergeExtension>,
298
+ extension: APIServerStartInput['config'],
294
299
  ) {
295
300
  const { workDir, runner, conf } = this;
296
301
  const { bff } = conf as ConfWithBFF;
@@ -301,7 +306,7 @@ export class ModernServer {
301
306
  pwd: workDir,
302
307
  mode,
303
308
  config: extension,
304
- prefix,
309
+ prefix: Array.isArray(prefix) ? prefix[0] : prefix,
305
310
  },
306
311
  { onLast: () => null as any },
307
312
  );
@@ -311,62 +316,89 @@ export class ModernServer {
311
316
  return routes;
312
317
  }
313
318
 
319
+ protected async emitRouteHook(
320
+ eventName: 'beforeMatch' | 'afterMatch' | 'beforeRender' | 'afterRender',
321
+ input: any,
322
+ ) {
323
+ return this.runner[eventName](input, { onLast: noop as any });
324
+ }
325
+
326
+ // warmup ssr function
327
+ protected warmupSSRBundle() {
328
+ const { distDir } = this;
329
+ const bundles = this.router.getBundles();
330
+
331
+ bundles.forEach(bundle => {
332
+ const filepath = path.join(distDir, bundle as string);
333
+ // if error, just throw and let process die
334
+ require(filepath);
335
+ });
336
+ }
337
+
314
338
  protected async preServerInit() {
315
- const { conf } = this;
339
+ const { conf, runner } = this;
316
340
  const preMiddleware: ModernServerAsyncHandler[] =
317
- await this.runner.preServerInit(conf);
341
+ await runner.preServerInit(conf);
318
342
 
319
- preMiddleware.forEach(mid => {
343
+ preMiddleware.flat().forEach(mid => {
320
344
  this.addHandler(mid);
321
345
  });
322
346
  }
323
347
 
324
- private prepareFavicons(
325
- favicon: string | undefined,
326
- faviconByEntries?: Record<string, string | undefined>,
327
- ) {
328
- const faviconNames = [];
329
- if (favicon) {
330
- faviconNames.push(favicon.substring(favicon.lastIndexOf('/') + 1));
331
- }
332
- if (faviconByEntries) {
333
- Object.keys(faviconByEntries).forEach(f => {
334
- const curFavicon = faviconByEntries[f];
335
- if (curFavicon) {
336
- faviconNames.push(
337
- curFavicon.substring(curFavicon.lastIndexOf('/') + 1),
338
- );
339
- }
340
- });
348
+ protected async handleAPI(context: ModernServerContext) {
349
+ const { req, res } = context;
350
+
351
+ if (!this.frameAPIHandler) {
352
+ throw new Error('can not found api hanlder');
341
353
  }
342
- return faviconNames;
354
+
355
+ await this.frameAPIHandler(req, res);
343
356
  }
344
357
 
345
- /* —————————————————————— private function —————————————————————— */
358
+ protected async handleWeb(context: ModernServerContext, route: ModernRoute) {
359
+ return this.routeRenderHandler(context, route);
360
+ }
361
+
362
+ protected verifyMatch(_c: ModernServerContext, _m: RouteMatcher) {
363
+ // empty
364
+ }
346
365
 
366
+ /* —————————————————————— private function —————————————————————— */
347
367
  // handler route.json, include api / csr / ssr
348
368
  // eslint-disable-next-line max-statements
349
369
  private async routeHandler(context: ModernServerContext) {
350
370
  const { req, res } = context;
351
371
 
372
+ await this.emitRouteHook('beforeMatch', { context });
373
+
352
374
  // match routes in the route spec
353
375
  const matched = this.router.match(context.url);
354
376
  if (!matched) {
355
377
  this.render404(context);
356
378
  return;
379
+ } else {
380
+ this.verifyMatch(context, matched);
357
381
  }
358
382
 
359
- const route = matched.generate();
360
- const params = matched.parseURLParams(context.url);
383
+ if (res.headersSent) {
384
+ return;
385
+ }
386
+
387
+ const routeAPI = createRouteAPI(matched, this.router);
388
+ await this.emitRouteHook('afterMatch', { context, routeAPI });
389
+
390
+ if (res.headersSent) {
391
+ return;
392
+ }
393
+
394
+ const { current } = routeAPI as any;
395
+ const route: ModernRoute = current.generate();
396
+ const params = current.parseURLParams(context.url);
361
397
  context.setParams(params);
362
398
 
363
399
  // route is api service
364
400
  if (route.isApi) {
365
- if (!this.frameAPIHandler) {
366
- throw new Error('can not found api hanlder');
367
- }
368
-
369
- await this.frameAPIHandler(req, res);
401
+ this.handleAPI(context);
370
402
  return;
371
403
  }
372
404
 
@@ -379,7 +411,11 @@ export class ModernServer {
379
411
  return;
380
412
  }
381
413
 
382
- const file = await this.routeRenderHandler(context, route);
414
+ if (route.entryName) {
415
+ await this.emitRouteHook('beforeRender', { context });
416
+ }
417
+
418
+ const file = await this.handleWeb(context, route);
383
419
  if (!file) {
384
420
  this.render404(context);
385
421
  return;
@@ -395,10 +431,7 @@ export class ModernServer {
395
431
  let response = file.content;
396
432
  if (route.entryName) {
397
433
  const templateAPI = createTemplateAPI(file.content.toString());
398
- await this.runner.afterRender(
399
- { context, templateAPI },
400
- { onLast: noop as any },
401
- );
434
+ await this.emitRouteHook('afterRender', { context, templateAPI });
402
435
  await this.injectMicroFE(context, templateAPI);
403
436
  response = templateAPI.get();
404
437
  }
@@ -561,5 +594,26 @@ export class ModernServer {
561
594
  const text = ERROR_PAGE_TEXT[status] || ERROR_PAGE_TEXT[500];
562
595
  res.end(createErrorDocument(status, text));
563
596
  }
597
+
598
+ private prepareFavicons(
599
+ favicon: string | undefined,
600
+ faviconByEntries?: Record<string, string | undefined>,
601
+ ) {
602
+ const faviconNames = [];
603
+ if (favicon) {
604
+ faviconNames.push(favicon.substring(favicon.lastIndexOf('/') + 1));
605
+ }
606
+ if (faviconByEntries) {
607
+ Object.keys(faviconByEntries).forEach(f => {
608
+ const curFavicon = faviconByEntries[f];
609
+ if (curFavicon) {
610
+ faviconNames.push(
611
+ curFavicon.substring(curFavicon.lastIndexOf('/') + 1),
612
+ );
613
+ }
614
+ });
615
+ }
616
+ return faviconNames;
617
+ }
564
618
  }
565
619
  /* eslint-enable max-lines */
package/src/type.ts CHANGED
@@ -49,7 +49,12 @@ export type ModernServerOptions = {
49
49
  logger?: Logger;
50
50
  measure?: Measure;
51
51
  apiOnly?: boolean;
52
+ ssrOnly?: boolean;
52
53
  webOnly?: boolean;
54
+ proxyTarget?: {
55
+ ssr?: string;
56
+ api?: string;
57
+ };
53
58
  };
54
59
 
55
60
  export type RenderResult = {
package/src/utils.ts CHANGED
@@ -1,6 +1,6 @@
1
- export const mergeExtension = (users: any[], plugins: any[]) => {
1
+ export const mergeExtension = (users: any[]) => {
2
2
  const output: any[] = [];
3
- return { middleware: output.concat(users).concat(plugins) };
3
+ return { middleware: output.concat(users) };
4
4
  };
5
5
 
6
6
  export const toMessage = (dig: string, e: Error | string): string => {
@@ -49,3 +49,17 @@ export const createErrorDocument = (status: number, text: string) => {
49
49
  </html>
50
50
  `;
51
51
  };
52
+
53
+ // This can live anywhere in your codebase:
54
+ export function applyMixins(derivedCtor: any, constructors: any[]) {
55
+ constructors.forEach(baseCtor => {
56
+ Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
57
+ Object.defineProperty(
58
+ derivedCtor.prototype,
59
+ name,
60
+ Object.getOwnPropertyDescriptor(baseCtor.prototype, name) ||
61
+ Object.create(null),
62
+ );
63
+ });
64
+ });
65
+ }
@@ -1,36 +0,0 @@
1
- import { ModernDevServer } from "./dev-server";
2
- import { ModernServer } from "./modern-server";
3
- export class APIModernServer extends ModernServer {
4
- prepareWebHandler(_) {
5
- return null;
6
- }
7
-
8
- async prepareAPIHandler(mode, extension) {
9
- return super.prepareAPIHandler(mode, extension);
10
- }
11
-
12
- filterRoutes(routes) {
13
- return routes.filter(route => route.isApi);
14
- }
15
-
16
- async preServerInit() {// noop
17
- }
18
-
19
- }
20
- export class APIModernDevServer extends ModernDevServer {
21
- prepareWebHandler(_) {
22
- return null;
23
- }
24
-
25
- async prepareAPIHandler(mode, extension) {
26
- return super.prepareAPIHandler(mode, extension);
27
- }
28
-
29
- filterRoutes(routes) {
30
- return routes.filter(route => route.isApi);
31
- }
32
-
33
- async preServerInit() {// noop
34
- }
35
-
36
- }
@@ -1,30 +0,0 @@
1
- import { ModernDevServer } from "./dev-server";
2
- import { ModernServer } from "./modern-server";
3
- export class WebModernServer extends ModernServer {
4
- prepareAPIHandler(_m, _) {
5
- return null;
6
- }
7
-
8
- async prepareWebHandler(extension) {
9
- return super.prepareWebHandler(extension);
10
- }
11
-
12
- filterRoutes(routes) {
13
- return routes.filter(route => route.entryName);
14
- }
15
-
16
- }
17
- export class WebModernDevServer extends ModernDevServer {
18
- prepareAPIHandler(_m, _) {
19
- return null;
20
- }
21
-
22
- async prepareWebHandler(extension) {
23
- return super.prepareWebHandler(extension);
24
- }
25
-
26
- filterRoutes(routes) {
27
- return routes.filter(route => route.entryName);
28
- }
29
-
30
- }
@@ -1,50 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.APIModernServer = exports.APIModernDevServer = void 0;
7
-
8
- var _devServer = require("./dev-server");
9
-
10
- var _modernServer = require("./modern-server");
11
-
12
- class APIModernServer extends _modernServer.ModernServer {
13
- prepareWebHandler(_) {
14
- return null;
15
- }
16
-
17
- async prepareAPIHandler(mode, extension) {
18
- return super.prepareAPIHandler(mode, extension);
19
- }
20
-
21
- filterRoutes(routes) {
22
- return routes.filter(route => route.isApi);
23
- }
24
-
25
- async preServerInit() {// noop
26
- }
27
-
28
- }
29
-
30
- exports.APIModernServer = APIModernServer;
31
-
32
- class APIModernDevServer extends _devServer.ModernDevServer {
33
- prepareWebHandler(_) {
34
- return null;
35
- }
36
-
37
- async prepareAPIHandler(mode, extension) {
38
- return super.prepareAPIHandler(mode, extension);
39
- }
40
-
41
- filterRoutes(routes) {
42
- return routes.filter(route => route.isApi);
43
- }
44
-
45
- async preServerInit() {// noop
46
- }
47
-
48
- }
49
-
50
- exports.APIModernDevServer = APIModernDevServer;
@@ -1,44 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.WebModernServer = exports.WebModernDevServer = void 0;
7
-
8
- var _devServer = require("./dev-server");
9
-
10
- var _modernServer = require("./modern-server");
11
-
12
- class WebModernServer extends _modernServer.ModernServer {
13
- prepareAPIHandler(_m, _) {
14
- return null;
15
- }
16
-
17
- async prepareWebHandler(extension) {
18
- return super.prepareWebHandler(extension);
19
- }
20
-
21
- filterRoutes(routes) {
22
- return routes.filter(route => route.entryName);
23
- }
24
-
25
- }
26
-
27
- exports.WebModernServer = WebModernServer;
28
-
29
- class WebModernDevServer extends _devServer.ModernDevServer {
30
- prepareAPIHandler(_m, _) {
31
- return null;
32
- }
33
-
34
- async prepareWebHandler(extension) {
35
- return super.prepareWebHandler(extension);
36
- }
37
-
38
- filterRoutes(routes) {
39
- return routes.filter(route => route.entryName);
40
- }
41
-
42
- }
43
-
44
- exports.WebModernDevServer = WebModernDevServer;
@@ -1,17 +0,0 @@
1
- import { ModernDevServer } from './dev-server';
2
- import { ModernServer } from './modern-server';
3
- import { mergeExtension } from "../utils.d";
4
- import { ModernRouteInterface } from "../libs/route";
5
- import { ApiServerMode } from "../constants.d";
6
- export declare class APIModernServer extends ModernServer {
7
- protected prepareWebHandler(_: ReturnType<typeof mergeExtension>): any;
8
- protected prepareAPIHandler(mode: ApiServerMode, extension: ReturnType<typeof mergeExtension>): Promise<import("@modern-js/server-plugin").Adapter>;
9
- protected filterRoutes(routes: ModernRouteInterface[]): ModernRouteInterface[];
10
- protected preServerInit(): Promise<void>;
11
- }
12
- export declare class APIModernDevServer extends ModernDevServer {
13
- protected prepareWebHandler(_: ReturnType<typeof mergeExtension>): any;
14
- protected prepareAPIHandler(mode: ApiServerMode, extension: ReturnType<typeof mergeExtension>): Promise<import("@modern-js/server-plugin").Adapter>;
15
- protected filterRoutes(routes: ModernRouteInterface[]): ModernRouteInterface[];
16
- protected preServerInit(): Promise<void>;
17
- }
@@ -1,15 +0,0 @@
1
- import { ModernDevServer } from './dev-server';
2
- import { ModernServer } from './modern-server';
3
- import { mergeExtension } from "../utils.d";
4
- import { ModernRouteInterface } from "../libs/route";
5
- import { ApiServerMode } from "../constants.d";
6
- export declare class WebModernServer extends ModernServer {
7
- protected prepareAPIHandler(_m: ApiServerMode, _: ReturnType<typeof mergeExtension>): any;
8
- protected prepareWebHandler(extension: ReturnType<typeof mergeExtension>): Promise<import("@modern-js/server-plugin").Adapter>;
9
- protected filterRoutes(routes: ModernRouteInterface[]): ModernRouteInterface[];
10
- }
11
- export declare class WebModernDevServer extends ModernDevServer {
12
- protected prepareAPIHandler(_m: ApiServerMode, _: ReturnType<typeof mergeExtension>): any;
13
- protected prepareWebHandler(extension: ReturnType<typeof mergeExtension>): Promise<import("@modern-js/server-plugin").Adapter>;
14
- protected filterRoutes(routes: ModernRouteInterface[]): ModernRouteInterface[];
15
- }
@@ -1,47 +0,0 @@
1
- import { ModernDevServer } from './dev-server';
2
- import { ModernServer } from './modern-server';
3
- import { mergeExtension } from '@/utils';
4
- import { ModernRouteInterface } from '@/libs/route';
5
- import { ApiServerMode } from '@/constants';
6
-
7
- export class APIModernServer extends ModernServer {
8
- protected prepareWebHandler(_: ReturnType<typeof mergeExtension>) {
9
- return null as any;
10
- }
11
-
12
- protected async prepareAPIHandler(
13
- mode: ApiServerMode,
14
- extension: ReturnType<typeof mergeExtension>,
15
- ) {
16
- return super.prepareAPIHandler(mode, extension);
17
- }
18
-
19
- protected filterRoutes(routes: ModernRouteInterface[]) {
20
- return routes.filter(route => route.isApi);
21
- }
22
-
23
- protected async preServerInit() {
24
- // noop
25
- }
26
- }
27
-
28
- export class APIModernDevServer extends ModernDevServer {
29
- protected prepareWebHandler(_: ReturnType<typeof mergeExtension>) {
30
- return null as any;
31
- }
32
-
33
- protected async prepareAPIHandler(
34
- mode: ApiServerMode,
35
- extension: ReturnType<typeof mergeExtension>,
36
- ) {
37
- return super.prepareAPIHandler(mode, extension);
38
- }
39
-
40
- protected filterRoutes(routes: ModernRouteInterface[]) {
41
- return routes.filter(route => route.isApi);
42
- }
43
-
44
- protected async preServerInit() {
45
- // noop
46
- }
47
- }