@rspack/dev-server 0.2.0 → 0.2.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/package.json +8 -5
- package/CHANGELOG.md +0 -372
- package/jest.config.js +0 -12
- package/src/config.ts +0 -27
- package/src/index.ts +0 -2
- package/src/middleware.ts +0 -67
- package/src/server.ts +0 -476
- package/tests/__snapshots__/normalizeOptions.test.ts.snap +0 -137
- package/tests/normalizeOptions.test.ts +0 -154
- package/tests/placeholder.js +0 -0
- package/tests/placeholder1.js +0 -0
- package/tsconfig.json +0 -15
- package/tsconfig.tsbuildinfo +0 -1
package/package.json
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rspack/dev-server",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Development server for rspack",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
8
11
|
"homepage": "https://rspack.dev",
|
|
9
12
|
"bugs": "https://github.com/web-infra-dev/rspack/issues",
|
|
10
13
|
"repository": {
|
|
@@ -19,7 +22,7 @@
|
|
|
19
22
|
"@types/ws": "8.5.3",
|
|
20
23
|
"fs-extra": "11.1.0",
|
|
21
24
|
"puppeteer": "19.4.0",
|
|
22
|
-
"@rspack/core": "0.2.
|
|
25
|
+
"@rspack/core": "0.2.1"
|
|
23
26
|
},
|
|
24
27
|
"dependencies": {
|
|
25
28
|
"chokidar": "3.5.3",
|
|
@@ -30,9 +33,9 @@
|
|
|
30
33
|
"webpack": "5.76.0",
|
|
31
34
|
"webpack-dev-server": "4.13.1",
|
|
32
35
|
"ws": "8.8.1",
|
|
33
|
-
"@rspack/dev-client": "0.2.
|
|
34
|
-
"@rspack/dev-middleware": "0.2.
|
|
35
|
-
"@rspack/dev-server": "0.2.
|
|
36
|
+
"@rspack/dev-client": "0.2.1",
|
|
37
|
+
"@rspack/dev-middleware": "0.2.1",
|
|
38
|
+
"@rspack/dev-server": "0.2.1"
|
|
36
39
|
},
|
|
37
40
|
"peerDependencies": {
|
|
38
41
|
"@rspack/core": "*"
|
package/CHANGELOG.md
DELETED
|
@@ -1,372 +0,0 @@
|
|
|
1
|
-
# rspack-dev-server
|
|
2
|
-
|
|
3
|
-
## 0.1.12
|
|
4
|
-
|
|
5
|
-
### Patch Changes
|
|
6
|
-
|
|
7
|
-
- @rspack/dev-middleware@0.1.12
|
|
8
|
-
- @rspack/dev-server@0.1.12
|
|
9
|
-
- @rspack/dev-client@0.1.12
|
|
10
|
-
|
|
11
|
-
## 0.1.11
|
|
12
|
-
|
|
13
|
-
### Patch Changes
|
|
14
|
-
|
|
15
|
-
- cafa227d: fix cannot reading noEmitAssets by always getting the first compiler's noEmitAssets
|
|
16
|
-
- Updated dependencies [cafa227d]
|
|
17
|
-
- @rspack/dev-server@0.1.11
|
|
18
|
-
- @rspack/dev-middleware@0.1.11
|
|
19
|
-
- @rspack/dev-client@0.1.11
|
|
20
|
-
|
|
21
|
-
## 0.1.9
|
|
22
|
-
|
|
23
|
-
### Patch Changes
|
|
24
|
-
|
|
25
|
-
- @rspack/dev-middleware@0.1.9
|
|
26
|
-
- @rspack/dev-server@0.1.9
|
|
27
|
-
- @rspack/dev-client@0.1.9
|
|
28
|
-
|
|
29
|
-
## 0.1.8
|
|
30
|
-
|
|
31
|
-
### Patch Changes
|
|
32
|
-
|
|
33
|
-
- @rspack/dev-middleware@0.1.8
|
|
34
|
-
- @rspack/dev-server@0.1.8
|
|
35
|
-
- @rspack/dev-client@0.1.8
|
|
36
|
-
|
|
37
|
-
## 0.1.7
|
|
38
|
-
|
|
39
|
-
### Patch Changes
|
|
40
|
-
|
|
41
|
-
- Updated dependencies [fff64ea]
|
|
42
|
-
- @rspack/dev-client@0.1.7
|
|
43
|
-
- @rspack/dev-middleware@0.1.7
|
|
44
|
-
- @rspack/dev-server@0.1.7
|
|
45
|
-
|
|
46
|
-
## 0.1.6
|
|
47
|
-
|
|
48
|
-
### Patch Changes
|
|
49
|
-
|
|
50
|
-
- 3607f25: Remove custom dev client and use webpack-dev-server/client direclty
|
|
51
|
-
- Updated dependencies [3607f25]
|
|
52
|
-
- @rspack/dev-client@0.1.6
|
|
53
|
-
- @rspack/dev-server@0.1.6
|
|
54
|
-
- @rspack/dev-middleware@0.1.6
|
|
55
|
-
|
|
56
|
-
## 0.1.5
|
|
57
|
-
|
|
58
|
-
### Patch Changes
|
|
59
|
-
|
|
60
|
-
- @rspack/dev-middleware@0.1.5
|
|
61
|
-
- @rspack/dev-server@0.1.5
|
|
62
|
-
- @rspack/dev-client@0.1.5
|
|
63
|
-
|
|
64
|
-
## 0.1.4
|
|
65
|
-
|
|
66
|
-
### Patch Changes
|
|
67
|
-
|
|
68
|
-
- @rspack/dev-middleware@0.1.4
|
|
69
|
-
- @rspack/dev-server@0.1.4
|
|
70
|
-
- @rspack/dev-client@0.1.4
|
|
71
|
-
|
|
72
|
-
## 0.1.3
|
|
73
|
-
|
|
74
|
-
### Patch Changes
|
|
75
|
-
|
|
76
|
-
- @rspack/dev-middleware@0.1.3
|
|
77
|
-
- @rspack/dev-server@0.1.3
|
|
78
|
-
- @rspack/dev-client@0.1.3
|
|
79
|
-
|
|
80
|
-
## 0.1.2
|
|
81
|
-
|
|
82
|
-
### Patch Changes
|
|
83
|
-
|
|
84
|
-
- d63e3fd: upgrade webpack-dev-server & webpack-dev-middleware
|
|
85
|
-
- bfb1738: fix: react refresh runtime injection
|
|
86
|
-
- d63e3fd: upgrade webpack-dev-server
|
|
87
|
-
- bb4e6a6: use super isWebTarget in dev-server
|
|
88
|
-
- Updated dependencies [d63e3fd]
|
|
89
|
-
- Updated dependencies [a6ac7da]
|
|
90
|
-
- Updated dependencies [deaca70]
|
|
91
|
-
- Updated dependencies [bfb1738]
|
|
92
|
-
- Updated dependencies [d63e3fd]
|
|
93
|
-
- Updated dependencies [bb4e6a6]
|
|
94
|
-
- @rspack/dev-middleware@0.1.2
|
|
95
|
-
- @rspack/dev-server@0.1.2
|
|
96
|
-
- @rspack/dev-client@0.1.2
|
|
97
|
-
|
|
98
|
-
## 0.1.1
|
|
99
|
-
|
|
100
|
-
### Patch Changes
|
|
101
|
-
|
|
102
|
-
- a004765a: Avoid reporting warning the export when src module format is none esm
|
|
103
|
-
- Updated dependencies [f5f661a2]
|
|
104
|
-
- Updated dependencies [a004765a]
|
|
105
|
-
- @rspack/dev-middleware@0.1.1
|
|
106
|
-
- @rspack/dev-client@0.1.1
|
|
107
|
-
- @rspack/dev-server@0.1.1
|
|
108
|
-
|
|
109
|
-
## 0.1.0
|
|
110
|
-
|
|
111
|
-
### Minor Changes
|
|
112
|
-
|
|
113
|
-
- 2ba87f3a: chore: let's rspack
|
|
114
|
-
|
|
115
|
-
### Patch Changes
|
|
116
|
-
|
|
117
|
-
- Updated dependencies [2ba87f3a]
|
|
118
|
-
- @rspack/dev-client@0.1.0
|
|
119
|
-
- @rspack/dev-middleware@0.1.0
|
|
120
|
-
- @rspack/dev-server@0.1.0
|
|
121
|
-
|
|
122
|
-
## 0.0.26
|
|
123
|
-
|
|
124
|
-
### Patch Changes
|
|
125
|
-
|
|
126
|
-
- @rspack/dev-middleware@0.0.26
|
|
127
|
-
- @rspack/dev-server@0.0.26
|
|
128
|
-
- @rspack/dev-client@0.0.26
|
|
129
|
-
|
|
130
|
-
## 0.0.25
|
|
131
|
-
|
|
132
|
-
### Patch Changes
|
|
133
|
-
|
|
134
|
-
- 6d6e65e4: feat: update packages repository config
|
|
135
|
-
- Updated dependencies [6d6e65e4]
|
|
136
|
-
- @rspack/dev-client@0.0.25
|
|
137
|
-
- @rspack/dev-middleware@0.0.25
|
|
138
|
-
- @rspack/dev-server@0.0.25
|
|
139
|
-
|
|
140
|
-
## 0.0.24
|
|
141
|
-
|
|
142
|
-
### Patch Changes
|
|
143
|
-
|
|
144
|
-
- 58b77bafc: feat: add plugin-import
|
|
145
|
-
- 4f432286b: fix: devServer.hot should be true by default when used by rspack api
|
|
146
|
-
- Updated dependencies [58b77bafc]
|
|
147
|
-
- Updated dependencies [4f432286b]
|
|
148
|
-
- @rspack/dev-server@0.0.24
|
|
149
|
-
- @rspack/dev-middleware@0.0.24
|
|
150
|
-
- @rspack/dev-client@0.0.24
|
|
151
|
-
|
|
152
|
-
## 0.0.23
|
|
153
|
-
|
|
154
|
-
### Patch Changes
|
|
155
|
-
|
|
156
|
-
- b67418968: chore: 🤖 use module path instead of module id in diagnositc
|
|
157
|
-
- 962f8a251: fix: should create different module with different module rule
|
|
158
|
-
- 1c7ab6dfd: feat: rspack-cli and devServer support multiCompiler
|
|
159
|
-
- 766c94042: fix rust test
|
|
160
|
-
- 035c15953: basic implementation of compilation.hooks.optimizeChunkModules
|
|
161
|
-
- 82aa28d6b: feat: add copy-plugin
|
|
162
|
-
- c1f19b817: align webpack config optimization.sideEffects
|
|
163
|
-
- Updated dependencies [b67418968]
|
|
164
|
-
- Updated dependencies [962f8a251]
|
|
165
|
-
- Updated dependencies [1c7ab6dfd]
|
|
166
|
-
- Updated dependencies [766c94042]
|
|
167
|
-
- Updated dependencies [035c15953]
|
|
168
|
-
- Updated dependencies [82aa28d6b]
|
|
169
|
-
- Updated dependencies [60fb4c5bf]
|
|
170
|
-
- Updated dependencies [c1f19b817]
|
|
171
|
-
- @rspack/dev-client@0.0.23
|
|
172
|
-
- @rspack/dev-middleware@0.0.23
|
|
173
|
-
- @rspack/dev-server@0.0.23
|
|
174
|
-
|
|
175
|
-
## 0.0.22
|
|
176
|
-
|
|
177
|
-
### Patch Changes
|
|
178
|
-
|
|
179
|
-
- 59edc2cb4: fix watch options
|
|
180
|
-
- ac02a096e: fix: getRspackMemoryAssets failed to get index.html when request path is /
|
|
181
|
-
feat: extends webpack-dev-server
|
|
182
|
-
- 290bf7fb5: feat: add devServer.historyApiFallback options
|
|
183
|
-
- d88ffa666: feat: support devServer.client.webSocketUrl
|
|
184
|
-
- Updated dependencies [ce31cd029]
|
|
185
|
-
- Updated dependencies [59edc2cb4]
|
|
186
|
-
- Updated dependencies [ac02a096e]
|
|
187
|
-
- Updated dependencies [290bf7fb5]
|
|
188
|
-
- Updated dependencies [d88ffa666]
|
|
189
|
-
- Updated dependencies [0269ff40d]
|
|
190
|
-
- @rspack/dev-middleware@0.0.22
|
|
191
|
-
- @rspack/dev-client@0.0.22
|
|
192
|
-
- @rspack/dev-server@0.0.22
|
|
193
|
-
|
|
194
|
-
## 0.0.21
|
|
195
|
-
|
|
196
|
-
### Patch Changes
|
|
197
|
-
|
|
198
|
-
- fix watch
|
|
199
|
-
- Updated dependencies
|
|
200
|
-
- @rspack/core@0.0.21
|
|
201
|
-
- @rspack/dev-client@0.0.21
|
|
202
|
-
- @rspack/dev-middleware@0.0.21
|
|
203
|
-
- @rspack/dev-server@0.0.21
|
|
204
|
-
|
|
205
|
-
## 0.0.20
|
|
206
|
-
|
|
207
|
-
### Patch Changes
|
|
208
|
-
|
|
209
|
-
- fix load extra css chunk
|
|
210
|
-
- Updated dependencies
|
|
211
|
-
- @rspack/core@0.0.20
|
|
212
|
-
- @rspack/dev-client@0.0.20
|
|
213
|
-
- @rspack/dev-middleware@0.0.20
|
|
214
|
-
- @rspack/dev-server@0.0.20
|
|
215
|
-
|
|
216
|
-
## 0.0.19
|
|
217
|
-
|
|
218
|
-
### Patch Changes
|
|
219
|
-
|
|
220
|
-
- 882093b8: support module.resolve
|
|
221
|
-
- Updated dependencies [db66ae2e]
|
|
222
|
-
- Updated dependencies [882093b8]
|
|
223
|
-
- @rspack/core@0.0.19
|
|
224
|
-
- @rspack/dev-client@0.0.19
|
|
225
|
-
- @rspack/dev-middleware@0.0.19
|
|
226
|
-
- @rspack/dev-server@0.0.19
|
|
227
|
-
|
|
228
|
-
## 0.0.18
|
|
229
|
-
|
|
230
|
-
### Patch Changes
|
|
231
|
-
|
|
232
|
-
- bump version
|
|
233
|
-
- Updated dependencies
|
|
234
|
-
- @rspack/core@0.0.18
|
|
235
|
-
- @rspack/dev-client@0.0.18
|
|
236
|
-
- @rspack/dev-middleware@0.0.18
|
|
237
|
-
- @rspack/dev-server@0.0.18
|
|
238
|
-
|
|
239
|
-
## 0.0.17
|
|
240
|
-
|
|
241
|
-
### Patch Changes
|
|
242
|
-
|
|
243
|
-
- upgrade
|
|
244
|
-
- Updated dependencies
|
|
245
|
-
- @rspack/core@0.0.17
|
|
246
|
-
- @rspack/dev-client@0.0.17
|
|
247
|
-
- @rspack/dev-middleware@0.0.17
|
|
248
|
-
- @rspack/dev-server@0.0.17
|
|
249
|
-
|
|
250
|
-
## 0.0.16
|
|
251
|
-
|
|
252
|
-
### Patch Changes
|
|
253
|
-
|
|
254
|
-
- support optional dependency
|
|
255
|
-
- Updated dependencies
|
|
256
|
-
- @rspack/core@0.0.16
|
|
257
|
-
- @rspack/dev-client@0.0.16
|
|
258
|
-
- @rspack/dev-middleware@0.0.16
|
|
259
|
-
- @rspack/dev-server@0.0.16
|
|
260
|
-
|
|
261
|
-
## 0.0.15
|
|
262
|
-
|
|
263
|
-
### Patch Changes
|
|
264
|
-
|
|
265
|
-
- bump version
|
|
266
|
-
- Updated dependencies
|
|
267
|
-
- @rspack/core@0.0.15
|
|
268
|
-
- @rspack/dev-client@0.0.15
|
|
269
|
-
- @rspack/dev-middleware@0.0.15
|
|
270
|
-
- @rspack/dev-server@0.0.15
|
|
271
|
-
|
|
272
|
-
## 0.0.14
|
|
273
|
-
|
|
274
|
-
### Patch Changes
|
|
275
|
-
|
|
276
|
-
- bump version
|
|
277
|
-
- 11e87c61: fix less resolve bug
|
|
278
|
-
- Updated dependencies
|
|
279
|
-
- Updated dependencies [11e87c61]
|
|
280
|
-
- @rspack/core@0.0.14
|
|
281
|
-
- @rspack/dev-client@0.0.14
|
|
282
|
-
- @rspack/dev-middleware@0.0.14
|
|
283
|
-
- @rspack/dev-server@0.0.14
|
|
284
|
-
|
|
285
|
-
## 0.0.13
|
|
286
|
-
|
|
287
|
-
### Patch Changes
|
|
288
|
-
|
|
289
|
-
- 3701a8bf: fix less resolve bug
|
|
290
|
-
- Updated dependencies [3701a8bf]
|
|
291
|
-
- @rspack/core@0.0.13
|
|
292
|
-
- @rspack/dev-client@0.0.13
|
|
293
|
-
- @rspack/dev-middleware@0.0.13
|
|
294
|
-
- @rspack/dev-server@0.0.13
|
|
295
|
-
|
|
296
|
-
## 0.0.12
|
|
297
|
-
|
|
298
|
-
### Patch Changes
|
|
299
|
-
|
|
300
|
-
- @rspack/core@0.0.12
|
|
301
|
-
- @rspack/dev-client@0.0.12
|
|
302
|
-
- @rspack/dev-middleware@0.0.12
|
|
303
|
-
- @rspack/dev-server@0.0.12
|
|
304
|
-
|
|
305
|
-
## 0.0.11
|
|
306
|
-
|
|
307
|
-
### Patch Changes
|
|
308
|
-
|
|
309
|
-
- Updated dependencies [2eca9ade]
|
|
310
|
-
- @rspack/core@0.0.11
|
|
311
|
-
- @rspack/dev-middleware@0.0.11
|
|
312
|
-
- @rspack/dev-server@0.0.11
|
|
313
|
-
- @rspack/dev-client@0.0.11
|
|
314
|
-
|
|
315
|
-
## 0.0.10
|
|
316
|
-
|
|
317
|
-
### Patch Changes
|
|
318
|
-
|
|
319
|
-
- Updated dependencies [062e692d]
|
|
320
|
-
- @rspack/core@0.0.10
|
|
321
|
-
- @rspack/dev-middleware@0.0.10
|
|
322
|
-
- @rspack/dev-server@0.0.10
|
|
323
|
-
- @rspack/dev-client@0.0.10
|
|
324
|
-
|
|
325
|
-
## 0.0.9
|
|
326
|
-
|
|
327
|
-
### Patch Changes
|
|
328
|
-
|
|
329
|
-
- @rspack/core@0.0.9
|
|
330
|
-
- @rspack/dev-middleware@0.0.9
|
|
331
|
-
- @rspack/dev-server@0.0.9
|
|
332
|
-
- @rspack/dev-client@0.0.9
|
|
333
|
-
|
|
334
|
-
## 0.0.8
|
|
335
|
-
|
|
336
|
-
### Patch Changes
|
|
337
|
-
|
|
338
|
-
- 589b99bb: bump to 0.0.8
|
|
339
|
-
- Updated dependencies [589b99bb]
|
|
340
|
-
- @rspack/core@0.0.8
|
|
341
|
-
- @rspack/dev-client@0.0.8
|
|
342
|
-
- @rspack/dev-middleware@0.0.8
|
|
343
|
-
- @rspack/dev-server@0.0.8
|
|
344
|
-
|
|
345
|
-
## 0.0.6
|
|
346
|
-
|
|
347
|
-
### Patch Changes
|
|
348
|
-
|
|
349
|
-
- e6d0926a: unify version
|
|
350
|
-
- Updated dependencies [e6d0926a]
|
|
351
|
-
- @rspack/core@0.0.6
|
|
352
|
-
- @rspack/dev-server@0.0.6
|
|
353
|
-
- @rspack/dev-middleware@0.0.6
|
|
354
|
-
- @rspack/dev-client@0.0.6
|
|
355
|
-
|
|
356
|
-
## 0.0.4
|
|
357
|
-
|
|
358
|
-
### Patch Changes
|
|
359
|
-
|
|
360
|
-
- d466288: add process_assets hook
|
|
361
|
-
|
|
362
|
-
## 0.0.3
|
|
363
|
-
|
|
364
|
-
### Patch Changes
|
|
365
|
-
|
|
366
|
-
- 536f6f70: fix broken lib
|
|
367
|
-
|
|
368
|
-
## 0.0.2
|
|
369
|
-
|
|
370
|
-
### Patch Changes
|
|
371
|
-
|
|
372
|
-
- bd57e818: first release
|
package/jest.config.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
|
|
2
|
-
const config = {
|
|
3
|
-
preset: "ts-jest",
|
|
4
|
-
testEnvironmentOptions: {
|
|
5
|
-
url: "http://localhost/"
|
|
6
|
-
},
|
|
7
|
-
testMatch: ["<rootDir>/tests/*.test.ts", "<rootDir>/tests/e2e/*.test.ts"],
|
|
8
|
-
cache: false,
|
|
9
|
-
testTimeout: process.env.CI ? 120000 : 30000
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
module.exports = config;
|
package/src/config.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import WebpackDevServer from "webpack-dev-server";
|
|
2
|
-
import type { DevServer } from "@rspack/core";
|
|
3
|
-
|
|
4
|
-
export type { DevServer };
|
|
5
|
-
|
|
6
|
-
export interface ResolvedDevServer extends DevServer {
|
|
7
|
-
port: number | string;
|
|
8
|
-
static: false | Array<WebpackDevServer.NormalizedStatic>;
|
|
9
|
-
devMiddleware: DevServer["devMiddleware"];
|
|
10
|
-
// FIXME: hot should be `boolean | 'only'`
|
|
11
|
-
hot: boolean;
|
|
12
|
-
host?: string;
|
|
13
|
-
open: WebpackDevServer.Open[];
|
|
14
|
-
magicHtml: boolean;
|
|
15
|
-
liveReload: boolean;
|
|
16
|
-
webSocketServer: false | WebpackDevServer.WebSocketServerConfiguration;
|
|
17
|
-
proxy: WebpackDevServer.ProxyConfigArray;
|
|
18
|
-
client: WebpackDevServer.ClientConfiguration;
|
|
19
|
-
allowedHosts: "auto" | string[] | "all";
|
|
20
|
-
bonjour: false | Record<string, never> | WebpackDevServer.BonjourOptions;
|
|
21
|
-
compress: boolean;
|
|
22
|
-
historyApiFallback: false | WebpackDevServer.ConnectHistoryApiFallbackOptions;
|
|
23
|
-
server: WebpackDevServer.ServerConfiguration;
|
|
24
|
-
ipc: string | undefined;
|
|
25
|
-
setupExitSignals: boolean;
|
|
26
|
-
watchFiles: WebpackDevServer.WatchFiles[];
|
|
27
|
-
}
|
package/src/index.ts
DELETED
package/src/middleware.ts
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { extname } from "path";
|
|
2
|
-
import type { IncomingMessage } from "http";
|
|
3
|
-
import type { Compiler } from "@rspack/core";
|
|
4
|
-
import wdm from "webpack-dev-middleware";
|
|
5
|
-
import type { RequestHandler, Response } from "express";
|
|
6
|
-
import mime from "mime-types";
|
|
7
|
-
import { parse } from "url";
|
|
8
|
-
import crypto from "crypto";
|
|
9
|
-
|
|
10
|
-
function etag(buf: any) {
|
|
11
|
-
const hash = crypto.createHash("sha256").update(buf).digest("hex");
|
|
12
|
-
const etag = hash;
|
|
13
|
-
return etag;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export function getRspackMemoryAssets(
|
|
17
|
-
compiler: Compiler,
|
|
18
|
-
rdm: ReturnType<typeof wdm>
|
|
19
|
-
): RequestHandler {
|
|
20
|
-
const publicPath = compiler.options.output.publicPath
|
|
21
|
-
? compiler.options.output.publicPath.replace(/\/$/, "") + "/"
|
|
22
|
-
: "/";
|
|
23
|
-
return function (req: IncomingMessage, res: Response, next: () => void) {
|
|
24
|
-
const { method, url } = req;
|
|
25
|
-
if (method !== "GET") {
|
|
26
|
-
return next();
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// css hmr will append query string, so here need to remove query string
|
|
30
|
-
const path = parse(url).pathname;
|
|
31
|
-
// asset name is not start with /, so path need to slice 1
|
|
32
|
-
const filename = path.startsWith(publicPath)
|
|
33
|
-
? path.slice(publicPath.length)
|
|
34
|
-
: path.slice(1);
|
|
35
|
-
let buffer =
|
|
36
|
-
compiler.getAsset(filename) ??
|
|
37
|
-
(() => {
|
|
38
|
-
const { index } = rdm.context.options;
|
|
39
|
-
const indexValue =
|
|
40
|
-
typeof index === "undefined" || typeof index === "boolean"
|
|
41
|
-
? "index.html"
|
|
42
|
-
: index;
|
|
43
|
-
return compiler.getAsset(filename + indexValue);
|
|
44
|
-
})();
|
|
45
|
-
if (!buffer) {
|
|
46
|
-
return next();
|
|
47
|
-
}
|
|
48
|
-
let contentType;
|
|
49
|
-
if (filename === "") {
|
|
50
|
-
contentType = "text/html; charset=utf-8";
|
|
51
|
-
} else {
|
|
52
|
-
contentType =
|
|
53
|
-
mime.contentType(extname(path)) || "text/plain; charset=utf-8";
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const calcEtag = etag(buffer);
|
|
57
|
-
|
|
58
|
-
const oldEtag = req.headers["if-none-match"];
|
|
59
|
-
res.setHeader("Content-Type", contentType);
|
|
60
|
-
res.setHeader("ETag", calcEtag);
|
|
61
|
-
if (calcEtag === oldEtag) {
|
|
62
|
-
res.status(304).send();
|
|
63
|
-
} else {
|
|
64
|
-
res.send(buffer);
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
}
|