@modern-js/server 1.1.3 → 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 +23 -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/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/server/dev-server/dev-server-split.js +2 -6
- package/dist/js/modern/server/dev-server/index.js +1 -1
- package/dist/js/modern/server/index.js +15 -13
- package/dist/js/modern/server/modern-server-split.js +55 -6
- package/dist/js/modern/server/modern-server.js +84 -52
- package/dist/js/modern/utils.js +9 -1
- 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/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/server/dev-server/dev-server-split.js +5 -9
- package/dist/js/node/server/dev-server/index.js +4 -4
- package/dist/js/node/server/index.js +14 -12
- package/dist/js/node/server/modern-server-split.js +61 -9
- package/dist/js/node/server/modern-server.js +85 -53
- package/dist/js/node/utils.js +12 -2
- package/dist/types/server/dev-server/dev-server-split.d.ts +3 -4
- package/dist/types/server/dev-server/index.d.ts +1 -1
- package/dist/types/server/modern-server-split.d.ts +15 -5
- package/dist/types/server/modern-server.d.ts +13 -6
- package/dist/types/type.d.ts +5 -0
- package/dist/types/utils.d.ts +2 -1
- package/package.json +9 -8
- package/src/server/dev-server/dev-server-split.ts +3 -7
- package/src/server/dev-server/dev-server.ts +6 -10
- package/src/server/dev-server/index.ts +1 -1
- package/src/server/index.ts +19 -12
- package/src/server/modern-server-split.ts +59 -7
- package/src/server/modern-server.ts +95 -58
- package/src/type.ts +5 -0
- package/src/utils.ts +14 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# @modern-js/server
|
|
2
2
|
|
|
3
|
+
## 1.1.4-rc.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- d73ff455: support multi process product
|
|
8
|
+
- d73ff455: support multi process product
|
|
9
|
+
- d73ff455: support multi process product
|
|
10
|
+
- d73ff455: support multi process product
|
|
11
|
+
- d73ff455: support multi process product
|
|
12
|
+
- Updated dependencies [d927bc83]
|
|
13
|
+
- Updated dependencies [d73ff455]
|
|
14
|
+
- Updated dependencies [9c1ab865]
|
|
15
|
+
- Updated dependencies [d73ff455]
|
|
16
|
+
- Updated dependencies [d73ff455]
|
|
17
|
+
- Updated dependencies [d73ff455]
|
|
18
|
+
- Updated dependencies [d73ff455]
|
|
19
|
+
- @modern-js/utils@1.1.4-rc.0
|
|
20
|
+
- @modern-js/core@1.1.4-rc.0
|
|
21
|
+
- @modern-js/bff-utils@1.1.2-rc.0
|
|
22
|
+
- @modern-js/hmr-client@1.1.2-rc.0
|
|
23
|
+
- @modern-js/server-utils@1.1.3-rc.0
|
|
24
|
+
- @modern-js/server-plugin@1.1.2
|
|
25
|
+
|
|
3
26
|
## 1.1.3
|
|
4
27
|
|
|
5
28
|
### Patch Changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
1
|
+
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; }
|
|
2
2
|
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
3
|
+
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; }
|
|
4
4
|
|
|
5
5
|
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; }
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
1
|
+
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; }
|
|
2
2
|
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
3
|
+
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; }
|
|
4
4
|
|
|
5
5
|
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; }
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
1
|
+
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; }
|
|
2
2
|
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
3
|
+
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; }
|
|
4
4
|
|
|
5
5
|
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; }
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
1
|
+
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; }
|
|
2
2
|
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
3
|
+
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; }
|
|
4
4
|
|
|
5
5
|
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; }
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
1
|
+
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; }
|
|
2
2
|
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
3
|
+
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; }
|
|
4
4
|
|
|
5
5
|
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; }
|
|
6
6
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ModernDevServer } from "./dev-server";
|
|
2
|
-
export class
|
|
2
|
+
export class ModernSSRDevServer extends ModernDevServer {
|
|
3
3
|
prepareAPIHandler(_m, _) {
|
|
4
4
|
return null;
|
|
5
5
|
}
|
|
@@ -13,11 +13,7 @@ export class WebModernDevServer extends ModernDevServer {
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
}
|
|
16
|
-
export class
|
|
17
|
-
prepareWebHandler(_) {
|
|
18
|
-
return null;
|
|
19
|
-
}
|
|
20
|
-
|
|
16
|
+
export class ModernAPIDevServer extends ModernDevServer {
|
|
21
17
|
async prepareAPIHandler(mode, extension) {
|
|
22
18
|
return super.prepareAPIHandler(mode, extension);
|
|
23
19
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { ModernAPIDevServer, ModernSSRDevServer } from "./dev-server-split";
|
|
2
2
|
export { ModernDevServer } from "./dev-server";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
1
|
+
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; }
|
|
2
2
|
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
3
|
+
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; }
|
|
4
4
|
|
|
5
5
|
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; }
|
|
6
6
|
|
|
@@ -9,7 +9,7 @@ import { serverManager } from '@modern-js/server-plugin';
|
|
|
9
9
|
import { logger as defaultLogger } from '@modern-js/utils';
|
|
10
10
|
import { AppContext, initAppContext, initAppDir, loadUserConfig, ConfigContext } from '@modern-js/core';
|
|
11
11
|
import { ModernServer } from "./modern-server";
|
|
12
|
-
import {
|
|
12
|
+
import { ModernAPIServer, ModernSSRServer, ModernWebServer } from "./modern-server-split";
|
|
13
13
|
import { measure as defaultMeasure } from "../libs/measure";
|
|
14
14
|
export class Server {
|
|
15
15
|
constructor(options) {
|
|
@@ -79,9 +79,11 @@ export class Server {
|
|
|
79
79
|
} = this;
|
|
80
80
|
|
|
81
81
|
if (options.apiOnly) {
|
|
82
|
-
return new
|
|
82
|
+
return new ModernAPIServer(options);
|
|
83
|
+
} else if (options.ssrOnly) {
|
|
84
|
+
return new ModernSSRServer(options);
|
|
83
85
|
} else if (options.webOnly) {
|
|
84
|
-
return new
|
|
86
|
+
return new ModernWebServer(options);
|
|
85
87
|
} else {
|
|
86
88
|
return new ModernServer(options);
|
|
87
89
|
}
|
|
@@ -93,15 +95,15 @@ export class Server {
|
|
|
93
95
|
} = this;
|
|
94
96
|
|
|
95
97
|
const {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
+
ModernAPIDevServer,
|
|
99
|
+
ModernSSRDevServer,
|
|
98
100
|
ModernDevServer
|
|
99
101
|
} = require("./dev-server");
|
|
100
102
|
|
|
101
103
|
if (options.apiOnly) {
|
|
102
|
-
return new
|
|
103
|
-
} else if (options.
|
|
104
|
-
return new
|
|
104
|
+
return new ModernAPIDevServer(options);
|
|
105
|
+
} else if (options.ssrOnly) {
|
|
106
|
+
return new ModernSSRDevServer(options);
|
|
105
107
|
} else {
|
|
106
108
|
return new ModernDevServer(options);
|
|
107
109
|
}
|
|
@@ -113,6 +115,9 @@ export class Server {
|
|
|
113
115
|
const {
|
|
114
116
|
options
|
|
115
117
|
} = this;
|
|
118
|
+
(_options$plugins = options.plugins) === null || _options$plugins === void 0 ? void 0 : _options$plugins.forEach(p => {
|
|
119
|
+
serverManager.usePlugin(p);
|
|
120
|
+
});
|
|
116
121
|
const appContext = await this.initAppContext();
|
|
117
122
|
serverManager.run(() => {
|
|
118
123
|
ConfigContext.set(this.options.config);
|
|
@@ -120,9 +125,6 @@ export class Server {
|
|
|
120
125
|
distDirectory: path.join(options.pwd, options.config.output.path || 'dist')
|
|
121
126
|
}));
|
|
122
127
|
});
|
|
123
|
-
(_options$plugins = options.plugins) === null || _options$plugins === void 0 ? void 0 : _options$plugins.forEach(p => {
|
|
124
|
-
serverManager.usePlugin(p);
|
|
125
|
-
});
|
|
126
128
|
return serverManager.init({});
|
|
127
129
|
}
|
|
128
130
|
|
|
@@ -1,19 +1,37 @@
|
|
|
1
1
|
import { ModernServer } from "./modern-server";
|
|
2
|
-
export class
|
|
2
|
+
export class ModernSSRServer extends ModernServer {
|
|
3
|
+
// Todo should not invoke any route hook in modernSSRServer
|
|
4
|
+
async warmupSSRBundle() {// empty
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
verifyMatch(context, matched) {
|
|
8
|
+
if (matched.generate().isApi) {
|
|
9
|
+
this.render404(context);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
3
13
|
prepareAPIHandler(_m, _) {
|
|
4
14
|
return null;
|
|
5
15
|
}
|
|
6
16
|
|
|
7
17
|
async prepareWebHandler(extension) {
|
|
8
18
|
return super.prepareWebHandler(extension);
|
|
9
|
-
}
|
|
19
|
+
} // protected filterRoutes(routes: ModernRouteInterface[]) {
|
|
20
|
+
// return routes.filter(route => route.entryName);
|
|
21
|
+
// }
|
|
10
22
|
|
|
11
|
-
|
|
12
|
-
|
|
23
|
+
|
|
24
|
+
async preServerInit() {// empty
|
|
13
25
|
}
|
|
14
26
|
|
|
15
27
|
}
|
|
16
|
-
export class
|
|
28
|
+
export class ModernAPIServer extends ModernServer {
|
|
29
|
+
async emitRouteHook(_, _input) {// empty
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
async warmupSSRBundle() {// empty
|
|
33
|
+
}
|
|
34
|
+
|
|
17
35
|
prepareWebHandler(_) {
|
|
18
36
|
return null;
|
|
19
37
|
}
|
|
@@ -26,7 +44,38 @@ export class APIModernServer extends ModernServer {
|
|
|
26
44
|
return routes.filter(route => route.isApi);
|
|
27
45
|
}
|
|
28
46
|
|
|
29
|
-
async preServerInit() {//
|
|
47
|
+
async preServerInit() {// empty
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
}
|
|
51
|
+
export class ModernWebServer extends ModernServer {
|
|
52
|
+
async warmupSSRBundle() {// empty
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
async handleAPI(context) {
|
|
56
|
+
const {
|
|
57
|
+
proxyTarget
|
|
58
|
+
} = this;
|
|
59
|
+
|
|
60
|
+
if (!(proxyTarget !== null && proxyTarget !== void 0 && proxyTarget.api)) {
|
|
61
|
+
this.proxy();
|
|
62
|
+
} else {
|
|
63
|
+
this.render404(context);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
async handleWeb(context, route) {
|
|
68
|
+
const {
|
|
69
|
+
proxyTarget
|
|
70
|
+
} = this;
|
|
71
|
+
|
|
72
|
+
if (route.isSSR && proxyTarget !== null && proxyTarget !== void 0 && proxyTarget.ssr) {
|
|
73
|
+
return this.proxy();
|
|
74
|
+
} else {
|
|
75
|
+
// if no proxyTarget but access web server, degradation to csr
|
|
76
|
+
route.isSSR = false;
|
|
77
|
+
return super.handleWeb(context, route);
|
|
78
|
+
}
|
|
30
79
|
}
|
|
31
80
|
|
|
32
81
|
}
|
|
@@ -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
|
|
|
@@ -41,7 +41,8 @@ export class ModernServer {
|
|
|
41
41
|
routes,
|
|
42
42
|
staticGenerate,
|
|
43
43
|
logger,
|
|
44
|
-
measure
|
|
44
|
+
measure,
|
|
45
|
+
proxyTarget
|
|
45
46
|
}) {
|
|
46
47
|
this.pwd = void 0;
|
|
47
48
|
this.distDir = void 0;
|
|
@@ -53,6 +54,7 @@ export class ModernServer {
|
|
|
53
54
|
this.runner = void 0;
|
|
54
55
|
this.logger = void 0;
|
|
55
56
|
this.measure = 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
75
|
this.measure = measure;
|
|
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,54 @@ 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
|
|
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
|
-
|
|
288
|
-
const
|
|
302
|
+
async handleAPI(context) {
|
|
303
|
+
const {
|
|
304
|
+
req,
|
|
305
|
+
res
|
|
306
|
+
} = context;
|
|
289
307
|
|
|
290
|
-
if (
|
|
291
|
-
|
|
308
|
+
if (!this.frameAPIHandler) {
|
|
309
|
+
throw new Error('can not found api hanlder');
|
|
292
310
|
}
|
|
293
311
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
const curFavicon = faviconByEntries[f];
|
|
312
|
+
await this.frameAPIHandler(req, res);
|
|
313
|
+
}
|
|
297
314
|
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
});
|
|
302
|
-
}
|
|
315
|
+
async handleWeb(context, route) {
|
|
316
|
+
return this.routeRenderHandler(context, route);
|
|
317
|
+
}
|
|
303
318
|
|
|
304
|
-
|
|
319
|
+
verifyMatch(_c, _m) {// empty
|
|
305
320
|
}
|
|
306
321
|
/* —————————————————————— private function —————————————————————— */
|
|
307
322
|
// handler route.json, include api / csr / ssr
|
|
@@ -313,10 +328,8 @@ export class ModernServer {
|
|
|
313
328
|
req,
|
|
314
329
|
res
|
|
315
330
|
} = context;
|
|
316
|
-
await this.
|
|
331
|
+
await this.emitRouteHook('beforeMatch', {
|
|
317
332
|
context
|
|
318
|
-
}, {
|
|
319
|
-
onLast: noop
|
|
320
333
|
}); // match routes in the route spec
|
|
321
334
|
|
|
322
335
|
const matched = this.router.match(context.url);
|
|
@@ -324,14 +337,18 @@ export class ModernServer {
|
|
|
324
337
|
if (!matched) {
|
|
325
338
|
this.render404(context);
|
|
326
339
|
return;
|
|
340
|
+
} else {
|
|
341
|
+
this.verifyMatch(context, matched);
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
if (res.headersSent) {
|
|
345
|
+
return;
|
|
327
346
|
}
|
|
328
347
|
|
|
329
348
|
const routeAPI = createRouteAPI(matched, this.router);
|
|
330
|
-
await this.
|
|
349
|
+
await this.emitRouteHook('afterMatch', {
|
|
331
350
|
context,
|
|
332
351
|
routeAPI
|
|
333
|
-
}, {
|
|
334
|
-
onLast: noop
|
|
335
352
|
});
|
|
336
353
|
|
|
337
354
|
if (res.headersSent) {
|
|
@@ -346,11 +363,7 @@ export class ModernServer {
|
|
|
346
363
|
context.setParams(params); // route is api service
|
|
347
364
|
|
|
348
365
|
if (route.isApi) {
|
|
349
|
-
|
|
350
|
-
throw new Error('can not found api hanlder');
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
await this.frameAPIHandler(req, res);
|
|
366
|
+
this.handleAPI(context);
|
|
354
367
|
return;
|
|
355
368
|
}
|
|
356
369
|
|
|
@@ -363,12 +376,13 @@ export class ModernServer {
|
|
|
363
376
|
return;
|
|
364
377
|
}
|
|
365
378
|
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
}
|
|
371
|
-
|
|
379
|
+
if (route.entryName) {
|
|
380
|
+
await this.emitRouteHook('beforeRender', {
|
|
381
|
+
context
|
|
382
|
+
});
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
const file = await this.handleWeb(context, route);
|
|
372
386
|
|
|
373
387
|
if (!file) {
|
|
374
388
|
this.render404(context);
|
|
@@ -386,11 +400,9 @@ export class ModernServer {
|
|
|
386
400
|
|
|
387
401
|
if (route.entryName) {
|
|
388
402
|
const templateAPI = createTemplateAPI(file.content.toString());
|
|
389
|
-
await this.
|
|
403
|
+
await this.emitRouteHook('afterRender', {
|
|
390
404
|
context,
|
|
391
405
|
templateAPI
|
|
392
|
-
}, {
|
|
393
|
-
onLast: noop
|
|
394
406
|
});
|
|
395
407
|
await this.injectMicroFE(context, templateAPI);
|
|
396
408
|
response = templateAPI.get();
|
|
@@ -558,5 +570,25 @@ export class ModernServer {
|
|
|
558
570
|
res.end(createErrorDocument(status, text));
|
|
559
571
|
}
|
|
560
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
|
+
|
|
561
593
|
}
|
|
562
594
|
/* eslint-enable max-lines */
|
package/dist/js/modern/utils.js
CHANGED
|
@@ -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
|
|
|
@@ -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
|
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.ModernSSRDevServer = exports.ModernAPIDevServer = void 0;
|
|
7
7
|
|
|
8
8
|
var _devServer = require("./dev-server");
|
|
9
9
|
|
|
10
|
-
class
|
|
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.
|
|
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.
|
|
41
|
+
exports.ModernAPIDevServer = ModernAPIDevServer;
|