@modern-js/server 0.0.0-plugins-202111301002 → 0.0.0-runtime-2021112193858
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 +59 -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/hook-api/route.js +37 -0
- package/dist/js/modern/libs/{hook-api.js → hook-api/template.js} +0 -0
- package/dist/js/modern/libs/{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/ssr.js +1 -1
- package/dist/js/modern/libs/route/index.js +4 -0
- package/dist/js/modern/libs/route/matcher.js +4 -0
- package/dist/js/modern/libs/route/route.js +1 -1
- package/dist/js/modern/server/dev-server/dev-server-split.js +28 -0
- package/dist/js/modern/server/{dev-server.js → dev-server/dev-server.js} +41 -22
- package/dist/js/modern/server/dev-server/index.js +2 -0
- package/dist/js/modern/server/index.js +65 -63
- package/dist/js/modern/server/modern-server-split.js +81 -0
- package/dist/js/modern/server/modern-server.js +121 -70
- package/dist/js/modern/utils.js +11 -3
- package/dist/js/node/dev-tools/babel/register.js +2 -2
- package/dist/js/node/dev-tools/mock/getMockData.js +2 -2
- package/dist/js/node/libs/context/context.js +15 -7
- package/dist/js/node/libs/context/index.js +2 -2
- package/dist/js/node/libs/hook-api/route.js +46 -0
- package/dist/js/node/libs/{hook-api.js → hook-api/template.js} +0 -0
- package/dist/js/node/libs/{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/ssr.js +1 -1
- package/dist/js/node/libs/route/index.js +4 -0
- package/dist/js/node/libs/route/matcher.js +4 -0
- package/dist/js/node/libs/route/route.js +1 -1
- package/dist/js/node/server/dev-server/dev-server-split.js +41 -0
- package/dist/js/node/server/{dev-server.js → dev-server/dev-server.js} +42 -21
- package/dist/js/node/server/dev-server/index.js +27 -0
- package/dist/js/node/server/index.js +72 -64
- package/dist/js/node/server/modern-server-split.js +97 -0
- package/dist/js/node/server/modern-server.js +124 -71
- package/dist/js/node/utils.js +14 -4
- package/dist/types/libs/context/context.d.ts +5 -5
- package/dist/types/libs/context/index.d.ts +3 -3
- package/dist/types/libs/hook-api/route.d.ts +13 -0
- package/dist/types/libs/{hook-api.d.ts → hook-api/template.d.ts} +0 -0
- package/dist/types/libs/metrics.d.ts +3 -0
- package/dist/types/libs/render/type.d.ts +2 -2
- package/dist/types/libs/route/index.d.ts +1 -0
- package/dist/types/libs/route/matcher.d.ts +1 -0
- package/dist/types/libs/route/route.d.ts +2 -10
- package/dist/types/server/dev-server/dev-server-split.d.ts +15 -0
- package/dist/types/server/{dev-server.d.ts → dev-server/dev-server.d.ts} +6 -5
- package/dist/types/server/dev-server/index.d.ts +2 -0
- package/dist/types/server/index.d.ts +3 -1
- package/dist/types/server/modern-server-split.d.ts +26 -0
- package/dist/types/server/modern-server.d.ts +20 -12
- package/dist/types/type.d.ts +9 -4
- package/dist/types/utils.d.ts +3 -2
- package/package.json +18 -20
- package/src/libs/context/context.ts +12 -8
- package/src/libs/context/index.ts +3 -3
- package/src/libs/hook-api/route.ts +38 -0
- package/src/libs/{hook-api.ts → hook-api/template.ts} +0 -0
- package/src/libs/{measure.ts → metrics.ts} +3 -3
- package/src/libs/render/ssr.ts +1 -1
- package/src/libs/render/type.ts +2 -2
- package/src/libs/route/index.ts +4 -0
- package/src/libs/route/matcher.ts +4 -0
- package/src/libs/route/route.ts +4 -20
- package/src/server/{web-server.ts → dev-server/dev-server-split.ts} +12 -14
- package/src/server/{dev-server.ts → dev-server/dev-server.ts} +62 -33
- package/src/server/dev-server/index.ts +2 -0
- package/src/server/index.ts +81 -48
- package/src/server/modern-server-split.ts +97 -0
- package/src/server/modern-server.ts +140 -90
- package/src/type.ts +9 -4
- package/src/utils.ts +16 -2
- package/dist/js/modern/server/api-server.js +0 -36
- package/dist/js/modern/server/web-server.js +0 -30
- package/dist/js/node/server/api-server.js +0 -50
- package/dist/js/node/server/web-server.js +0 -44
- package/dist/types/libs/measure.d.ts +0 -3
- package/dist/types/server/api-server.d.ts +0 -17
- package/dist/types/server/web-server.d.ts +0 -15
- package/src/server/api-server.ts +0 -47
|
@@ -17,7 +17,7 @@ class ModernRoute {
|
|
|
17
17
|
this.isSSR = void 0;
|
|
18
18
|
this.isSPA = void 0;
|
|
19
19
|
this.enableModernMode = void 0;
|
|
20
|
-
this.entryName = routeSpec.entryName;
|
|
20
|
+
this.entryName = routeSpec.entryName || '';
|
|
21
21
|
this.urlPath = routeSpec.urlPath;
|
|
22
22
|
this.entryPath = routeSpec.entryPath || '';
|
|
23
23
|
this.isSSR = routeSpec.isSSR || false;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ModernSSRDevServer = exports.ModernAPIDevServer = void 0;
|
|
7
|
+
|
|
8
|
+
var _devServer = require("./dev-server");
|
|
9
|
+
|
|
10
|
+
class ModernSSRDevServer extends _devServer.ModernDevServer {
|
|
11
|
+
prepareAPIHandler(_m, _) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
async prepareWebHandler(extension) {
|
|
16
|
+
return super.prepareWebHandler(extension);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
filterRoutes(routes) {
|
|
20
|
+
return routes.filter(route => route.entryName);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
exports.ModernSSRDevServer = ModernSSRDevServer;
|
|
26
|
+
|
|
27
|
+
class ModernAPIDevServer extends _devServer.ModernDevServer {
|
|
28
|
+
async prepareAPIHandler(mode, extension) {
|
|
29
|
+
return super.prepareAPIHandler(mode, extension);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
filterRoutes(routes) {
|
|
33
|
+
return routes.filter(route => route.isApi);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
async preServerInit() {// noop
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
exports.ModernAPIDevServer = ModernAPIDevServer;
|
|
@@ -5,31 +5,35 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.ModernDevServer = void 0;
|
|
7
7
|
|
|
8
|
+
var _http = require("http");
|
|
9
|
+
|
|
8
10
|
var _path = _interopRequireDefault(require("path"));
|
|
9
11
|
|
|
12
|
+
var _https = require("https");
|
|
13
|
+
|
|
10
14
|
var _utils = require("@modern-js/utils");
|
|
11
15
|
|
|
12
16
|
var _webpackDevMiddleware = _interopRequireDefault(require("webpack-dev-middleware"));
|
|
13
17
|
|
|
14
|
-
var
|
|
18
|
+
var _modernServer = require("../modern-server");
|
|
15
19
|
|
|
16
|
-
var
|
|
20
|
+
var _mock = require("../../dev-tools/mock");
|
|
17
21
|
|
|
18
|
-
var
|
|
22
|
+
var _proxy = require("../../libs/proxy");
|
|
19
23
|
|
|
20
|
-
var
|
|
24
|
+
var _socketServer = _interopRequireDefault(require("../../dev-tools/socket-server"));
|
|
21
25
|
|
|
22
|
-
var
|
|
26
|
+
var _devServerPlugin = _interopRequireDefault(require("../../dev-tools/dev-server-plugin"));
|
|
23
27
|
|
|
24
|
-
var
|
|
28
|
+
var _launchEditor = require("../../dev-tools/launch-editor");
|
|
25
29
|
|
|
26
|
-
var
|
|
30
|
+
var _register = require("../../dev-tools/babel/register");
|
|
27
31
|
|
|
28
|
-
var
|
|
32
|
+
var reader = _interopRequireWildcard(require("../../libs/render/reader"));
|
|
29
33
|
|
|
30
|
-
var
|
|
34
|
+
var _watcher = _interopRequireDefault(require("../../dev-tools/watcher"));
|
|
31
35
|
|
|
32
|
-
var _constants = require("
|
|
36
|
+
var _constants = require("../../constants");
|
|
33
37
|
|
|
34
38
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
35
39
|
|
|
@@ -54,8 +58,8 @@ const DEFAULT_DEV_OPTIONS = {
|
|
|
54
58
|
};
|
|
55
59
|
|
|
56
60
|
class ModernDevServer extends _modernServer.ModernServer {
|
|
57
|
-
constructor(options
|
|
58
|
-
super(options
|
|
61
|
+
constructor(options) {
|
|
62
|
+
super(options); // set webpack compiler
|
|
59
63
|
|
|
60
64
|
this.devProxyHandler = null;
|
|
61
65
|
this.mockHandler = null;
|
|
@@ -67,18 +71,18 @@ class ModernDevServer extends _modernServer.ModernServer {
|
|
|
67
71
|
this.compiler = options.compiler; // set dev server options, like webpack-dev-server
|
|
68
72
|
|
|
69
73
|
this.dev = typeof options.dev === 'boolean' ? DEFAULT_DEV_OPTIONS : options.dev;
|
|
74
|
+
(0, _register.enableRegister)(this.pwd, this.conf);
|
|
70
75
|
} // Complete the preparation of services
|
|
71
76
|
|
|
72
77
|
|
|
73
|
-
async init() {
|
|
78
|
+
async init(runner) {
|
|
74
79
|
var _conf$tools, _conf$tools$devServer;
|
|
75
80
|
|
|
76
81
|
const {
|
|
77
82
|
conf,
|
|
78
83
|
pwd,
|
|
79
84
|
compiler
|
|
80
|
-
} = this;
|
|
81
|
-
(0, _register.enableRegister)(pwd, conf); // mock handler
|
|
85
|
+
} = this; // mock handler
|
|
82
86
|
|
|
83
87
|
this.mockHandler = (0, _mock.createMockHandler)({
|
|
84
88
|
pwd
|
|
@@ -113,7 +117,7 @@ class ModernDevServer extends _modernServer.ModernServer {
|
|
|
113
117
|
this.addHandler(devMiddlewareHandler);
|
|
114
118
|
}
|
|
115
119
|
|
|
116
|
-
await super.init(); // watch mock/ server/ api/ dir file change
|
|
120
|
+
await super.init(runner); // watch mock/ server/ api/ dir file change
|
|
117
121
|
|
|
118
122
|
this.startWatcher();
|
|
119
123
|
}
|
|
@@ -124,6 +128,7 @@ class ModernDevServer extends _modernServer.ModernServer {
|
|
|
124
128
|
this.cleanSSRCache(); // reset static file
|
|
125
129
|
|
|
126
130
|
reader.updateFile();
|
|
131
|
+
this.runner.reset();
|
|
127
132
|
}
|
|
128
133
|
|
|
129
134
|
onListening(app) {
|
|
@@ -140,6 +145,24 @@ class ModernDevServer extends _modernServer.ModernServer {
|
|
|
140
145
|
resolve();
|
|
141
146
|
});
|
|
142
147
|
});
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
async createHTTPServer(handler) {
|
|
151
|
+
const {
|
|
152
|
+
dev
|
|
153
|
+
} = this;
|
|
154
|
+
const devHttpsOption = typeof dev === 'object' && dev.https;
|
|
155
|
+
|
|
156
|
+
if (devHttpsOption) {
|
|
157
|
+
const {
|
|
158
|
+
genHttpsOptions
|
|
159
|
+
} = require("../../dev-tools/https");
|
|
160
|
+
|
|
161
|
+
const httpsOptions = await genHttpsOptions(devHttpsOption);
|
|
162
|
+
return (0, _https.createServer)(httpsOptions, handler);
|
|
163
|
+
} else {
|
|
164
|
+
return (0, _http.createServer)(handler);
|
|
165
|
+
}
|
|
143
166
|
} // set up plugin to each compiler
|
|
144
167
|
// register hooks for each compilation, update socket stats if recompiled
|
|
145
168
|
// start dev middleware
|
|
@@ -234,18 +257,16 @@ class ModernDevServer extends _modernServer.ModernServer {
|
|
|
234
257
|
pwd
|
|
235
258
|
} = this;
|
|
236
259
|
const {
|
|
237
|
-
mock
|
|
238
|
-
server,
|
|
239
|
-
api,
|
|
240
|
-
shared
|
|
260
|
+
mock
|
|
241
261
|
} = _constants.AGGRED_DIR;
|
|
242
|
-
const defaultWatched = [`${pwd}/${mock}/**/*`, `${pwd}/${
|
|
262
|
+
const defaultWatched = [`${pwd}/${mock}/**/*`, `${pwd}/${_utils.SERVER_DIR}/**/*`, `${pwd}/${_utils.API_DIR}/!(typings)/**`, `${pwd}/${_utils.SHARED_DIR}/**/*`];
|
|
243
263
|
const watcher = new _watcher.default();
|
|
244
264
|
watcher.createDepTree(); // 监听文件变动,如果有变动则给 client,也就是 start 启动的插件发消息
|
|
245
265
|
|
|
246
266
|
watcher.listen(defaultWatched, filepath => {
|
|
247
267
|
watcher.updateDepTree();
|
|
248
268
|
watcher.cleanDepCache(filepath);
|
|
269
|
+
this.runner.reset();
|
|
249
270
|
|
|
250
271
|
if (filepath.startsWith(`${pwd}/${mock}`)) {
|
|
251
272
|
this.mockHandler = (0, _mock.createMockHandler)({
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "ModernAPIDevServer", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _devServerSplit.ModernAPIDevServer;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "ModernDevServer", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _devServer.ModernDevServer;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "ModernSSRDevServer", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _devServerSplit.ModernSSRDevServer;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
var _devServerSplit = require("./dev-server-split");
|
|
26
|
+
|
|
27
|
+
var _devServer = require("./dev-server");
|
|
@@ -5,30 +5,35 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.Server = void 0;
|
|
7
7
|
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
var _https = require("https");
|
|
8
|
+
var _path = _interopRequireDefault(require("path"));
|
|
11
9
|
|
|
12
10
|
var _serverPlugin = require("@modern-js/server-plugin");
|
|
13
11
|
|
|
14
12
|
var _utils = require("@modern-js/utils");
|
|
15
13
|
|
|
14
|
+
var _core = require("@modern-js/core");
|
|
15
|
+
|
|
16
16
|
var _modernServer = require("./modern-server");
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _modernServerSplit = require("./modern-server-split");
|
|
19
|
+
|
|
20
|
+
var _metrics = require("../libs/metrics");
|
|
21
|
+
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
|
+
|
|
24
|
+
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; }
|
|
25
|
+
|
|
26
|
+
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; }
|
|
27
|
+
|
|
28
|
+
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
29
|
|
|
20
30
|
class Server {
|
|
21
31
|
constructor(options) {
|
|
22
|
-
var _options$plugins;
|
|
23
|
-
|
|
24
32
|
this.options = void 0;
|
|
25
33
|
this.server = void 0;
|
|
26
34
|
this.app = void 0;
|
|
27
35
|
this.runner = void 0;
|
|
28
36
|
this.options = options;
|
|
29
|
-
(_options$plugins = options.plugins) === null || _options$plugins === void 0 ? void 0 : _options$plugins.forEach(p => {
|
|
30
|
-
_serverPlugin.serverManager.usePlugin(p);
|
|
31
|
-
});
|
|
32
37
|
}
|
|
33
38
|
|
|
34
39
|
getRequestHandler() {
|
|
@@ -46,40 +51,20 @@ class Server {
|
|
|
46
51
|
const {
|
|
47
52
|
options
|
|
48
53
|
} = this;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
logger,
|
|
52
|
-
measure
|
|
53
|
-
} = await this.runner.create({
|
|
54
|
-
loggerOptions: options.logger,
|
|
55
|
-
measureOptions: options.measure
|
|
56
|
-
}, {
|
|
57
|
-
onLast: () => ({})
|
|
58
|
-
});
|
|
59
|
-
options.logger = options.logger || logger || _utils.logger;
|
|
60
|
-
options.measure = options.measure || measure || _measure.measure;
|
|
54
|
+
options.logger = options.logger || _utils.logger;
|
|
55
|
+
options.metrics = options.metrics || _metrics.metrics; // initialize server
|
|
61
56
|
|
|
62
57
|
if (options.dev) {
|
|
63
|
-
this.server = this.createDevServer();
|
|
64
|
-
|
|
65
|
-
const devHttpsOption = typeof options.dev === 'object' && options.dev.https;
|
|
66
|
-
|
|
67
|
-
if (devHttpsOption) {
|
|
68
|
-
const {
|
|
69
|
-
genHttpsOptions
|
|
70
|
-
} = require("../dev-tools/https");
|
|
71
|
-
|
|
72
|
-
const httpsOptions = await genHttpsOptions(devHttpsOption);
|
|
73
|
-
this.app = (0, _https.createServer)(httpsOptions, this.getRequestHandler());
|
|
74
|
-
} else {
|
|
75
|
-
this.app = (0, _http.createServer)(this.getRequestHandler());
|
|
76
|
-
}
|
|
58
|
+
this.server = this.createDevServer();
|
|
77
59
|
} else {
|
|
78
60
|
this.server = this.createProdServer();
|
|
79
|
-
|
|
80
|
-
|
|
61
|
+
} // check if https is configured when start dev server
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
this.app = await this.server.createHTTPServer(this.getRequestHandler());
|
|
65
|
+
this.runner = await this.createHookRunner(); // runner can only be used after server init
|
|
81
66
|
|
|
82
|
-
await this.server.init();
|
|
67
|
+
await this.server.init(this.runner);
|
|
83
68
|
return this;
|
|
84
69
|
}
|
|
85
70
|
|
|
@@ -110,19 +95,13 @@ class Server {
|
|
|
110
95
|
} = this;
|
|
111
96
|
|
|
112
97
|
if (options.apiOnly) {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
return new APIModernServer(options, this.runner);
|
|
98
|
+
return new _modernServerSplit.ModernAPIServer(options);
|
|
99
|
+
} else if (options.ssrOnly) {
|
|
100
|
+
return new _modernServerSplit.ModernSSRServer(options);
|
|
118
101
|
} else if (options.webOnly) {
|
|
119
|
-
|
|
120
|
-
WebModernServer
|
|
121
|
-
} = require("./web-server");
|
|
122
|
-
|
|
123
|
-
return new WebModernServer(options, this.runner);
|
|
102
|
+
return new _modernServerSplit.ModernWebServer(options);
|
|
124
103
|
} else {
|
|
125
|
-
return new _modernServer.ModernServer(options
|
|
104
|
+
return new _modernServer.ModernServer(options);
|
|
126
105
|
}
|
|
127
106
|
}
|
|
128
107
|
|
|
@@ -131,25 +110,54 @@ class Server {
|
|
|
131
110
|
options
|
|
132
111
|
} = this;
|
|
133
112
|
|
|
113
|
+
const {
|
|
114
|
+
ModernAPIDevServer,
|
|
115
|
+
ModernSSRDevServer,
|
|
116
|
+
ModernDevServer
|
|
117
|
+
} = require("./dev-server");
|
|
118
|
+
|
|
134
119
|
if (options.apiOnly) {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
120
|
+
return new ModernAPIDevServer(options);
|
|
121
|
+
} else if (options.ssrOnly) {
|
|
122
|
+
return new ModernSSRDevServer(options);
|
|
123
|
+
} else {
|
|
124
|
+
return new ModernDevServer(options);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
138
127
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
const {
|
|
142
|
-
WebModernDevServer
|
|
143
|
-
} = require("./web-server");
|
|
128
|
+
async createHookRunner() {
|
|
129
|
+
var _options$plugins;
|
|
144
130
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
131
|
+
const {
|
|
132
|
+
options
|
|
133
|
+
} = this;
|
|
134
|
+
(_options$plugins = options.plugins) === null || _options$plugins === void 0 ? void 0 : _options$plugins.forEach(p => {
|
|
135
|
+
_serverPlugin.serverManager.usePlugin(p);
|
|
136
|
+
});
|
|
137
|
+
const appContext = await this.initAppContext();
|
|
150
138
|
|
|
151
|
-
|
|
152
|
-
|
|
139
|
+
_serverPlugin.serverManager.run(() => {
|
|
140
|
+
_core.ConfigContext.set(this.options.config);
|
|
141
|
+
|
|
142
|
+
_core.AppContext.set(_objectSpread(_objectSpread({}, appContext), {}, {
|
|
143
|
+
distDirectory: _path.default.join(options.pwd, options.config.output.path || 'dist')
|
|
144
|
+
}));
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
return _serverPlugin.serverManager.init({});
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
async initAppContext() {
|
|
151
|
+
var _this$options$plugins;
|
|
152
|
+
|
|
153
|
+
const appDirectory = await (0, _core.initAppDir)();
|
|
154
|
+
const loaded = await (0, _core.loadUserConfig)(appDirectory);
|
|
155
|
+
const plugins = (_this$options$plugins = this.options.plugins) === null || _this$options$plugins === void 0 ? void 0 : _this$options$plugins.map(p => ({
|
|
156
|
+
server: p,
|
|
157
|
+
cli: undefined
|
|
158
|
+
}));
|
|
159
|
+
const appContext = (0, _core.initAppContext)(appDirectory, plugins || [], loaded.filePath);
|
|
160
|
+
return appContext;
|
|
153
161
|
}
|
|
154
162
|
|
|
155
163
|
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ModernWebServer = exports.ModernSSRServer = exports.ModernAPIServer = void 0;
|
|
7
|
+
|
|
8
|
+
var _modernServer = require("./modern-server");
|
|
9
|
+
|
|
10
|
+
class ModernSSRServer extends _modernServer.ModernServer {
|
|
11
|
+
// Todo should not invoke any route hook in modernSSRServer
|
|
12
|
+
async warmupSSRBundle() {// empty
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
verifyMatch(context, matched) {
|
|
16
|
+
if (matched.generate().isApi) {
|
|
17
|
+
this.render404(context);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
prepareAPIHandler(_m, _) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
async prepareWebHandler(extension) {
|
|
26
|
+
return super.prepareWebHandler(extension);
|
|
27
|
+
} // protected filterRoutes(routes: ModernRouteInterface[]) {
|
|
28
|
+
// return routes.filter(route => route.entryName);
|
|
29
|
+
// }
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
async preServerInit() {// empty
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
exports.ModernSSRServer = ModernSSRServer;
|
|
38
|
+
|
|
39
|
+
class ModernAPIServer extends _modernServer.ModernServer {
|
|
40
|
+
async emitRouteHook(_, _input) {// empty
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
async warmupSSRBundle() {// empty
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
prepareWebHandler(_) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async prepareAPIHandler(mode, extension) {
|
|
51
|
+
return super.prepareAPIHandler(mode, extension);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
filterRoutes(routes) {
|
|
55
|
+
return routes.filter(route => route.isApi);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
async preServerInit() {// empty
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
exports.ModernAPIServer = ModernAPIServer;
|
|
64
|
+
|
|
65
|
+
class ModernWebServer extends _modernServer.ModernServer {
|
|
66
|
+
async warmupSSRBundle() {// empty
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
async handleAPI(context) {
|
|
70
|
+
const {
|
|
71
|
+
proxyTarget
|
|
72
|
+
} = this;
|
|
73
|
+
|
|
74
|
+
if (!(proxyTarget !== null && proxyTarget !== void 0 && proxyTarget.api)) {
|
|
75
|
+
this.proxy();
|
|
76
|
+
} else {
|
|
77
|
+
this.render404(context);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
async handleWeb(context, route) {
|
|
82
|
+
const {
|
|
83
|
+
proxyTarget
|
|
84
|
+
} = this;
|
|
85
|
+
|
|
86
|
+
if (route.isSSR && proxyTarget !== null && proxyTarget !== void 0 && proxyTarget.ssr) {
|
|
87
|
+
return this.proxy();
|
|
88
|
+
} else {
|
|
89
|
+
// if no proxyTarget but access web server, degradation to csr
|
|
90
|
+
route.isSSR = false;
|
|
91
|
+
return super.handleWeb(context, route);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
exports.ModernWebServer = ModernWebServer;
|