@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.
- package/CHANGELOG.md +46 -0
- package/dist/js/modern/dev-tools/babel/register.js +2 -2
- package/dist/js/modern/dev-tools/mock/getMockData.js +2 -2
- package/dist/js/modern/libs/hook-api/route.js +37 -0
- package/dist/js/modern/libs/{hook-api.js → hook-api/template.js} +0 -0
- package/dist/js/modern/libs/proxy.js +2 -2
- package/dist/js/modern/libs/render/cache/__tests__/cache.test.js +2 -2
- package/dist/js/modern/libs/render/cache/index.js +2 -2
- package/dist/js/modern/libs/render/cache/type.js +0 -1
- package/dist/js/modern/libs/route/index.js +4 -0
- package/dist/js/modern/libs/route/matcher.js +4 -0
- package/dist/js/modern/server/dev-server/dev-server-split.js +28 -0
- package/dist/js/modern/server/{dev-server.js → dev-server/dev-server.js} +41 -22
- package/dist/js/modern/server/dev-server/index.js +2 -0
- package/dist/js/modern/server/index.js +64 -62
- package/dist/js/modern/server/modern-server-split.js +81 -0
- package/dist/js/modern/server/modern-server.js +117 -59
- package/dist/js/modern/type.js +0 -1
- package/dist/js/modern/utils.js +11 -3
- package/dist/js/node/dev-tools/babel/register.js +2 -2
- package/dist/js/node/dev-tools/mock/getMockData.js +2 -2
- package/dist/js/node/libs/hook-api/route.js +46 -0
- package/dist/js/node/libs/{hook-api.js → hook-api/template.js} +0 -0
- package/dist/js/node/libs/proxy.js +2 -2
- package/dist/js/node/libs/render/cache/__tests__/cache.test.js +2 -2
- package/dist/js/node/libs/render/cache/index.js +2 -2
- package/dist/js/node/libs/route/index.js +4 -0
- package/dist/js/node/libs/route/matcher.js +4 -0
- package/dist/js/node/server/dev-server/dev-server-split.js +41 -0
- package/dist/js/node/server/{dev-server.js → dev-server/dev-server.js} +42 -21
- package/dist/js/node/server/dev-server/index.js +27 -0
- package/dist/js/node/server/index.js +71 -63
- package/dist/js/node/server/modern-server-split.js +97 -0
- package/dist/js/node/server/modern-server.js +120 -60
- package/dist/js/node/utils.js +14 -4
- package/dist/types/libs/hook-api/route.d.ts +13 -0
- package/dist/types/libs/{hook-api.d.ts → hook-api/template.d.ts} +0 -0
- package/dist/types/libs/route/index.d.ts +1 -0
- package/dist/types/libs/route/matcher.d.ts +1 -0
- package/dist/types/server/dev-server/dev-server-split.d.ts +15 -0
- package/dist/types/server/{dev-server.d.ts → dev-server/dev-server.d.ts} +6 -5
- package/dist/types/server/dev-server/index.d.ts +2 -0
- package/dist/types/server/index.d.ts +3 -1
- package/dist/types/server/modern-server-split.d.ts +26 -0
- package/dist/types/server/modern-server.d.ts +19 -11
- package/dist/types/type.d.ts +5 -0
- package/dist/types/utils.d.ts +3 -2
- package/package.json +12 -11
- package/src/libs/hook-api/route.ts +38 -0
- package/src/libs/{hook-api.ts → hook-api/template.ts} +0 -0
- package/src/libs/route/index.ts +4 -0
- package/src/libs/route/matcher.ts +4 -0
- package/src/server/{web-server.ts → dev-server/dev-server-split.ts} +12 -14
- package/src/server/{dev-server.ts → dev-server/dev-server.ts} +62 -33
- package/src/server/dev-server/index.ts +2 -0
- package/src/server/index.ts +80 -47
- package/src/server/modern-server-split.ts +97 -0
- package/src/server/modern-server.ts +135 -81
- package/src/type.ts +5 -0
- package/src/utils.ts +16 -2
- package/dist/js/modern/server/api-server.js +0 -36
- package/dist/js/modern/server/web-server.js +0 -30
- package/dist/js/node/server/api-server.js +0 -50
- package/dist/js/node/server/web-server.js +0 -44
- package/dist/types/server/api-server.d.ts +0 -17
- package/dist/types/server/web-server.d.ts +0 -15
- 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);
|
|
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]
|
|
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 {
|
|
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
|
-
|
|
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.
|
|
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
|
-
}
|
|
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
|
-
|
|
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; //
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
287
|
-
const
|
|
302
|
+
async handleAPI(context) {
|
|
303
|
+
const {
|
|
304
|
+
req,
|
|
305
|
+
res
|
|
306
|
+
} = context;
|
|
288
307
|
|
|
289
|
-
if (
|
|
290
|
-
|
|
308
|
+
if (!this.frameAPIHandler) {
|
|
309
|
+
throw new Error('can not found api hanlder');
|
|
291
310
|
}
|
|
292
311
|
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
const curFavicon = faviconByEntries[f];
|
|
312
|
+
await this.frameAPIHandler(req, res);
|
|
313
|
+
}
|
|
296
314
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
});
|
|
301
|
-
}
|
|
315
|
+
async handleWeb(context, route) {
|
|
316
|
+
return this.routeRenderHandler(context, route);
|
|
317
|
+
}
|
|
302
318
|
|
|
303
|
-
|
|
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;
|
|
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
|
-
|
|
324
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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 */
|
package/dist/js/modern/type.js
CHANGED
package/dist/js/modern/utils.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export const mergeExtension =
|
|
1
|
+
export const mergeExtension = users => {
|
|
2
2
|
const output = [];
|
|
3
3
|
return {
|
|
4
|
-
middleware: output.concat(users)
|
|
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);
|
|
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]
|
|
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);
|
|
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]
|
|
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;
|
|
File without changes
|
|
@@ -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);
|
|
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]
|
|
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);
|
|
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]
|
|
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);
|
|
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]
|
|
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;
|
|
@@ -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;
|