@rspack/dev-server 1.0.3 → 1.0.5
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/client/index.js +66 -29
- package/dist/ansiHTML.js +1 -1
- package/dist/server.d.ts +1 -0
- package/dist/server.js +31 -2
- package/package.json +18 -4
package/client/index.js
CHANGED
|
@@ -16,19 +16,19 @@ function _objectSpread(target) {
|
|
|
16
16
|
i % 2
|
|
17
17
|
? ownKeys(Object(source), !0).forEach(function (key) {
|
|
18
18
|
_defineProperty(target, key, source[key]);
|
|
19
|
-
|
|
19
|
+
})
|
|
20
20
|
: Object.getOwnPropertyDescriptors
|
|
21
|
-
|
|
22
|
-
target,
|
|
23
|
-
Object.getOwnPropertyDescriptors(source)
|
|
24
|
-
)
|
|
25
|
-
: ownKeys(Object(source)).forEach(function (key) {
|
|
26
|
-
Object.defineProperty(
|
|
21
|
+
? Object.defineProperties(
|
|
27
22
|
target,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
23
|
+
Object.getOwnPropertyDescriptors(source)
|
|
24
|
+
)
|
|
25
|
+
: ownKeys(Object(source)).forEach(function (key) {
|
|
26
|
+
Object.defineProperty(
|
|
27
|
+
target,
|
|
28
|
+
key,
|
|
29
|
+
Object.getOwnPropertyDescriptor(source, key)
|
|
30
|
+
);
|
|
31
|
+
});
|
|
32
32
|
}
|
|
33
33
|
return target;
|
|
34
34
|
}
|
|
@@ -106,6 +106,28 @@ var status = {
|
|
|
106
106
|
currentHash: typeof __webpack_hash__ !== "undefined" ? __webpack_hash__ : ""
|
|
107
107
|
};
|
|
108
108
|
|
|
109
|
+
var decodeOverlayOptions = function decodeOverlayOptions(overlayOptions) {
|
|
110
|
+
if (typeof overlayOptions === "object") {
|
|
111
|
+
["warnings", "errors", "runtimeErrors"].forEach(function (property) {
|
|
112
|
+
if (typeof overlayOptions[property] === "string") {
|
|
113
|
+
var overlayFilterFunctionString = decodeURIComponent(
|
|
114
|
+
overlayOptions[property]
|
|
115
|
+
);
|
|
116
|
+
|
|
117
|
+
// eslint-disable-next-line no-new-func
|
|
118
|
+
var overlayFilterFunction = new Function(
|
|
119
|
+
"message",
|
|
120
|
+
"var callback = ".concat(
|
|
121
|
+
overlayFilterFunctionString,
|
|
122
|
+
"\n return callback(message)"
|
|
123
|
+
)
|
|
124
|
+
);
|
|
125
|
+
overlayOptions[property] = overlayFilterFunction;
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
|
|
109
131
|
/** @type {Options} */
|
|
110
132
|
var options = {
|
|
111
133
|
hot: false,
|
|
@@ -132,6 +154,7 @@ if (parsedResourceQuery.progress === "true") {
|
|
|
132
154
|
options.progress = true;
|
|
133
155
|
enabledFeatures.Progress = true;
|
|
134
156
|
}
|
|
157
|
+
|
|
135
158
|
if (parsedResourceQuery.overlay) {
|
|
136
159
|
try {
|
|
137
160
|
options.overlay = JSON.parse(parsedResourceQuery.overlay);
|
|
@@ -149,6 +172,7 @@ if (parsedResourceQuery.overlay) {
|
|
|
149
172
|
},
|
|
150
173
|
options.overlay
|
|
151
174
|
);
|
|
175
|
+
decodeOverlayOptions(options.overlay);
|
|
152
176
|
}
|
|
153
177
|
enabledFeatures.Overlay = true;
|
|
154
178
|
}
|
|
@@ -183,15 +207,15 @@ var overlay =
|
|
|
183
207
|
? {
|
|
184
208
|
trustedTypesPolicyName: options.overlay.trustedTypesPolicyName,
|
|
185
209
|
catchRuntimeError: options.overlay.runtimeErrors
|
|
186
|
-
|
|
210
|
+
}
|
|
187
211
|
: {
|
|
188
212
|
trustedTypesPolicyName: false,
|
|
189
213
|
catchRuntimeError: options.overlay
|
|
190
|
-
|
|
191
|
-
|
|
214
|
+
}
|
|
215
|
+
)
|
|
192
216
|
: {
|
|
193
217
|
send: function send() {}
|
|
194
|
-
|
|
218
|
+
};
|
|
195
219
|
var onSocketMessage = {
|
|
196
220
|
hot: function hot() {
|
|
197
221
|
if (parsedResourceQuery.hot === "false") {
|
|
@@ -232,6 +256,7 @@ var onSocketMessage = {
|
|
|
232
256
|
return;
|
|
233
257
|
}
|
|
234
258
|
options.overlay = value;
|
|
259
|
+
decodeOverlayOptions(options.overlay);
|
|
235
260
|
},
|
|
236
261
|
/**
|
|
237
262
|
* @param {number} value
|
|
@@ -321,16 +346,22 @@ var onSocketMessage = {
|
|
|
321
346
|
for (var i = 0; i < printableWarnings.length; i++) {
|
|
322
347
|
log.warn(printableWarnings[i]);
|
|
323
348
|
}
|
|
324
|
-
var
|
|
349
|
+
var overlayWarningsSetting =
|
|
325
350
|
typeof options.overlay === "boolean"
|
|
326
351
|
? options.overlay
|
|
327
352
|
: options.overlay && options.overlay.warnings;
|
|
328
|
-
if (
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
353
|
+
if (overlayWarningsSetting) {
|
|
354
|
+
var warningsToDisplay =
|
|
355
|
+
typeof overlayWarningsSetting === "function"
|
|
356
|
+
? _warnings.filter(overlayWarningsSetting)
|
|
357
|
+
: _warnings;
|
|
358
|
+
if (warningsToDisplay.length) {
|
|
359
|
+
overlay.send({
|
|
360
|
+
type: "BUILD_ERROR",
|
|
361
|
+
level: "warning",
|
|
362
|
+
messages: _warnings
|
|
363
|
+
});
|
|
364
|
+
}
|
|
334
365
|
}
|
|
335
366
|
if (params && params.preventReloading) {
|
|
336
367
|
return;
|
|
@@ -352,16 +383,22 @@ var onSocketMessage = {
|
|
|
352
383
|
for (var i = 0; i < printableErrors.length; i++) {
|
|
353
384
|
log.error(printableErrors[i]);
|
|
354
385
|
}
|
|
355
|
-
var
|
|
386
|
+
var overlayErrorsSettings =
|
|
356
387
|
typeof options.overlay === "boolean"
|
|
357
388
|
? options.overlay
|
|
358
389
|
: options.overlay && options.overlay.errors;
|
|
359
|
-
if (
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
390
|
+
if (overlayErrorsSettings) {
|
|
391
|
+
var errorsToDisplay =
|
|
392
|
+
typeof overlayErrorsSettings === "function"
|
|
393
|
+
? _errors.filter(overlayErrorsSettings)
|
|
394
|
+
: _errors;
|
|
395
|
+
if (errorsToDisplay.length) {
|
|
396
|
+
overlay.send({
|
|
397
|
+
type: "BUILD_ERROR",
|
|
398
|
+
level: "error",
|
|
399
|
+
messages: _errors
|
|
400
|
+
});
|
|
401
|
+
}
|
|
365
402
|
}
|
|
366
403
|
},
|
|
367
404
|
/**
|
package/dist/ansiHTML.js
CHANGED
package/dist/server.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import type { FSWatcher } from "chokidar";
|
|
|
7
7
|
import WebpackDevServer from "webpack-dev-server";
|
|
8
8
|
import type { DevServer, ResolvedDevServer } from "./config";
|
|
9
9
|
export declare class RspackDevServer extends WebpackDevServer {
|
|
10
|
+
static getFreePort: (port: string, host: string) => Promise<any>;
|
|
10
11
|
/**
|
|
11
12
|
* resolved after `normalizedOptions`
|
|
12
13
|
*/
|
package/dist/server.js
CHANGED
|
@@ -21,6 +21,28 @@ const webpack_dev_server_1 = __importDefault(require("webpack-dev-server"));
|
|
|
21
21
|
const package_json_1 = require("../package.json");
|
|
22
22
|
const patch_1 = require("./patch");
|
|
23
23
|
(0, patch_1.applyDevServerPatch)();
|
|
24
|
+
const encodeOverlaySettings = (setting) => typeof setting === "function"
|
|
25
|
+
? encodeURIComponent(setting.toString())
|
|
26
|
+
: setting;
|
|
27
|
+
const getFreePort = async function getFreePort(port, host) {
|
|
28
|
+
if (typeof port !== "undefined" && port !== null && port !== "auto") {
|
|
29
|
+
return port;
|
|
30
|
+
}
|
|
31
|
+
const pRetry = require("p-retry");
|
|
32
|
+
const getPort = require("webpack-dev-server/lib/getPort");
|
|
33
|
+
const basePort = typeof process.env.WEBPACK_DEV_SERVER_BASE_PORT !== "undefined"
|
|
34
|
+
? Number.parseInt(process.env.WEBPACK_DEV_SERVER_BASE_PORT, 10)
|
|
35
|
+
: 8080;
|
|
36
|
+
// Try to find unused port and listen on it for 3 times,
|
|
37
|
+
// if port is not specified in options.
|
|
38
|
+
const defaultPortRetry = typeof process.env.WEBPACK_DEV_SERVER_PORT_RETRY !== "undefined"
|
|
39
|
+
? Number.parseInt(process.env.WEBPACK_DEV_SERVER_PORT_RETRY, 10)
|
|
40
|
+
: 3;
|
|
41
|
+
return pRetry(() => getPort(basePort, host), {
|
|
42
|
+
retries: defaultPortRetry
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
webpack_dev_server_1.default.getFreePort = getFreePort;
|
|
24
46
|
class RspackDevServer extends webpack_dev_server_1.default {
|
|
25
47
|
constructor(options, compiler) {
|
|
26
48
|
super(options, compiler);
|
|
@@ -279,9 +301,15 @@ class RspackDevServer extends webpack_dev_server_1.default {
|
|
|
279
301
|
searchParams.set("progress", String(client.progress));
|
|
280
302
|
}
|
|
281
303
|
if (typeof client.overlay !== "undefined") {
|
|
282
|
-
|
|
304
|
+
const overlayString = typeof client.overlay === "boolean"
|
|
283
305
|
? String(client.overlay)
|
|
284
|
-
: JSON.stringify(
|
|
306
|
+
: JSON.stringify({
|
|
307
|
+
...client.overlay,
|
|
308
|
+
errors: encodeOverlaySettings(client.overlay.errors),
|
|
309
|
+
warnings: encodeOverlaySettings(client.overlay.warnings),
|
|
310
|
+
runtimeErrors: encodeOverlaySettings(client.overlay.runtimeErrors)
|
|
311
|
+
});
|
|
312
|
+
searchParams.set("overlay", overlayString);
|
|
285
313
|
}
|
|
286
314
|
if (typeof client.reconnect !== "undefined") {
|
|
287
315
|
searchParams.set("reconnect", typeof client.reconnect === "number"
|
|
@@ -312,5 +340,6 @@ class RspackDevServer extends webpack_dev_server_1.default {
|
|
|
312
340
|
}
|
|
313
341
|
}
|
|
314
342
|
}
|
|
343
|
+
RspackDevServer.getFreePort = getFreePort;
|
|
315
344
|
RspackDevServer.version = package_json_1.version;
|
|
316
345
|
exports.RspackDevServer = RspackDevServer;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rspack/dev-server",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Development server for rspack",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -29,15 +29,27 @@
|
|
|
29
29
|
"directory": "packages/rspack-dev-server"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
+
"@jest/test-sequencer": "^29.7.0",
|
|
32
33
|
"@rspack/plugin-react-refresh": "1.0.0",
|
|
33
34
|
"@types/connect-history-api-fallback": "1.5.4",
|
|
34
35
|
"@types/express": "4.17.21",
|
|
35
36
|
"@types/mime-types": "2.1.4",
|
|
36
37
|
"@types/ws": "8.5.10",
|
|
38
|
+
"css-loader": "^6.11.0",
|
|
39
|
+
"graceful-fs": "4.2.10",
|
|
40
|
+
"http-proxy": "^1.18.1",
|
|
37
41
|
"jest-serializer-path": "^0.1.15",
|
|
42
|
+
"prettier": "3.2.5",
|
|
43
|
+
"puppeteer": "^23.2.2",
|
|
44
|
+
"require-from-string": "^2.0.2",
|
|
45
|
+
"sockjs-client": "^1.6.1",
|
|
46
|
+
"style-loader": "^3.3.3",
|
|
47
|
+
"supertest": "^6.1.3",
|
|
48
|
+
"tcp-port-used": "^1.0.2",
|
|
38
49
|
"typescript": "5.0.2",
|
|
39
|
-
"
|
|
40
|
-
"@rspack/
|
|
50
|
+
"wait-for-expect": "^3.0.2",
|
|
51
|
+
"@rspack/dev-server": "1.0.5",
|
|
52
|
+
"@rspack/core": "1.0.5"
|
|
41
53
|
},
|
|
42
54
|
"dependencies": {
|
|
43
55
|
"chokidar": "^3.6.0",
|
|
@@ -45,6 +57,7 @@
|
|
|
45
57
|
"express": "^4.19.2",
|
|
46
58
|
"http-proxy-middleware": "^2.0.6",
|
|
47
59
|
"mime-types": "^2.1.35",
|
|
60
|
+
"p-retry": "4.6.2",
|
|
48
61
|
"webpack-dev-middleware": "^7.4.2",
|
|
49
62
|
"webpack-dev-server": "5.0.4",
|
|
50
63
|
"ws": "^8.16.0"
|
|
@@ -55,7 +68,8 @@
|
|
|
55
68
|
"scripts": {
|
|
56
69
|
"build": "tsc -b ./tsconfig.build.json",
|
|
57
70
|
"dev": "tsc -w -b ./tsconfig.build.json",
|
|
58
|
-
"test": "
|
|
71
|
+
"test:install": "cross-env ./node_modules/.bin/puppeteer browsers install chrome",
|
|
72
|
+
"test": "pnpm run test:install && cross-env NO_COLOR=1 node --expose-gc --max-old-space-size=8192 --experimental-vm-modules ../../node_modules/jest-cli/bin/jest --colors",
|
|
59
73
|
"api-extractor": "api-extractor run --verbose",
|
|
60
74
|
"api-extractor:ci": "api-extractor run --verbose || diff temp/api.md etc/api.md"
|
|
61
75
|
}
|