@modern-js/server 1.1.3 → 1.1.5-beta.1
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 +19 -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/context/context.js +15 -7
- package/dist/js/modern/libs/context/index.js +2 -2
- package/dist/js/modern/libs/{measure.js → metrics.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/index.js +6 -2
- package/dist/js/modern/libs/render/ssr.js +3 -2
- package/dist/js/modern/libs/route/route.js +1 -1
- package/dist/js/modern/server/dev-server/dev-server-split.js +2 -6
- package/dist/js/modern/server/dev-server/dev-server.js +11 -2
- package/dist/js/modern/server/dev-server/index.js +1 -1
- package/dist/js/modern/server/index.js +17 -15
- package/dist/js/modern/server/modern-server-split.js +55 -6
- package/dist/js/modern/server/modern-server.js +96 -56
- 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/context/context.js +15 -7
- package/dist/js/node/libs/context/index.js +2 -2
- package/dist/js/node/libs/{measure.js → metrics.js} +3 -3
- 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/render/index.js +6 -2
- package/dist/js/node/libs/render/ssr.js +3 -2
- package/dist/js/node/libs/route/route.js +1 -1
- package/dist/js/node/server/dev-server/dev-server-split.js +5 -9
- package/dist/js/node/server/dev-server/dev-server.js +11 -2
- package/dist/js/node/server/dev-server/index.js +4 -4
- package/dist/js/node/server/index.js +16 -14
- package/dist/js/node/server/modern-server-split.js +61 -9
- package/dist/js/node/server/modern-server.js +97 -57
- package/dist/js/node/utils.js +12 -2
- package/dist/types/libs/context/context.d.ts +5 -5
- package/dist/types/libs/context/index.d.ts +3 -3
- package/dist/types/libs/metrics.d.ts +3 -0
- package/dist/types/libs/render/index.d.ts +10 -1
- package/dist/types/libs/render/ssr.d.ts +2 -1
- package/dist/types/libs/render/type.d.ts +2 -21
- package/dist/types/libs/route/route.d.ts +2 -10
- 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 +14 -7
- package/dist/types/type.d.ts +11 -5
- package/dist/types/utils.d.ts +2 -1
- package/package.json +5 -5
- package/src/libs/context/context.ts +12 -8
- package/src/libs/context/index.ts +3 -3
- package/src/libs/{measure.ts → metrics.ts} +3 -3
- package/src/libs/render/index.ts +21 -11
- package/src/libs/render/ssr.ts +5 -1
- package/src/libs/render/type.ts +3 -16
- package/src/libs/route/route.ts +4 -20
- package/src/server/dev-server/dev-server-split.ts +3 -7
- package/src/server/dev-server/dev-server.ts +14 -12
- package/src/server/dev-server/index.ts +1 -1
- package/src/server/index.ts +21 -14
- package/src/server/modern-server-split.ts +59 -7
- package/src/server/modern-server.ts +109 -64
- package/src/type.ts +12 -5
- package/src/utils.ts +14 -0
- package/dist/types/libs/measure.d.ts +0 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
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
|
+
|
|
3
22
|
## 1.1.3
|
|
4
23
|
|
|
5
24
|
### 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
|
|
|
@@ -15,17 +15,29 @@ export class ModernServerContext {
|
|
|
15
15
|
*/
|
|
16
16
|
constructor(req, res, {
|
|
17
17
|
logger,
|
|
18
|
-
|
|
18
|
+
metrics
|
|
19
19
|
}) {
|
|
20
20
|
this.req = void 0;
|
|
21
21
|
this.res = void 0;
|
|
22
22
|
this.params = {};
|
|
23
23
|
this.logger = void 0;
|
|
24
|
-
this.
|
|
24
|
+
this.metrics = void 0;
|
|
25
25
|
this.req = req;
|
|
26
26
|
this.res = res;
|
|
27
27
|
this.logger = logger;
|
|
28
|
-
this.
|
|
28
|
+
this.metrics = metrics;
|
|
29
|
+
this.bind();
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
bind() {
|
|
33
|
+
const {
|
|
34
|
+
req,
|
|
35
|
+
res
|
|
36
|
+
} = this;
|
|
37
|
+
|
|
38
|
+
req.get = key => this.getReqHeader(key);
|
|
39
|
+
|
|
40
|
+
res.set = (key, value) => this.res.setHeader(key, value);
|
|
29
41
|
}
|
|
30
42
|
|
|
31
43
|
setParams(params) {
|
|
@@ -54,10 +66,6 @@ export class ModernServerContext {
|
|
|
54
66
|
return this.req.headers;
|
|
55
67
|
}
|
|
56
68
|
|
|
57
|
-
set headers(val) {
|
|
58
|
-
this.req.headers = val;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
69
|
get method() {
|
|
62
70
|
return this.req.method;
|
|
63
71
|
}
|
|
@@ -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
|
|
|
@@ -9,7 +9,11 @@ import { ERROR_DIGEST } from "../../constants";
|
|
|
9
9
|
export const createRenderHandler = ({
|
|
10
10
|
distDir,
|
|
11
11
|
staticGenerate
|
|
12
|
-
}) => async function render(
|
|
12
|
+
}) => async function render({
|
|
13
|
+
ctx,
|
|
14
|
+
route,
|
|
15
|
+
runner
|
|
16
|
+
}) {
|
|
13
17
|
if (ctx.resHasHandled()) {
|
|
14
18
|
return null;
|
|
15
19
|
}
|
|
@@ -39,7 +43,7 @@ export const createRenderHandler = ({
|
|
|
39
43
|
bundle: route.bundle,
|
|
40
44
|
template: templateHTML,
|
|
41
45
|
staticGenerate
|
|
42
|
-
});
|
|
46
|
+
}, runner);
|
|
43
47
|
return result;
|
|
44
48
|
} catch (err) {
|
|
45
49
|
ctx.error(ERROR_DIGEST.ERENDER, err.stack);
|
|
@@ -2,7 +2,7 @@ import path from 'path';
|
|
|
2
2
|
import { SERVER_RENDER_FUNCTION_NAME } from '@modern-js/utils';
|
|
3
3
|
import mime from 'mime-types';
|
|
4
4
|
import cache from "./cache";
|
|
5
|
-
export const render = async (ctx, renderOptions) => {
|
|
5
|
+
export const render = async (ctx, renderOptions, runner) => {
|
|
6
6
|
const {
|
|
7
7
|
bundle,
|
|
8
8
|
distDir,
|
|
@@ -25,8 +25,9 @@ export const render = async (ctx, renderOptions) => {
|
|
|
25
25
|
distDir,
|
|
26
26
|
staticGenerate,
|
|
27
27
|
logger: ctx.logger,
|
|
28
|
-
|
|
28
|
+
metrics: ctx.metrics
|
|
29
29
|
};
|
|
30
|
+
runner.extendSSRContext(context);
|
|
30
31
|
|
|
31
32
|
const serverRender = require(bundleJS)[SERVER_RENDER_FUNCTION_NAME];
|
|
32
33
|
|
|
@@ -10,7 +10,7 @@ export class ModernRoute {
|
|
|
10
10
|
this.isSSR = void 0;
|
|
11
11
|
this.isSPA = void 0;
|
|
12
12
|
this.enableModernMode = void 0;
|
|
13
|
-
this.entryName = routeSpec.entryName;
|
|
13
|
+
this.entryName = routeSpec.entryName || '';
|
|
14
14
|
this.urlPath = routeSpec.urlPath;
|
|
15
15
|
this.entryPath = routeSpec.entryPath || '';
|
|
16
16
|
this.isSSR = routeSpec.isSSR || false;
|
|
@@ -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,3 +1,9 @@
|
|
|
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
|
+
|
|
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
|
+
|
|
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
|
+
|
|
1
7
|
import { createServer } from 'http';
|
|
2
8
|
import path from 'path';
|
|
3
9
|
import { createServer as createHttpsServer } from 'https';
|
|
@@ -25,6 +31,7 @@ const DEFAULT_DEV_OPTIONS = {
|
|
|
25
31
|
dev: {
|
|
26
32
|
writeToDisk: true
|
|
27
33
|
},
|
|
34
|
+
watch: true,
|
|
28
35
|
hot: true,
|
|
29
36
|
liveReload: true
|
|
30
37
|
};
|
|
@@ -41,7 +48,7 @@ export class ModernDevServer extends ModernServer {
|
|
|
41
48
|
this.devMiddleware = void 0;
|
|
42
49
|
this.compiler = options.compiler; // set dev server options, like webpack-dev-server
|
|
43
50
|
|
|
44
|
-
this.dev = typeof options.dev === 'boolean' ? DEFAULT_DEV_OPTIONS : options.dev;
|
|
51
|
+
this.dev = typeof options.dev === 'boolean' ? DEFAULT_DEV_OPTIONS : _objectSpread(_objectSpread({}, DEFAULT_DEV_OPTIONS), options.dev);
|
|
45
52
|
enableRegister(this.pwd, this.conf);
|
|
46
53
|
} // Complete the preparation of services
|
|
47
54
|
|
|
@@ -90,7 +97,9 @@ export class ModernDevServer extends ModernServer {
|
|
|
90
97
|
|
|
91
98
|
await super.init(runner); // watch mock/ server/ api/ dir file change
|
|
92
99
|
|
|
93
|
-
this.
|
|
100
|
+
if (this.dev.watch) {
|
|
101
|
+
this.startWatcher();
|
|
102
|
+
}
|
|
94
103
|
}
|
|
95
104
|
|
|
96
105
|
ready(options = {}) {
|
|
@@ -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,8 +9,8 @@ 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 {
|
|
13
|
-
import {
|
|
12
|
+
import { ModernAPIServer, ModernSSRServer, ModernWebServer } from "./modern-server-split";
|
|
13
|
+
import { metrics as defaultMetrics } from "../libs/metrics";
|
|
14
14
|
export class Server {
|
|
15
15
|
constructor(options) {
|
|
16
16
|
this.options = void 0;
|
|
@@ -36,7 +36,7 @@ export class Server {
|
|
|
36
36
|
options
|
|
37
37
|
} = this;
|
|
38
38
|
options.logger = options.logger || defaultLogger;
|
|
39
|
-
options.
|
|
39
|
+
options.metrics = options.metrics || defaultMetrics; // initialize server
|
|
40
40
|
|
|
41
41
|
if (options.dev) {
|
|
42
42
|
this.server = this.createDevServer();
|
|
@@ -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
|
}
|