@modern-js/server 1.1.3-beta.0 → 1.1.4
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 +42 -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/libs/render/cache/type.js +0 -1
- package/dist/js/modern/server/dev-server/dev-server-split.js +2 -6
- package/dist/js/modern/server/dev-server/dev-server.js +1 -1
- package/dist/js/modern/server/dev-server/index.js +1 -1
- package/dist/js/modern/server/index.js +17 -14
- package/dist/js/modern/server/modern-server-split.js +55 -6
- package/dist/js/modern/server/modern-server.js +85 -55
- package/dist/js/modern/type.js +0 -1
- 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/dev-server.js +1 -1
- package/dist/js/node/server/dev-server/index.js +4 -4
- package/dist/js/node/server/index.js +16 -12
- package/dist/js/node/server/modern-server-split.js +61 -9
- package/dist/js/node/server/modern-server.js +86 -56
- 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 +17 -18
- package/src/server/dev-server/dev-server-split.ts +3 -7
- package/src/server/dev-server/dev-server.ts +7 -11
- package/src/server/dev-server/index.ts +1 -1
- package/src/server/index.ts +22 -12
- package/src/server/modern-server-split.ts +59 -7
- package/src/server/modern-server.ts +96 -62
- package/src/type.ts +5 -0
- package/src/utils.ts +14 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,47 @@
|
|
|
1
1
|
# @modern-js/server
|
|
2
2
|
|
|
3
|
+
## 1.1.4
|
|
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
|
|
20
|
+
- @modern-js/core@1.1.4
|
|
21
|
+
|
|
22
|
+
## 1.1.3
|
|
23
|
+
|
|
24
|
+
### Patch Changes
|
|
25
|
+
|
|
26
|
+
- 085a6a58: refactor server plugin
|
|
27
|
+
- 085a6a58: refactor server plugin
|
|
28
|
+
- 085a6a58: refactor server conifg
|
|
29
|
+
- 085a6a58: support server runtime
|
|
30
|
+
- 085a6a58: feat: refactor server plugin
|
|
31
|
+
- Updated dependencies [085a6a58]
|
|
32
|
+
- Updated dependencies [085a6a58]
|
|
33
|
+
- Updated dependencies [085a6a58]
|
|
34
|
+
- Updated dependencies [d280ea33]
|
|
35
|
+
- Updated dependencies [d4fcc73a]
|
|
36
|
+
- Updated dependencies [085a6a58]
|
|
37
|
+
- Updated dependencies [ed1f6b12]
|
|
38
|
+
- Updated dependencies [a5ebbb00]
|
|
39
|
+
- Updated dependencies [085a6a58]
|
|
40
|
+
- @modern-js/core@1.1.3
|
|
41
|
+
- @modern-js/server-plugin@1.1.2
|
|
42
|
+
- @modern-js/server-utils@1.1.2
|
|
43
|
+
- @modern-js/utils@1.1.3
|
|
44
|
+
|
|
3
45
|
## 1.1.2
|
|
4
46
|
|
|
5
47
|
### 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
|
}
|
|
@@ -230,7 +230,7 @@ export class ModernDevServer extends ModernServer {
|
|
|
230
230
|
const {
|
|
231
231
|
mock
|
|
232
232
|
} = AGGRED_DIR;
|
|
233
|
-
const defaultWatched = [`${pwd}/${mock}/**/*`, `${pwd}/${SERVER_DIR}/**/*`, `${pwd}/${API_DIR}
|
|
233
|
+
const defaultWatched = [`${pwd}/${mock}/**/*`, `${pwd}/${SERVER_DIR}/**/*`, `${pwd}/${API_DIR}/!(typings)/**`, `${pwd}/${SHARED_DIR}/**/*`];
|
|
234
234
|
const watcher = new Watcher();
|
|
235
235
|
watcher.createDepTree(); // 监听文件变动,如果有变动则给 client,也就是 start 启动的插件发消息
|
|
236
236
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { ModernAPIDevServer, ModernSSRDevServer } from "./dev-server-split";
|
|
2
2
|
export { ModernDevServer } from "./dev-server";
|
|
@@ -1,15 +1,15 @@
|
|
|
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
|
|
|
7
7
|
import path from 'path';
|
|
8
8
|
import { serverManager } from '@modern-js/server-plugin';
|
|
9
9
|
import { logger as defaultLogger } from '@modern-js/utils';
|
|
10
|
-
import { AppContext, initAppContext, initAppDir, loadUserConfig } from '@modern-js/core';
|
|
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,15 +115,16 @@ 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(() => {
|
|
123
|
+
ConfigContext.set(this.options.config);
|
|
118
124
|
AppContext.set(_objectSpread(_objectSpread({}, appContext), {}, {
|
|
119
125
|
distDirectory: path.join(options.pwd, options.config.output.path || 'dist')
|
|
120
126
|
}));
|
|
121
127
|
});
|
|
122
|
-
(_options$plugins = options.plugins) === null || _options$plugins === void 0 ? void 0 : _options$plugins.forEach(p => {
|
|
123
|
-
serverManager.usePlugin(p);
|
|
124
|
-
});
|
|
125
128
|
return serverManager.init({});
|
|
126
129
|
}
|
|
127
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
|
|
|
@@ -231,10 +221,13 @@ export class ModernServer {
|
|
|
231
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
|
|
232
222
|
|
|
233
223
|
const apiExtension = mergeExtension(pluginAPIExt);
|
|
234
|
-
this.frameAPIHandler = await this.prepareAPIHandler(mode,
|
|
235
|
-
modernJsConfig: this.conf
|
|
236
|
-
}));
|
|
224
|
+
this.frameAPIHandler = await this.prepareAPIHandler(mode, apiExtension);
|
|
237
225
|
}
|
|
226
|
+
} // Todo
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
async proxy() {
|
|
230
|
+
return null;
|
|
238
231
|
}
|
|
239
232
|
/* —————————————————————— function will be overwrite —————————————————————— */
|
|
240
233
|
|
|
@@ -276,34 +269,54 @@ export class ModernServer {
|
|
|
276
269
|
return routes;
|
|
277
270
|
}
|
|
278
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
|
+
|
|
279
291
|
async preServerInit() {
|
|
280
292
|
const {
|
|
281
|
-
conf
|
|
293
|
+
conf,
|
|
294
|
+
runner
|
|
282
295
|
} = this;
|
|
283
|
-
const preMiddleware = await
|
|
296
|
+
const preMiddleware = await runner.preServerInit(conf);
|
|
284
297
|
preMiddleware.flat().forEach(mid => {
|
|
285
298
|
this.addHandler(mid);
|
|
286
299
|
});
|
|
287
300
|
}
|
|
288
301
|
|
|
289
|
-
|
|
290
|
-
const
|
|
302
|
+
async handleAPI(context) {
|
|
303
|
+
const {
|
|
304
|
+
req,
|
|
305
|
+
res
|
|
306
|
+
} = context;
|
|
291
307
|
|
|
292
|
-
if (
|
|
293
|
-
|
|
308
|
+
if (!this.frameAPIHandler) {
|
|
309
|
+
throw new Error('can not found api hanlder');
|
|
294
310
|
}
|
|
295
311
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
const curFavicon = faviconByEntries[f];
|
|
312
|
+
await this.frameAPIHandler(req, res);
|
|
313
|
+
}
|
|
299
314
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
});
|
|
304
|
-
}
|
|
315
|
+
async handleWeb(context, route) {
|
|
316
|
+
return this.routeRenderHandler(context, route);
|
|
317
|
+
}
|
|
305
318
|
|
|
306
|
-
|
|
319
|
+
verifyMatch(_c, _m) {// empty
|
|
307
320
|
}
|
|
308
321
|
/* —————————————————————— private function —————————————————————— */
|
|
309
322
|
// handler route.json, include api / csr / ssr
|
|
@@ -315,10 +328,8 @@ export class ModernServer {
|
|
|
315
328
|
req,
|
|
316
329
|
res
|
|
317
330
|
} = context;
|
|
318
|
-
await this.
|
|
331
|
+
await this.emitRouteHook('beforeMatch', {
|
|
319
332
|
context
|
|
320
|
-
}, {
|
|
321
|
-
onLast: noop
|
|
322
333
|
}); // match routes in the route spec
|
|
323
334
|
|
|
324
335
|
const matched = this.router.match(context.url);
|
|
@@ -326,14 +337,18 @@ export class ModernServer {
|
|
|
326
337
|
if (!matched) {
|
|
327
338
|
this.render404(context);
|
|
328
339
|
return;
|
|
340
|
+
} else {
|
|
341
|
+
this.verifyMatch(context, matched);
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
if (res.headersSent) {
|
|
345
|
+
return;
|
|
329
346
|
}
|
|
330
347
|
|
|
331
348
|
const routeAPI = createRouteAPI(matched, this.router);
|
|
332
|
-
await this.
|
|
349
|
+
await this.emitRouteHook('afterMatch', {
|
|
333
350
|
context,
|
|
334
351
|
routeAPI
|
|
335
|
-
}, {
|
|
336
|
-
onLast: noop
|
|
337
352
|
});
|
|
338
353
|
|
|
339
354
|
if (res.headersSent) {
|
|
@@ -348,11 +363,7 @@ export class ModernServer {
|
|
|
348
363
|
context.setParams(params); // route is api service
|
|
349
364
|
|
|
350
365
|
if (route.isApi) {
|
|
351
|
-
|
|
352
|
-
throw new Error('can not found api hanlder');
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
await this.frameAPIHandler(req, res);
|
|
366
|
+
this.handleAPI(context);
|
|
356
367
|
return;
|
|
357
368
|
}
|
|
358
369
|
|
|
@@ -365,12 +376,13 @@ export class ModernServer {
|
|
|
365
376
|
return;
|
|
366
377
|
}
|
|
367
378
|
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
}
|
|
373
|
-
|
|
379
|
+
if (route.entryName) {
|
|
380
|
+
await this.emitRouteHook('beforeRender', {
|
|
381
|
+
context
|
|
382
|
+
});
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
const file = await this.handleWeb(context, route);
|
|
374
386
|
|
|
375
387
|
if (!file) {
|
|
376
388
|
this.render404(context);
|
|
@@ -388,11 +400,9 @@ export class ModernServer {
|
|
|
388
400
|
|
|
389
401
|
if (route.entryName) {
|
|
390
402
|
const templateAPI = createTemplateAPI(file.content.toString());
|
|
391
|
-
await this.
|
|
403
|
+
await this.emitRouteHook('afterRender', {
|
|
392
404
|
context,
|
|
393
405
|
templateAPI
|
|
394
|
-
}, {
|
|
395
|
-
onLast: noop
|
|
396
406
|
});
|
|
397
407
|
await this.injectMicroFE(context, templateAPI);
|
|
398
408
|
response = templateAPI.get();
|
|
@@ -560,5 +570,25 @@ export class ModernServer {
|
|
|
560
570
|
res.end(createErrorDocument(status, text));
|
|
561
571
|
}
|
|
562
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
|
+
|
|
563
593
|
}
|
|
564
594
|
/* eslint-enable max-lines */
|
package/dist/js/modern/type.js
CHANGED
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
|
|