@rspack/dev-server 0.0.0-02df4322c5-20221125030212

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 ADDED
@@ -0,0 +1,70 @@
1
+ # rspack-dev-server
2
+
3
+ ## 0.0.0-02df4322c5-20221125030212
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [2eca9adeda]
8
+ - @rspack/core@0.0.0-02df4322c5-20221125030212
9
+ - @rspack/dev-middleware@0.0.0-02df4322c5-20221125030212
10
+ - @rspack/dev-server@0.0.0-02df4322c5-20221125030212
11
+ - @rspack/dev-client@0.0.0-02df4322c5-20221125030212
12
+
13
+ ## 0.0.10
14
+
15
+ ### Patch Changes
16
+
17
+ - Updated dependencies [062e692d]
18
+ - @rspack/core@0.0.10
19
+ - @rspack/dev-middleware@0.0.10
20
+ - @rspack/dev-server@0.0.10
21
+ - @rspack/dev-client@0.0.10
22
+
23
+ ## 0.0.9
24
+
25
+ ### Patch Changes
26
+
27
+ - @rspack/core@0.0.9
28
+ - @rspack/dev-middleware@0.0.9
29
+ - @rspack/dev-server@0.0.9
30
+ - @rspack/dev-client@0.0.9
31
+
32
+ ## 0.0.8
33
+
34
+ ### Patch Changes
35
+
36
+ - 589b99bb: bump to 0.0.8
37
+ - Updated dependencies [589b99bb]
38
+ - @rspack/core@0.0.8
39
+ - @rspack/dev-client@0.0.8
40
+ - @rspack/dev-middleware@0.0.8
41
+ - @rspack/dev-server@0.0.8
42
+
43
+ ## 0.0.6
44
+
45
+ ### Patch Changes
46
+
47
+ - e6d0926a: unify version
48
+ - Updated dependencies [e6d0926a]
49
+ - @rspack/core@0.0.6
50
+ - @rspack/dev-server@0.0.6
51
+ - @rspack/dev-middleware@0.0.6
52
+ - @rspack/dev-client@0.0.6
53
+
54
+ ## 0.0.4
55
+
56
+ ### Patch Changes
57
+
58
+ - d466288: add process_assets hook
59
+
60
+ ## 0.0.3
61
+
62
+ ### Patch Changes
63
+
64
+ - 536f6f70: fix broken lib
65
+
66
+ ## 0.0.2
67
+
68
+ ### Patch Changes
69
+
70
+ - bd57e818: first release
package/README.md ADDED
@@ -0,0 +1 @@
1
+ # rspack-dev-server
@@ -0,0 +1,17 @@
1
+ import type { Dev, WebSocketServerOptions, RspackOptionsNormalized } from "@rspack/core";
2
+ import type { WatchOptions } from "chokidar";
3
+ export interface ResolvedDev {
4
+ host: string;
5
+ port: number;
6
+ static: {
7
+ directory: string;
8
+ watch: false | WatchOptions;
9
+ };
10
+ devMiddleware: {};
11
+ hot: boolean;
12
+ open: boolean;
13
+ liveReload: boolean;
14
+ webSocketServer: false | WebSocketServerOptions;
15
+ }
16
+ export declare function resolveDevOptions(devConfig: Dev, compilerOptions: RspackOptionsNormalized): ResolvedDev;
17
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,GAAG,EACH,sBAAsB,EACtB,uBAAuB,EACvB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAI7C,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,KAAK,GAAG,YAAY,CAAC;KAC5B,CAAC;IACF,aAAa,EAAE,EAAE,CAAC;IAClB,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,KAAK,GAAG,sBAAsB,CAAC;CAChD;AAED,wBAAgB,iBAAiB,CAChC,SAAS,EAAE,GAAG,EACd,eAAe,EAAE,uBAAuB,GACtC,WAAW,CAyCb"}
package/dist/config.js ADDED
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.resolveDevOptions = void 0;
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const core_1 = require("@rspack/core");
9
+ function resolveDevOptions(devConfig, compilerOptions) {
10
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
11
+ const open = true;
12
+ const hot = (_a = devConfig.hot) !== null && _a !== void 0 ? _a : true;
13
+ // --- static
14
+ const directory = (_c = (_b = devConfig.static) === null || _b === void 0 ? void 0 : _b.directory) !== null && _c !== void 0 ? _c : node_path_1.default.resolve(compilerOptions.context, "dist");
15
+ let watch = {};
16
+ if (((_d = devConfig.static) === null || _d === void 0 ? void 0 : _d.watch) === false) {
17
+ watch = false;
18
+ }
19
+ else if (((_e = devConfig.static) === null || _e === void 0 ? void 0 : _e.watch) === true) {
20
+ watch = (0, core_1.resolveWatchOption)({});
21
+ }
22
+ else if ((_f = devConfig.static) === null || _f === void 0 ? void 0 : _f.watch) {
23
+ watch = (_g = devConfig.static) === null || _g === void 0 ? void 0 : _g.watch;
24
+ }
25
+ // ---
26
+ const devMiddleware = (_h = devConfig.devMiddleware) !== null && _h !== void 0 ? _h : {};
27
+ const liveReload = (_j = devConfig.liveReload) !== null && _j !== void 0 ? _j : true;
28
+ let webSocketServer = {};
29
+ if (devConfig.webSocketServer === false) {
30
+ webSocketServer = false;
31
+ }
32
+ else if (devConfig.webSocketServer === true) {
33
+ webSocketServer = {};
34
+ }
35
+ else if (devConfig.webSocketServer) {
36
+ webSocketServer = devConfig.webSocketServer;
37
+ }
38
+ return {
39
+ host: devConfig.host,
40
+ port: devConfig.port ? Number(devConfig.port) : undefined,
41
+ static: {
42
+ directory,
43
+ watch
44
+ },
45
+ devMiddleware,
46
+ open,
47
+ hot,
48
+ liveReload,
49
+ webSocketServer
50
+ };
51
+ }
52
+ exports.resolveDevOptions = resolveDevOptions;
53
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;AAMA,0DAA6B;AAC7B,uCAAkD;AAgBlD,SAAgB,iBAAiB,CAChC,SAAc,EACd,eAAwC;;IAExC,MAAM,IAAI,GAAG,IAAI,CAAC;IAClB,MAAM,GAAG,GAAG,MAAA,SAAS,CAAC,GAAG,mCAAI,IAAI,CAAC;IAClC,aAAa;IACb,MAAM,SAAS,GACd,MAAA,MAAA,SAAS,CAAC,MAAM,0CAAE,SAAS,mCAC3B,mBAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/C,IAAI,KAAK,GAAyB,EAAE,CAAC;IACrC,IAAI,CAAA,MAAA,SAAS,CAAC,MAAM,0CAAE,KAAK,MAAK,KAAK,EAAE;QACtC,KAAK,GAAG,KAAK,CAAC;KACd;SAAM,IAAI,CAAA,MAAA,SAAS,CAAC,MAAM,0CAAE,KAAK,MAAK,IAAI,EAAE;QAC5C,KAAK,GAAG,IAAA,yBAAkB,EAAC,EAAE,CAAC,CAAC;KAC/B;SAAM,IAAI,MAAA,SAAS,CAAC,MAAM,0CAAE,KAAK,EAAE;QACnC,KAAK,GAAG,MAAA,SAAS,CAAC,MAAM,0CAAE,KAAK,CAAC;KAChC;IACD,MAAM;IACN,MAAM,aAAa,GAAG,MAAA,SAAS,CAAC,aAAa,mCAAI,EAAE,CAAC;IACpD,MAAM,UAAU,GAAG,MAAA,SAAS,CAAC,UAAU,mCAAI,IAAI,CAAC;IAEhD,IAAI,eAAe,GAAmC,EAAE,CAAC;IACzD,IAAI,SAAS,CAAC,eAAe,KAAK,KAAK,EAAE;QACxC,eAAe,GAAG,KAAK,CAAC;KACxB;SAAM,IAAI,SAAS,CAAC,eAAe,KAAK,IAAI,EAAE;QAC9C,eAAe,GAAG,EAAE,CAAC;KACrB;SAAM,IAAI,SAAS,CAAC,eAAe,EAAE;QACrC,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC;KAC5C;IAED,OAAO;QACN,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;QACzD,MAAM,EAAE;YACP,SAAS;YACT,KAAK;SACL;QACD,aAAa;QACb,IAAI;QACJ,GAAG;QACH,UAAU;QACV,eAAe;KACf,CAAC;AACH,CAAC;AA5CD,8CA4CC"}
@@ -0,0 +1,2 @@
1
+ export { RspackDevServer } from "./server";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RspackDevServer = void 0;
4
+ var server_1 = require("./server");
5
+ Object.defineProperty(exports, "RspackDevServer", { enumerable: true, get: function () { return server_1.RspackDevServer; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAA2C;AAAlC,yGAAA,eAAe,OAAA"}
@@ -0,0 +1,7 @@
1
+ export interface Logger {
2
+ error(...args: any[]): void;
3
+ warn(...args: any[]): void;
4
+ info(...args: any[]): void;
5
+ }
6
+ export declare function createLogger(name: string): Logger;
7
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACtB,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;CAC3B;AAUD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAejD"}
package/dist/logger.js ADDED
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createLogger = void 0;
4
+ const COLOR = {
5
+ RESET: "\x1b[0m",
6
+ //
7
+ RED: "\x1b[31m",
8
+ GREEN: "\x1b[32m",
9
+ YELLOW: "\x1b[33m"
10
+ };
11
+ function createLogger(name) {
12
+ if (!name.length) {
13
+ throw Error();
14
+ }
15
+ return {
16
+ error(...msgs) {
17
+ console.log("[", name, "]:", COLOR.RED, msgs, COLOR.RESET);
18
+ },
19
+ warn(...msgs) {
20
+ console.log("[", name, "]:", COLOR.YELLOW, msgs, COLOR.RESET);
21
+ },
22
+ info(...msgs) {
23
+ console.log("[", name, "]:", COLOR.GREEN, msgs, COLOR.RESET);
24
+ }
25
+ };
26
+ }
27
+ exports.createLogger = createLogger;
28
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;AAMA,MAAM,KAAK,GAAG;IACb,KAAK,EAAE,SAAS;IAChB,EAAE;IACF,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;CAClB,CAAC;AAEF,SAAgB,YAAY,CAAC,IAAY;IACxC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QACjB,MAAM,KAAK,EAAE,CAAC;KACd;IACD,OAAO;QACN,KAAK,CAAC,GAAG,IAAW;YACnB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC,GAAG,IAAW;YAClB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,GAAG,IAAW;YAClB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9D,CAAC;KACD,CAAC;AACH,CAAC;AAfD,oCAeC"}
@@ -0,0 +1,9 @@
1
+ import type { RspackOptionsNormalized } from "@rspack/core";
2
+ interface Status {
3
+ isUnloading: boolean;
4
+ currentHash: string;
5
+ previousHash: string[];
6
+ }
7
+ export declare function reloadApp({ liveReload, hot }: RspackOptionsNormalized["devServer"], status: Status): void;
8
+ export {};
9
+ //# sourceMappingURL=reload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reload.d.ts","sourceRoot":"","sources":["../src/reload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAE5D,UAAU,MAAM;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,wBAAgB,SAAS,CACxB,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,uBAAuB,CAAC,WAAW,CAAC,EACzD,MAAM,EAAE,MAAM,QAoBd"}
package/dist/reload.js ADDED
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reloadApp = void 0;
4
+ function reloadApp({ liveReload, hot }, status) {
5
+ if (status.isUnloading) {
6
+ return;
7
+ }
8
+ function applyReload(rootWindow, intervalId) {
9
+ clearInterval(intervalId);
10
+ console.log("App update, Reloading...");
11
+ rootWindow.location.reload();
12
+ }
13
+ if (liveReload) {
14
+ let rootWindow = self;
15
+ const intervalId = self.setInterval(() => {
16
+ if (rootWindow.location.protocol !== "about:") {
17
+ applyReload(rootWindow, intervalId);
18
+ }
19
+ });
20
+ }
21
+ }
22
+ exports.reloadApp = reloadApp;
23
+ //# sourceMappingURL=reload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reload.js","sourceRoot":"","sources":["../src/reload.ts"],"names":[],"mappings":";;;AAQA,SAAgB,SAAS,CACxB,EAAE,UAAU,EAAE,GAAG,EAAwC,EACzD,MAAc;IAEd,IAAI,MAAM,CAAC,WAAW,EAAE;QACvB,OAAO;KACP;IAED,SAAS,WAAW,CAAC,UAAkB,EAAE,UAAkB;QAC1D,aAAa,CAAC,UAAU,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED,IAAI,UAAU,EAAE;QACf,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YACxC,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBAC9C,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;aACpC;QACF,CAAC,CAAC,CAAC;KACH;AACF,CAAC;AAtBD,8BAsBC"}
@@ -0,0 +1,55 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import type { Compiler, Dev } from "@rspack/core";
4
+ import type { Logger } from "./logger";
5
+ import type { Socket } from "net";
6
+ import type { FSWatcher, WatchOptions } from "chokidar";
7
+ import type { WebSocketServer, ClientConnection } from "./ws";
8
+ import type { Application } from "express";
9
+ import type { Server } from "http";
10
+ import type { ResolvedDev } from "./config";
11
+ declare type Host = "local-ip" | "local-ipv4" | "local-ipv6" | string;
12
+ declare type Port = number | string | "auto";
13
+ export declare class RspackDevServer {
14
+ compiler: Compiler;
15
+ options: ResolvedDev;
16
+ logger: Logger;
17
+ staticWatchers: FSWatcher[];
18
+ sockets: Socket[];
19
+ app: Application;
20
+ server: Server;
21
+ private listeners;
22
+ private currentHash;
23
+ private middleware;
24
+ webSocketServer: WebSocketServer | undefined;
25
+ constructor(compiler: Compiler);
26
+ normalizeOptions(dev?: Dev): ResolvedDev;
27
+ rewriteCompilerOptions(): void;
28
+ addAdditionEntires(): void;
29
+ static isAbsoluteURL(URL: string): boolean;
30
+ static findIp(gateway: string): string | undefined;
31
+ static internalIP(family: "v6" | "v4"): Promise<string | undefined>;
32
+ static internalIPSync(family: "v6" | "v4"): Promise<string | undefined>;
33
+ static getHostname(hostname?: Host): Promise<string>;
34
+ static getFreePort(port: Port, host: string): Promise<string | number>;
35
+ static findCacheDir(): string;
36
+ private getCompilerOptions;
37
+ sendMessage(clients: ClientConnection[], type: string, data?: any, params?: any): void;
38
+ watchFiles(watchPath: string | string[], watchOptions?: WatchOptions): void;
39
+ invalidate(callback?: () => void): void;
40
+ start(): Promise<void>;
41
+ startCallback(callback?: (err?: Error) => void): void;
42
+ stopCallback(callback?: (err?: Error) => void): void;
43
+ listen(port: Port, hostname: string, fn: (err?: Error) => void): void;
44
+ close(callback?: (err?: Error) => void): void;
45
+ stop(): Promise<void>;
46
+ private setupApp;
47
+ private setupWatchStaticFiles;
48
+ private setupDevMiddleware;
49
+ private createWebsocketServer;
50
+ private setupMiddlewares;
51
+ private createServer;
52
+ private setupHooks;
53
+ }
54
+ export {};
55
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/server.js ADDED
@@ -0,0 +1,225 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.RspackDevServer = void 0;
7
+ const chokidar_1 = __importDefault(require("chokidar"));
8
+ const http_1 = __importDefault(require("http"));
9
+ const logger_1 = require("./logger");
10
+ const webpack_dev_server_1 = __importDefault(require("webpack-dev-server"));
11
+ const express_1 = __importDefault(require("express"));
12
+ const dev_middleware_1 = __importDefault(require("@rspack/dev-middleware"));
13
+ const ws_1 = require("./ws");
14
+ const config_1 = require("./config");
15
+ // copy from webpack-dev-server
16
+ class RspackDevServer {
17
+ constructor(compiler) {
18
+ this.compiler = compiler;
19
+ this.logger = (0, logger_1.createLogger)("rspack-dev-server");
20
+ this.staticWatchers = [];
21
+ this.listeners = [];
22
+ this.sockets = [];
23
+ this.currentHash = "";
24
+ this.options = this.normalizeOptions(compiler.options.devServer);
25
+ this.rewriteCompilerOptions();
26
+ this.addAdditionEntires();
27
+ }
28
+ normalizeOptions(dev = {}) {
29
+ return (0, config_1.resolveDevOptions)(dev, this.compiler.options);
30
+ }
31
+ rewriteCompilerOptions() {
32
+ var _a, _b;
33
+ if (!this.compiler.options.builtins.react) {
34
+ this.compiler.options.builtins.react = {};
35
+ }
36
+ this.compiler.options.builtins.react.development =
37
+ (_a = this.compiler.options.builtins.react.development) !== null && _a !== void 0 ? _a : true;
38
+ if (this.options.hot) {
39
+ this.compiler.options.builtins.react.refresh =
40
+ (_b = this.compiler.options.builtins.react.refresh) !== null && _b !== void 0 ? _b : true;
41
+ }
42
+ }
43
+ addAdditionEntires() {
44
+ var _a;
45
+ const entries = [];
46
+ if (this.options.hot) {
47
+ const hotUpdateEntryPath = require.resolve("@rspack/dev-client/devServer");
48
+ entries.push(hotUpdateEntryPath);
49
+ const cssHotEntryPath = require.resolve("@rspack/dev-client/css");
50
+ entries.push(cssHotEntryPath);
51
+ if ((_a = this.compiler.options.builtins.react) === null || _a === void 0 ? void 0 : _a.refresh) {
52
+ const reactRefreshEntryPath = require.resolve("@rspack/dev-client/react-refresh");
53
+ entries.push(reactRefreshEntryPath);
54
+ }
55
+ }
56
+ const devClientEntryPath = require.resolve("@rspack/dev-client");
57
+ entries.push(devClientEntryPath);
58
+ for (const key in this.compiler.options.entry) {
59
+ this.compiler.options.entry[key].unshift(...entries);
60
+ }
61
+ }
62
+ static isAbsoluteURL(URL) {
63
+ return webpack_dev_server_1.default.isAbsoluteURL(URL);
64
+ }
65
+ static findIp(gateway) {
66
+ return webpack_dev_server_1.default.findIp(gateway);
67
+ }
68
+ static async internalIP(family) {
69
+ return webpack_dev_server_1.default.internalIP(family);
70
+ }
71
+ static async internalIPSync(family) {
72
+ return webpack_dev_server_1.default.internalIPSync(family);
73
+ }
74
+ static async getHostname(hostname) {
75
+ return webpack_dev_server_1.default.getHostname(hostname);
76
+ }
77
+ static async getFreePort(port, host) {
78
+ return webpack_dev_server_1.default.getFreePort(port, host);
79
+ }
80
+ static findCacheDir() {
81
+ // TODO: we need remove the `webpack-dev-server` tag in WebpackDevServer;
82
+ return "";
83
+ }
84
+ getCompilerOptions() {
85
+ return this.compiler.options;
86
+ }
87
+ sendMessage(clients, type, data, params) {
88
+ for (const client of clients) {
89
+ if (client.readyState === 1) {
90
+ client.send(JSON.stringify({ type, data, params }));
91
+ }
92
+ }
93
+ }
94
+ watchFiles(watchPath, watchOptions) {
95
+ const watcher = chokidar_1.default.watch(watchPath, watchOptions);
96
+ // disabling refreshing on changing the content
97
+ if (this.options.liveReload) {
98
+ // TODO: remove this after we had memory filesystem
99
+ if (this.options.hot) {
100
+ return;
101
+ }
102
+ watcher.on("change", item => {
103
+ if (this.webSocketServer) {
104
+ this.sendMessage(this.webSocketServer.clients, "static-changed", item);
105
+ }
106
+ });
107
+ }
108
+ this.staticWatchers.push(watcher);
109
+ }
110
+ invalidate(callback = () => { }) {
111
+ if (this.middleware) {
112
+ this.middleware.invalidate(callback);
113
+ }
114
+ }
115
+ async start() {
116
+ this.setupHooks();
117
+ this.setupApp();
118
+ this.createServer();
119
+ this.setupWatchStaticFiles();
120
+ this.createWebsocketServer();
121
+ this.setupDevMiddleware();
122
+ this.setupMiddlewares();
123
+ const host = await RspackDevServer.getHostname(this.options.host);
124
+ const port = await RspackDevServer.getFreePort(this.options.port, host);
125
+ await new Promise(resolve => this.server.listen({
126
+ port,
127
+ host
128
+ }, () => {
129
+ this.logger.info(`Loopback: http://localhost:${port}`);
130
+ let internalIPv4 = webpack_dev_server_1.default.internalIPSync("v4");
131
+ this.logger.info(`Your Network (IPV4) http://${internalIPv4}:${port}`);
132
+ resolve({});
133
+ }));
134
+ }
135
+ startCallback(callback) {
136
+ throw new Error("Method not implemented.");
137
+ }
138
+ stopCallback(callback) {
139
+ throw new Error("Method not implemented.");
140
+ }
141
+ listen(port, hostname, fn) {
142
+ throw new Error("Method not implemented.");
143
+ }
144
+ close(callback) {
145
+ throw new Error("Method not implemented.");
146
+ }
147
+ async stop() {
148
+ await Promise.all(this.staticWatchers.map(watcher => watcher.close()));
149
+ this.middleware = null;
150
+ this.staticWatchers = [];
151
+ if (this.server) {
152
+ this.server.close();
153
+ }
154
+ if (this.webSocketServer) {
155
+ await new Promise(resolve => {
156
+ this.webSocketServer.implementation.close(() => {
157
+ resolve(void 0);
158
+ });
159
+ for (const client of this.webSocketServer.clients)
160
+ client.terminate();
161
+ });
162
+ }
163
+ }
164
+ setupApp() {
165
+ this.app = (0, express_1.default)();
166
+ }
167
+ setupWatchStaticFiles() {
168
+ if (this.options.static.watch === false) {
169
+ return;
170
+ }
171
+ this.watchFiles(this.options.static.directory, this.options.static.watch);
172
+ }
173
+ setupDevMiddleware() {
174
+ // @ts-ignored
175
+ this.middleware = (0, dev_middleware_1.default)(this.compiler, this.options.devMiddleware);
176
+ }
177
+ createWebsocketServer() {
178
+ if (this.options.webSocketServer !== false) {
179
+ this.webSocketServer = (0, ws_1.createWebsocketServer)(this);
180
+ }
181
+ }
182
+ setupMiddlewares() {
183
+ var _a;
184
+ const middlewares = [];
185
+ middlewares.push({
186
+ name: "rdm",
187
+ middleware: this.middleware
188
+ });
189
+ // Todo Add options
190
+ const connectHistoryApiFallback = require("connect-history-api-fallback");
191
+ middlewares.push({
192
+ name: "[connect-history-api-fallback]",
193
+ middleware: connectHistoryApiFallback({
194
+ verbose: true,
195
+ logger: console.log.bind(console)
196
+ })
197
+ });
198
+ middlewares.push({
199
+ name: "express-static",
200
+ path: (_a = this.compiler.options.output.publicPath) !== null && _a !== void 0 ? _a : "/",
201
+ middleware: express_1.default.static(this.options.static.directory)
202
+ });
203
+ middlewares.forEach(m => {
204
+ if (m.path) {
205
+ this.app.use(m.path, m.middleware);
206
+ }
207
+ else {
208
+ this.app.use(m.middleware);
209
+ }
210
+ });
211
+ }
212
+ createServer() {
213
+ this.server = http_1.default.createServer(this.app);
214
+ }
215
+ setupHooks() {
216
+ this.compiler.hooks.done.tap("dev-server", stats => {
217
+ // send Message
218
+ if (this.webSocketServer) {
219
+ this.sendMessage(this.webSocketServer.clients, "ok"); // TODO: send hash
220
+ }
221
+ });
222
+ }
223
+ }
224
+ exports.RspackDevServer = RspackDevServer;
225
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/ws.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ import type { RspackDevServer } from "./server";
2
+ import WebSocket from "ws";
3
+ export declare type ClientConnection = WebSocket & {
4
+ isAlive?: boolean;
5
+ };
6
+ export interface WebSocketServer {
7
+ heartbeatInterval: number;
8
+ implementation: WebSocket.Server<WebSocket.WebSocket>;
9
+ server: RspackDevServer;
10
+ clients: ClientConnection[];
11
+ }
12
+ export declare function createWebsocketServer(server: RspackDevServer): WebSocketServer;
13
+ //# sourceMappingURL=ws.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../src/ws.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,SAAS,MAAM,IAAI,CAAC;AAG3B,oBAAY,gBAAgB,GAAG,SAAS,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEjE,MAAM,WAAW,eAAe;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC5B;AAED,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,eAAe,GACrB,eAAe,CAEjB"}
package/dist/ws.js ADDED
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createWebsocketServer = void 0;
7
+ const WebsocketServer_1 = __importDefault(require("webpack-dev-server/lib/servers/WebsocketServer"));
8
+ function createWebsocketServer(server) {
9
+ return new WebsocketServer_1.default(server);
10
+ }
11
+ exports.createWebsocketServer = createWebsocketServer;
12
+ //# sourceMappingURL=ws.js.map
package/dist/ws.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws.js","sourceRoot":"","sources":["../src/ws.ts"],"names":[],"mappings":";;;;;;AAEA,qGAA6E;AAW7E,SAAgB,qBAAqB,CACpC,MAAuB;IAEvB,OAAO,IAAI,yBAAe,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC;AAJD,sDAIC"}
package/jest.config.js ADDED
@@ -0,0 +1,7 @@
1
+ /** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
2
+ module.exports = {
3
+ preset: "ts-jest",
4
+ testEnvironment: "node",
5
+ testMatch: ["<rootDir>/tests/*.test.ts"],
6
+ cache: false
7
+ };
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@rspack/dev-server",
3
+ "description": "",
4
+ "version": "0.0.0-02df4322c5-20221125030212",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "author": "",
8
+ "license": "ISC",
9
+ "devDependencies": {
10
+ "tsm": "^2.2.2",
11
+ "typescript": "^4.7.4",
12
+ "@types/node": "16.11.7",
13
+ "@types/express": "4.17.14",
14
+ "@types/connect-history-api-fallback": "1.3.5",
15
+ "@rspack/core": "0.0.0-02df4322c5-20221125030212"
16
+ },
17
+ "dependencies": {
18
+ "express": "4.18.1",
19
+ "chokidar": "3.5.3",
20
+ "ws": "8.8.1",
21
+ "webpack-dev-server": "4.11.1",
22
+ "connect-history-api-fallback": "2.0.0",
23
+ "@rspack/dev-client": "0.0.0-02df4322c5-20221125030212",
24
+ "@rspack/dev-middleware": "0.0.0-02df4322c5-20221125030212",
25
+ "@rspack/dev-server": "0.0.0-02df4322c5-20221125030212"
26
+ },
27
+ "peerDependencies": {
28
+ "@rspack/core": "0.0.0-02df4322c5-20221125030212"
29
+ },
30
+ "scripts": {
31
+ "build": "rm -rf lib/ && tsc",
32
+ "dev": "tsc -w",
33
+ "test": "jest --verbose"
34
+ }
35
+ }