diff --git a/.vscode/extensions.json b/.vscode/extensions.json
index ed91718..593120a 100644
--- a/.vscode/extensions.json
+++ b/.vscode/extensions.json
@@ -1,8 +1,8 @@
{
- "recommendations": [
- "streetsidesoftware.code-spell-checker",
- "tamasfe.even-better-toml",
- "rust-lang.rust-analyzer",
- "fabiospampinato.vscode-debug-launcher"
- ]
+ "recommendations": [
+ "streetsidesoftware.code-spell-checker",
+ "tamasfe.even-better-toml",
+ "rust-lang.rust-analyzer",
+ "fabiospampinato.vscode-debug-launcher"
+ ]
}
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 07e2d5c..4c3dfeb 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,18 +1,18 @@
{
- "search.useIgnoreFiles": true,
- "[json]": {
- "editor.defaultFormatter": "biomejs.biome"
- },
- "[typescript]": {
- "editor.defaultFormatter": "biomejs.biome"
- },
- "[javascript]": {
- "editor.defaultFormatter": "biomejs.biome"
- },
- "[javascriptreact]": {
- "editor.defaultFormatter": "biomejs.biome"
- },
- "[css]": {
- "editor.defaultFormatter": "biomejs.biome"
- }
-}
\ No newline at end of file
+ "search.useIgnoreFiles": true,
+ "[json]": {
+ "editor.defaultFormatter": "biomejs.biome"
+ },
+ "[typescript]": {
+ "editor.defaultFormatter": "biomejs.biome"
+ },
+ "[javascript]": {
+ "editor.defaultFormatter": "biomejs.biome"
+ },
+ "[javascriptreact]": {
+ "editor.defaultFormatter": "biomejs.biome"
+ },
+ "[css]": {
+ "editor.defaultFormatter": "biomejs.biome"
+ }
+}
diff --git a/biome.jsonc b/biome.jsonc
index bf03ed3..f798737 100644
--- a/biome.jsonc
+++ b/biome.jsonc
@@ -1,8 +1,11 @@
{
- "$schema": "https://biomejs.dev/schemas/1.8.0/schema.json",
- "linter": {
- "ignore": [
- "client-src/**/*.js"
- ]
- }
-}
\ No newline at end of file
+ "$schema": "https://biomejs.dev/schemas/1.8.0/schema.json",
+ "files": {
+ "ignore": [
+ "client-src/**/*",
+ "client/**/*.js",
+ "dist/**/*",
+ "tests/fixtures/**/*"
+ ]
+ }
+}
diff --git a/client-src/index.js b/client-src/index.js
index c415d7b..567eace 100644
--- a/client-src/index.js
+++ b/client-src/index.js
@@ -1,5 +1,6 @@
// @ts-nocheck
+import hotEmitter from "@rspack/core/hot/emitter.js";
/* global __resourceQuery, __webpack_hash__ */
/* Rspack dev server runtime client */
///
@@ -9,16 +10,13 @@ import {
formatProblem,
} from "webpack-dev-server/client/overlay.js";
import socket from "webpack-dev-server/client/socket.js";
-import createSocketURL from "webpack-dev-server/client/utils/createSocketURL.js";
import {
- log,
- logEnabledFeatures,
- setLogLevel,
-} from "webpack-dev-server/client/utils/log.js";
-import parseURL from "webpack-dev-server/client/utils/parseURL.js";
+ defineProgressElement,
+ isProgressSupported,
+} from "webpack-dev-server/client/progress.js";
+import socket from "webpack-dev-server/client/socket.js";
+import { log, setLogLevel } from "webpack-dev-server/client/utils/log.js";
import sendMessage from "webpack-dev-server/client/utils/sendMessage.js";
-import stripAnsi from "webpack-dev-server/client/utils/stripAnsi.js";
-import reloadApp from "./utils/reloadApp.js";
/**
* @typedef {Object} OverlayOptions
@@ -57,18 +55,57 @@ const decodeOverlayOptions = (overlayOptions) => {
);
// eslint-disable-next-line no-new-func
- const overlayFilterFunction = new Function(
+ overlayOptions[property] = new Function(
"message",
`var callback = ${overlayFilterFunctionString}
return callback(message)`,
);
-
- overlayOptions[property] = overlayFilterFunction;
}
});
}
};
+/**
+ * @param {string} resourceQuery
+ * @returns {{ [key: string]: string | boolean }}
+ */
+const parseURL = (resourceQuery) => {
+ /** @type {{ [key: string]: string }} */
+ let result = {};
+
+ if (typeof resourceQuery === "string" && resourceQuery !== "") {
+ const searchParams = resourceQuery.slice(1).split("&");
+
+ for (let i = 0; i < searchParams.length; i++) {
+ const pair = searchParams[i].split("=");
+
+ result[pair[0]] = decodeURIComponent(pair[1]);
+ }
+ } else {
+ // Else, get the url from the
+