@rspack/dev-server 1.0.4 → 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 +51 -14
- package/dist/server.d.ts +1 -1
- package/dist/server.js +31 -20
- package/package.json +11 -4
package/client/index.js
CHANGED
|
@@ -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
|
}
|
|
@@ -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/server.d.ts
CHANGED
|
@@ -7,7 +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)
|
|
10
|
+
static getFreePort: (port: string, host: string) => Promise<any>;
|
|
11
11
|
/**
|
|
12
12
|
* resolved after `normalizedOptions`
|
|
13
13
|
*/
|
package/dist/server.js
CHANGED
|
@@ -21,25 +21,29 @@ 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
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const getPort = require("webpack-dev-server/lib/getPort");
|
|
31
|
-
const basePort = typeof process.env.WEBPACK_DEV_SERVER_BASE_PORT !== "undefined"
|
|
32
|
-
? Number.parseInt(process.env.WEBPACK_DEV_SERVER_BASE_PORT, 10)
|
|
33
|
-
: 8080;
|
|
34
|
-
// Try to find unused port and listen on it for 3 times,
|
|
35
|
-
// if port is not specified in options.
|
|
36
|
-
const defaultPortRetry = typeof process.env.WEBPACK_DEV_SERVER_PORT_RETRY !== "undefined"
|
|
37
|
-
? Number.parseInt(process.env.WEBPACK_DEV_SERVER_PORT_RETRY, 10)
|
|
38
|
-
: 3;
|
|
39
|
-
return pRetry(() => getPort(basePort, host), {
|
|
40
|
-
retries: defaultPortRetry
|
|
41
|
-
});
|
|
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;
|
|
42
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;
|
|
46
|
+
class RspackDevServer extends webpack_dev_server_1.default {
|
|
43
47
|
constructor(options, compiler) {
|
|
44
48
|
super(options, compiler);
|
|
45
49
|
}
|
|
@@ -297,9 +301,15 @@ class RspackDevServer extends webpack_dev_server_1.default {
|
|
|
297
301
|
searchParams.set("progress", String(client.progress));
|
|
298
302
|
}
|
|
299
303
|
if (typeof client.overlay !== "undefined") {
|
|
300
|
-
|
|
304
|
+
const overlayString = typeof client.overlay === "boolean"
|
|
301
305
|
? String(client.overlay)
|
|
302
|
-
: 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);
|
|
303
313
|
}
|
|
304
314
|
if (typeof client.reconnect !== "undefined") {
|
|
305
315
|
searchParams.set("reconnect", typeof client.reconnect === "number"
|
|
@@ -330,5 +340,6 @@ class RspackDevServer extends webpack_dev_server_1.default {
|
|
|
330
340
|
}
|
|
331
341
|
}
|
|
332
342
|
}
|
|
343
|
+
RspackDevServer.getFreePort = getFreePort;
|
|
333
344
|
RspackDevServer.version = package_json_1.version;
|
|
334
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,21 +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",
|
|
37
39
|
"graceful-fs": "4.2.10",
|
|
38
40
|
"http-proxy": "^1.18.1",
|
|
39
41
|
"jest-serializer-path": "^0.1.15",
|
|
42
|
+
"prettier": "3.2.5",
|
|
40
43
|
"puppeteer": "^23.2.2",
|
|
44
|
+
"require-from-string": "^2.0.2",
|
|
41
45
|
"sockjs-client": "^1.6.1",
|
|
46
|
+
"style-loader": "^3.3.3",
|
|
42
47
|
"supertest": "^6.1.3",
|
|
43
48
|
"tcp-port-used": "^1.0.2",
|
|
44
49
|
"typescript": "5.0.2",
|
|
45
|
-
"
|
|
46
|
-
"@rspack/dev-server": "1.0.
|
|
50
|
+
"wait-for-expect": "^3.0.2",
|
|
51
|
+
"@rspack/dev-server": "1.0.5",
|
|
52
|
+
"@rspack/core": "1.0.5"
|
|
47
53
|
},
|
|
48
54
|
"dependencies": {
|
|
49
55
|
"chokidar": "^3.6.0",
|
|
@@ -62,7 +68,8 @@
|
|
|
62
68
|
"scripts": {
|
|
63
69
|
"build": "tsc -b ./tsconfig.build.json",
|
|
64
70
|
"dev": "tsc -w -b ./tsconfig.build.json",
|
|
65
|
-
"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",
|
|
66
73
|
"api-extractor": "api-extractor run --verbose",
|
|
67
74
|
"api-extractor:ci": "api-extractor run --verbose || diff temp/api.md etc/api.md"
|
|
68
75
|
}
|