@modern-js/server 1.4.7 → 1.4.8
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
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @modern-js/server
|
|
2
2
|
|
|
3
|
+
## 1.4.8
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- a8df060e: support setup dev middleware first step
|
|
8
|
+
- d2d0fa11: fix: missing devServer.proxy typing
|
|
9
|
+
- 6a7acb81: modify devServer type and name
|
|
10
|
+
- Updated dependencies [c2046f37]
|
|
11
|
+
- Updated dependencies [d2d0fa11]
|
|
12
|
+
- @modern-js/utils@1.3.6
|
|
13
|
+
- @modern-js/prod-server@1.0.5
|
|
14
|
+
|
|
3
15
|
## 1.4.7
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -39,12 +39,24 @@ export class ModernDevServer extends ModernServer {
|
|
|
39
39
|
async onInit(runner) {
|
|
40
40
|
var _conf$tools, _conf$tools$devServer;
|
|
41
41
|
|
|
42
|
+
this.runner = runner;
|
|
42
43
|
const {
|
|
43
44
|
conf,
|
|
44
45
|
pwd,
|
|
45
46
|
compiler,
|
|
46
47
|
dev
|
|
47
|
-
} = this; //
|
|
48
|
+
} = this; // before dev handler
|
|
49
|
+
|
|
50
|
+
const beforeHandlers = await this.setupBeforeDevMiddleware();
|
|
51
|
+
beforeHandlers.forEach(handler => {
|
|
52
|
+
this.addHandler((ctx, next) => {
|
|
53
|
+
const {
|
|
54
|
+
req,
|
|
55
|
+
res
|
|
56
|
+
} = ctx;
|
|
57
|
+
return handler(req, res, next);
|
|
58
|
+
});
|
|
59
|
+
}); // mock handler
|
|
48
60
|
|
|
49
61
|
this.mockHandler = createMockHandler({
|
|
50
62
|
pwd
|
|
@@ -74,8 +86,19 @@ export class ModernDevServer extends ModernServer {
|
|
|
74
86
|
|
|
75
87
|
const devMiddlewareHandler = this.setupCompiler(compiler);
|
|
76
88
|
this.addHandler(devMiddlewareHandler);
|
|
77
|
-
}
|
|
89
|
+
} // after dev handler
|
|
90
|
+
|
|
78
91
|
|
|
92
|
+
const afterHandlers = await this.setupAfterDevMiddleware();
|
|
93
|
+
afterHandlers.forEach(handler => {
|
|
94
|
+
this.addHandler((ctx, next) => {
|
|
95
|
+
const {
|
|
96
|
+
req,
|
|
97
|
+
res
|
|
98
|
+
} = ctx;
|
|
99
|
+
return handler(req, res, next);
|
|
100
|
+
});
|
|
101
|
+
});
|
|
79
102
|
await super.onInit(runner); // watch mock/ server/ api/ dir file change
|
|
80
103
|
|
|
81
104
|
if (dev.watch) {
|
|
@@ -252,6 +275,30 @@ export class ModernDevServer extends ModernServer {
|
|
|
252
275
|
};
|
|
253
276
|
}
|
|
254
277
|
|
|
278
|
+
async setupBeforeDevMiddleware() {
|
|
279
|
+
var _conf$tools$devServer2;
|
|
280
|
+
|
|
281
|
+
const {
|
|
282
|
+
runner,
|
|
283
|
+
conf
|
|
284
|
+
} = this;
|
|
285
|
+
const setupMids = ((_conf$tools$devServer2 = conf.tools.devServer) === null || _conf$tools$devServer2 === void 0 ? void 0 : _conf$tools$devServer2.before) || [];
|
|
286
|
+
const pluginMids = await runner.beforeDevServer(conf);
|
|
287
|
+
return [...setupMids, ...pluginMids].flat();
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
async setupAfterDevMiddleware() {
|
|
291
|
+
var _conf$tools$devServer3;
|
|
292
|
+
|
|
293
|
+
const {
|
|
294
|
+
runner,
|
|
295
|
+
conf
|
|
296
|
+
} = this;
|
|
297
|
+
const setupMids = ((_conf$tools$devServer3 = conf.tools.devServer) === null || _conf$tools$devServer3 === void 0 ? void 0 : _conf$tools$devServer3.after) || [];
|
|
298
|
+
const pluginMids = await runner.afterDevServer(conf);
|
|
299
|
+
return [...pluginMids, ...setupMids].flat();
|
|
300
|
+
}
|
|
301
|
+
|
|
255
302
|
cleanSSRCache() {
|
|
256
303
|
const {
|
|
257
304
|
distDir
|
|
@@ -61,12 +61,24 @@ class ModernDevServer extends _prodServer.ModernServer {
|
|
|
61
61
|
async onInit(runner) {
|
|
62
62
|
var _conf$tools, _conf$tools$devServer;
|
|
63
63
|
|
|
64
|
+
this.runner = runner;
|
|
64
65
|
const {
|
|
65
66
|
conf,
|
|
66
67
|
pwd,
|
|
67
68
|
compiler,
|
|
68
69
|
dev
|
|
69
|
-
} = this; //
|
|
70
|
+
} = this; // before dev handler
|
|
71
|
+
|
|
72
|
+
const beforeHandlers = await this.setupBeforeDevMiddleware();
|
|
73
|
+
beforeHandlers.forEach(handler => {
|
|
74
|
+
this.addHandler((ctx, next) => {
|
|
75
|
+
const {
|
|
76
|
+
req,
|
|
77
|
+
res
|
|
78
|
+
} = ctx;
|
|
79
|
+
return handler(req, res, next);
|
|
80
|
+
});
|
|
81
|
+
}); // mock handler
|
|
70
82
|
|
|
71
83
|
this.mockHandler = (0, _mock.createMockHandler)({
|
|
72
84
|
pwd
|
|
@@ -96,8 +108,19 @@ class ModernDevServer extends _prodServer.ModernServer {
|
|
|
96
108
|
|
|
97
109
|
const devMiddlewareHandler = this.setupCompiler(compiler);
|
|
98
110
|
this.addHandler(devMiddlewareHandler);
|
|
99
|
-
}
|
|
111
|
+
} // after dev handler
|
|
112
|
+
|
|
100
113
|
|
|
114
|
+
const afterHandlers = await this.setupAfterDevMiddleware();
|
|
115
|
+
afterHandlers.forEach(handler => {
|
|
116
|
+
this.addHandler((ctx, next) => {
|
|
117
|
+
const {
|
|
118
|
+
req,
|
|
119
|
+
res
|
|
120
|
+
} = ctx;
|
|
121
|
+
return handler(req, res, next);
|
|
122
|
+
});
|
|
123
|
+
});
|
|
101
124
|
await super.onInit(runner); // watch mock/ server/ api/ dir file change
|
|
102
125
|
|
|
103
126
|
if (dev.watch) {
|
|
@@ -276,6 +299,30 @@ class ModernDevServer extends _prodServer.ModernServer {
|
|
|
276
299
|
};
|
|
277
300
|
}
|
|
278
301
|
|
|
302
|
+
async setupBeforeDevMiddleware() {
|
|
303
|
+
var _conf$tools$devServer2;
|
|
304
|
+
|
|
305
|
+
const {
|
|
306
|
+
runner,
|
|
307
|
+
conf
|
|
308
|
+
} = this;
|
|
309
|
+
const setupMids = ((_conf$tools$devServer2 = conf.tools.devServer) === null || _conf$tools$devServer2 === void 0 ? void 0 : _conf$tools$devServer2.before) || [];
|
|
310
|
+
const pluginMids = await runner.beforeDevServer(conf);
|
|
311
|
+
return [...setupMids, ...pluginMids].flat();
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
async setupAfterDevMiddleware() {
|
|
315
|
+
var _conf$tools$devServer3;
|
|
316
|
+
|
|
317
|
+
const {
|
|
318
|
+
runner,
|
|
319
|
+
conf
|
|
320
|
+
} = this;
|
|
321
|
+
const setupMids = ((_conf$tools$devServer3 = conf.tools.devServer) === null || _conf$tools$devServer3 === void 0 ? void 0 : _conf$tools$devServer3.after) || [];
|
|
322
|
+
const pluginMids = await runner.afterDevServer(conf);
|
|
323
|
+
return [...pluginMids, ...setupMids].flat();
|
|
324
|
+
}
|
|
325
|
+
|
|
279
326
|
cleanSSRCache() {
|
|
280
327
|
const {
|
|
281
328
|
distDir
|
|
@@ -25,6 +25,8 @@ export declare class ModernDevServer extends ModernServer {
|
|
|
25
25
|
private setupDevServerPlugin;
|
|
26
26
|
private setupHooks;
|
|
27
27
|
private setupDevMiddleware;
|
|
28
|
+
private setupBeforeDevMiddleware;
|
|
29
|
+
private setupAfterDevMiddleware;
|
|
28
30
|
private cleanSSRCache;
|
|
29
31
|
private startWatcher;
|
|
30
32
|
}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"modern",
|
|
12
12
|
"modern.js"
|
|
13
13
|
],
|
|
14
|
-
"version": "1.4.
|
|
14
|
+
"version": "1.4.8",
|
|
15
15
|
"jsnext:source": "./src/index.ts",
|
|
16
16
|
"types": "./dist/types/index.d.ts",
|
|
17
17
|
"main": "./dist/js/node/index.js",
|
|
@@ -28,12 +28,12 @@
|
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@modern-js/prod-server": "^1.0.
|
|
31
|
+
"@modern-js/prod-server": "^1.0.5",
|
|
32
32
|
"@babel/register": "^7.15.3",
|
|
33
33
|
"@modern-js/bff-utils": "^1.2.2",
|
|
34
34
|
"@modern-js/hmr-client": "^1.2.2",
|
|
35
35
|
"@modern-js/server-utils": "^1.2.1",
|
|
36
|
-
"@modern-js/utils": "^1.3.
|
|
36
|
+
"@modern-js/utils": "^1.3.6",
|
|
37
37
|
"chokidar": "^3.5.2",
|
|
38
38
|
"devcert": "^1.1.3",
|
|
39
39
|
"launch-editor": "^2.2.1",
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
"ws": "^8.2.0"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@modern-js/server-core": "^1.2.
|
|
48
|
-
"@modern-js/core": "^1.
|
|
47
|
+
"@modern-js/server-core": "^1.2.4",
|
|
48
|
+
"@modern-js/core": "^1.6.0",
|
|
49
49
|
"@scripts/build": "0.0.0",
|
|
50
50
|
"@modern-js/types": "^1.3.5",
|
|
51
51
|
"@types/jest": "^26",
|
package/tests/watcher.test.ts
CHANGED
|
@@ -21,9 +21,9 @@ describe('watcher', () => {
|
|
|
21
21
|
fs.removeSync(serverDir);
|
|
22
22
|
});
|
|
23
23
|
|
|
24
|
-
const writeFiles = (content: string, filepath: string) => {
|
|
25
|
-
|
|
26
|
-
};
|
|
24
|
+
// const writeFiles = (content: string, filepath: string) => {
|
|
25
|
+
// fs.writeFileSync(path.normalize(filepath), content, 'utf8');
|
|
26
|
+
// };
|
|
27
27
|
|
|
28
28
|
// TODO 容易导致 timeout,暂时注释掉
|
|
29
29
|
// test('should emit add', done => {
|
|
@@ -54,61 +54,63 @@ describe('watcher', () => {
|
|
|
54
54
|
// setTimeout(() => writeFiles('test', path.join(watchDir, 'index.js')), 100);
|
|
55
55
|
// });
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
// TODO 容易导致 timeout,暂时注释掉
|
|
58
|
+
// test('should emit unlink', done => {
|
|
59
|
+
// const watcher = new Watcher();
|
|
59
60
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
// const callback = jest.fn();
|
|
62
|
+
// const watchDir = path.join(serverDir, 'unlink');
|
|
63
|
+
// fs.mkdirSync(watchDir);
|
|
63
64
|
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
// const filepath = path.join(watchDir, 'index.js');
|
|
66
|
+
// writeFiles('unlink', filepath);
|
|
66
67
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
68
|
+
// watcher.listen(
|
|
69
|
+
// [`${watchDir}/**/*`],
|
|
70
|
+
// {
|
|
71
|
+
// ignoreInitial: true,
|
|
72
|
+
// ignored: /api\/typings\/.*/,
|
|
73
|
+
// },
|
|
74
|
+
// async () => {
|
|
75
|
+
// callback();
|
|
76
|
+
// expect(callback).toHaveBeenCalledTimes(1);
|
|
77
|
+
// await watcher.close();
|
|
78
|
+
// done();
|
|
79
|
+
// },
|
|
80
|
+
// );
|
|
80
81
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
});
|
|
82
|
+
// setTimeout(() => {
|
|
83
|
+
// fs.removeSync(filepath);
|
|
84
|
+
// }, 100);
|
|
85
|
+
// });
|
|
85
86
|
|
|
86
|
-
|
|
87
|
-
|
|
87
|
+
// TODO 容易导致 timeout,暂时注释掉
|
|
88
|
+
// test('should emit change', done => {
|
|
89
|
+
// const watcher = new Watcher();
|
|
88
90
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
91
|
+
// const callback = jest.fn();
|
|
92
|
+
// const watchDir = path.join(serverDir, 'change');
|
|
93
|
+
// fs.mkdirSync(watchDir);
|
|
92
94
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
+
// const filepath = path.join(watchDir, 'index.js');
|
|
96
|
+
// writeFiles('start', filepath);
|
|
95
97
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
98
|
+
// watcher.listen(
|
|
99
|
+
// [`${watchDir}/**/*`],
|
|
100
|
+
// {
|
|
101
|
+
// ignoreInitial: true,
|
|
102
|
+
// ignored: /api\/typings\/.*/,
|
|
103
|
+
// },
|
|
104
|
+
// async () => {
|
|
105
|
+
// callback();
|
|
106
|
+
// expect(callback).toHaveBeenCalledTimes(1);
|
|
107
|
+
// await watcher.close();
|
|
108
|
+
// done();
|
|
109
|
+
// },
|
|
110
|
+
// );
|
|
109
111
|
|
|
110
|
-
|
|
111
|
-
});
|
|
112
|
+
// setTimeout(() => writeFiles('end', filepath), 100);
|
|
113
|
+
// });
|
|
112
114
|
|
|
113
115
|
test('should not emit change when typings file changed', done => {
|
|
114
116
|
const watcher = new Watcher();
|