webpack-dev-service 0.10.2 → 0.11.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.
Files changed (59) hide show
  1. package/cjs/client/client.cjs +2 -2
  2. package/cjs/client/events.cjs +1 -1
  3. package/cjs/client/hot.cjs +1 -1
  4. package/cjs/client/index.cjs +1 -1
  5. package/cjs/client/main.cjs +1 -1
  6. package/cjs/client/ui/overlay.cjs +9 -2
  7. package/cjs/client/ui/progress.cjs +5 -2
  8. package/cjs/client/ui/utils.cjs +1 -1
  9. package/cjs/server/compose.cjs +1 -1
  10. package/cjs/server/dev/Service.cjs +3 -1
  11. package/cjs/server/dev/index.cjs +1 -1
  12. package/cjs/server/dev/middleware.cjs +1 -1
  13. package/cjs/server/dev/utils/fs.cjs +1 -1
  14. package/cjs/server/dev/utils/hash.cjs +1 -1
  15. package/cjs/server/dev/utils/http.cjs +2 -2
  16. package/cjs/server/dev/utils/path.cjs +1 -1
  17. package/cjs/server/dev/utils/paths.cjs +2 -2
  18. package/cjs/server/dev/utils/ready.cjs +1 -1
  19. package/cjs/server/dev/utils/setupHooks.cjs +4 -4
  20. package/cjs/server/dev/utils/setupOutputFileSystem.cjs +1 -1
  21. package/cjs/server/dev/utils/setupWatching.cjs +1 -1
  22. package/cjs/server/dev/utils/setupWriteToDisk.cjs +1 -1
  23. package/cjs/server/hot/Socket.cjs +13 -12
  24. package/cjs/server/hot/index.cjs +1 -1
  25. package/cjs/server/hot/utils.cjs +5 -7
  26. package/cjs/server/index.cjs +1 -1
  27. package/cjs/server/schema.cjs +3 -3
  28. package/cjs/server/utils.cjs +1 -1
  29. package/esm/client/client.js +2 -2
  30. package/esm/client/events.js +1 -1
  31. package/esm/client/hot.js +1 -1
  32. package/esm/client/index.js +1 -1
  33. package/esm/client/main.js +1 -1
  34. package/esm/client/ui/overlay.js +9 -2
  35. package/esm/client/ui/progress.js +5 -2
  36. package/esm/client/ui/utils.js +1 -1
  37. package/esm/server/compose.js +1 -1
  38. package/esm/server/dev/Service.js +3 -1
  39. package/esm/server/dev/index.js +1 -1
  40. package/esm/server/dev/middleware.js +1 -1
  41. package/esm/server/dev/utils/fs.js +1 -1
  42. package/esm/server/dev/utils/hash.js +1 -1
  43. package/esm/server/dev/utils/http.js +2 -2
  44. package/esm/server/dev/utils/path.js +1 -1
  45. package/esm/server/dev/utils/paths.js +2 -2
  46. package/esm/server/dev/utils/ready.js +1 -1
  47. package/esm/server/dev/utils/setupHooks.js +4 -4
  48. package/esm/server/dev/utils/setupOutputFileSystem.js +1 -1
  49. package/esm/server/dev/utils/setupWatching.js +1 -1
  50. package/esm/server/dev/utils/setupWriteToDisk.js +1 -1
  51. package/esm/server/hot/Socket.js +14 -13
  52. package/esm/server/hot/index.js +1 -1
  53. package/esm/server/hot/utils.js +6 -7
  54. package/esm/server/index.js +1 -1
  55. package/esm/server/schema.js +3 -3
  56. package/esm/server/utils.js +1 -1
  57. package/package.json +7 -7
  58. package/types/server/dev/interface.d.ts +1 -1
  59. package/types/server/hot/utils.d.ts +1 -2
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -84,7 +84,7 @@ function createClient(options) {
84
84
  const parseMessage = message => {
85
85
  try {
86
86
  return JSON.parse(message.data);
87
- } catch (_a) {
87
+ } catch {
88
88
  return null;
89
89
  }
90
90
  };
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -175,8 +175,15 @@ const HTML = `
175
175
  </div>
176
176
  `;
177
177
  class Overlay {
178
+ hidden = true;
179
+ name;
180
+ close;
181
+ dialog;
182
+ errorsList;
183
+ errorsTitle;
184
+ warningsList;
185
+ warningsTitle;
178
186
  constructor(name) {
179
- this.hidden = true;
180
187
  const root = utils.getRootElement(OVERLAY);
181
188
  utils.injectCSS(CSS, root);
182
189
  const [dialog] = utils.appendHTML(HTML, root);
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -60,8 +60,11 @@ const HTML = `
60
60
  </svg>
61
61
  `;
62
62
  class Progress {
63
+ timer;
64
+ hidden = true;
65
+ svg;
66
+ track;
63
67
  constructor() {
64
- this.hidden = true;
65
68
  const root = utils.getRootElement(PROGRESS);
66
69
  utils.injectCSS(CSS, root);
67
70
  [this.svg] = utils.appendHTML(HTML, root);
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -32,6 +32,8 @@ const destroy__default = /*#__PURE__*/ _interopDefault(destroy);
32
32
  * @class Service
33
33
  */
34
34
  class Service {
35
+ root;
36
+ options;
35
37
  /**
36
38
  * @constructor
37
39
  * @description Create file service.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -101,7 +101,7 @@ function isETagFresh(match, etag) {
101
101
  function decodeURI(URI) {
102
102
  try {
103
103
  return decodeURIComponent(URI);
104
- } catch (_a) {
104
+ } catch {
105
105
  return -1;
106
106
  }
107
107
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -26,7 +26,7 @@ function getPublicPath(compilation) {
26
26
  // Get the path.
27
27
  try {
28
28
  return new url.URL(path).pathname;
29
- } catch (_a) {
29
+ } catch {
30
30
  return path;
31
31
  }
32
32
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -67,7 +67,7 @@ function setupHooks(context) {
67
67
  context.logger.log('compilation starting...');
68
68
  };
69
69
  const {
70
- onCompilerDone = (stats, statsOptions) => {
70
+ onCompilationDone = (stats, statsOptions) => {
71
71
  const printedStats = stats.toString(statsOptions);
72
72
  // Avoid extra empty line when `stats: 'none'`.
73
73
  if (printedStats) {
@@ -83,8 +83,8 @@ function setupHooks(context) {
83
83
  const { stats } = context;
84
84
  // Check if still in valid state.
85
85
  if (stats) {
86
- // Call onCompilerDone.
87
- onCompilerDone(stats, statsOptions);
86
+ // Call onCompilationDone.
87
+ onCompilationDone(stats, statsOptions);
88
88
  // Callbacks.
89
89
  const { callbacks } = context;
90
90
  // Clear callbacks.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -30,21 +30,22 @@ function entrypoint() {
30
30
  const filename = require.main.filename;
31
31
  try {
32
32
  return path.dirname(url.fileURLToPath(filename));
33
- } catch (_a) {
33
+ } catch {
34
34
  return path.dirname(filename);
35
35
  }
36
36
  }
37
37
  const client = path.resolve(entrypoint(), '../../client/main.cjs');
38
38
  class Socket {
39
+ logger;
40
+ compiler;
41
+ server;
42
+ options;
43
+ stats = null;
39
44
  constructor(compiler, options) {
40
- this.stats = null;
41
45
  this.compiler = compiler;
42
46
  this.options = utils.getOptions(options);
43
- this.server = new WebSocket.WebSocketServer({
44
- noServer: true,
45
- path: this.options.path
46
- });
47
47
  this.logger = compiler.getInfrastructureLogger(utils$1.PLUGIN_NAME);
48
+ this.server = new WebSocket.WebSocketServer({ noServer: true, path: this.options.path });
48
49
  this.setupWss();
49
50
  this.setupHooks();
50
51
  this.setupPlugins();
@@ -52,17 +53,17 @@ class Socket {
52
53
  setupWss() {
53
54
  const { server, logger } = this;
54
55
  server.on('connection', client => {
56
+ logger.log('client connected');
57
+ client.on('close', () => {
58
+ logger.log('client disconnected');
59
+ });
55
60
  if (this.stats) {
56
61
  this.broadcastStats([client], this.stats);
57
62
  }
58
- logger.log('client connected');
59
63
  });
60
64
  server.on('error', error => {
61
65
  logger.error(error);
62
66
  });
63
- server.on('close', function () {
64
- logger.log('client disconnected');
65
- });
66
67
  }
67
68
  setupHooks() {
68
69
  const { compiler } = this;
@@ -151,7 +152,7 @@ class Socket {
151
152
  upgrade(context) {
152
153
  const { server } = this;
153
154
  const { req: request } = context;
154
- if (utils.isUpgradable(context, utils.WEBSOCKET_RE) && server.shouldHandle(request)) {
155
+ if (utils.isUpgradable(context) && server.shouldHandle(request)) {
155
156
  context.respond = false;
156
157
  const { socket } = context;
157
158
  const head = Buffer.alloc(0);
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -14,7 +14,10 @@ const utils = require('../utils.cjs');
14
14
  /**
15
15
  * @module utils
16
16
  */
17
- const WEBSOCKET_RE = /^websocket$/i;
17
+ function isUpgradable(context) {
18
+ const { upgrade } = context.headers;
19
+ return !!upgrade && /^websocket$/i.test(upgrade.trim());
20
+ }
18
21
  function normalize(path) {
19
22
  const segments = [];
20
23
  const parts = path.split(/[\\/]+/);
@@ -46,10 +49,6 @@ function getOptions(options) {
46
49
  settings.path = normalize(settings.path);
47
50
  return settings;
48
51
  }
49
- function isUpgradable(context, detector) {
50
- const { upgrade } = context.headers;
51
- return !!upgrade && detector.test(upgrade.trim());
52
- }
53
52
  function hasIssues(issues) {
54
53
  return Array.isArray(issues) && issues.length > 0;
55
54
  }
@@ -92,7 +91,6 @@ function getTimestamp({ builtAt, children = [] }) {
92
91
  return timestamp < 0 ? Date.now() : timestamp;
93
92
  }
94
93
 
95
- exports.WEBSOCKET_RE = WEBSOCKET_RE;
96
94
  exports.getOptions = getOptions;
97
95
  exports.getStatsOptions = getStatsOptions;
98
96
  exports.getTimestamp = getTimestamp;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -116,9 +116,9 @@ const schema = {
116
116
  }
117
117
  ]
118
118
  },
119
- onCompilerDone: {
119
+ onCompilationDone: {
120
120
  instanceof: 'Function',
121
- description: 'Callback function when the compiler is done, providing statistics and options.'
121
+ description: 'Callback function when the compilation is done, providing statistics and options.'
122
122
  }
123
123
  },
124
124
  additionalProperties: false
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -82,7 +82,7 @@ function createClient(options) {
82
82
  const parseMessage = message => {
83
83
  try {
84
84
  return JSON.parse(message.data);
85
- } catch (_a) {
85
+ } catch {
86
86
  return null;
87
87
  }
88
88
  };
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
package/esm/client/hot.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -173,8 +173,15 @@ const HTML = `
173
173
  </div>
174
174
  `;
175
175
  class Overlay {
176
+ hidden = true;
177
+ name;
178
+ close;
179
+ dialog;
180
+ errorsList;
181
+ errorsTitle;
182
+ warningsList;
183
+ warningsTitle;
176
184
  constructor(name) {
177
- this.hidden = true;
178
185
  const root = getRootElement(OVERLAY);
179
186
  injectCSS(CSS, root);
180
187
  const [dialog] = appendHTML(HTML, root);
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -58,8 +58,11 @@ const HTML = `
58
58
  </svg>
59
59
  `;
60
60
  class Progress {
61
+ timer;
62
+ hidden = true;
63
+ svg;
64
+ track;
61
65
  constructor() {
62
- this.hidden = true;
63
66
  const root = getRootElement(PROGRESS);
64
67
  injectCSS(CSS, root);
65
68
  [this.svg] = appendHTML(HTML, root);
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -23,6 +23,8 @@ import { isConditionalGET, isPreconditionFailure, parseRanges } from './utils/ht
23
23
  * @class Service
24
24
  */
25
25
  class Service {
26
+ root;
27
+ options;
26
28
  /**
27
29
  * @constructor
28
30
  * @description Create file service.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -93,7 +93,7 @@ function isETagFresh(match, etag) {
93
93
  function decodeURI(URI) {
94
94
  try {
95
95
  return decodeURIComponent(URI);
96
- } catch (_a) {
96
+ } catch {
97
97
  return -1;
98
98
  }
99
99
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -24,7 +24,7 @@ function getPublicPath(compilation) {
24
24
  // Get the path.
25
25
  try {
26
26
  return new URL(path).pathname;
27
- } catch (_a) {
27
+ } catch {
28
28
  return path;
29
29
  }
30
30
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -59,7 +59,7 @@ function setupHooks(context) {
59
59
  context.logger.log('compilation starting...');
60
60
  };
61
61
  const {
62
- onCompilerDone = (stats, statsOptions) => {
62
+ onCompilationDone = (stats, statsOptions) => {
63
63
  const printedStats = stats.toString(statsOptions);
64
64
  // Avoid extra empty line when `stats: 'none'`.
65
65
  if (printedStats) {
@@ -75,8 +75,8 @@ function setupHooks(context) {
75
75
  const { stats } = context;
76
76
  // Check if still in valid state.
77
77
  if (stats) {
78
- // Call onCompilerDone.
79
- onCompilerDone(stats, statsOptions);
78
+ // Call onCompilationDone.
79
+ onCompilationDone(stats, statsOptions);
80
80
  // Callbacks.
81
81
  const { callbacks } = context;
82
82
  // Clear callbacks.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -12,7 +12,7 @@ import { resolve, dirname } from 'path';
12
12
  import WebSocket, { WebSocketServer } from 'ws';
13
13
  import webpack from 'webpack';
14
14
  import { PLUGIN_NAME, getCompilers } from '../utils.js';
15
- import { getOptions, getStatsOptions, getTimestamp, isUpgradable, hasIssues, WEBSOCKET_RE } from './utils.js';
15
+ import { getOptions, getStatsOptions, getTimestamp, isUpgradable, hasIssues } from './utils.js';
16
16
 
17
17
  /**
18
18
  * @module Socket
@@ -21,21 +21,22 @@ function entrypoint() {
21
21
  const filename = import.meta.url;
22
22
  try {
23
23
  return dirname(fileURLToPath(filename));
24
- } catch (_a) {
24
+ } catch {
25
25
  return dirname(filename);
26
26
  }
27
27
  }
28
28
  const client = resolve(entrypoint(), '../../client/main.js');
29
29
  class Socket {
30
+ logger;
31
+ compiler;
32
+ server;
33
+ options;
34
+ stats = null;
30
35
  constructor(compiler, options) {
31
- this.stats = null;
32
36
  this.compiler = compiler;
33
37
  this.options = getOptions(options);
34
- this.server = new WebSocketServer({
35
- noServer: true,
36
- path: this.options.path
37
- });
38
38
  this.logger = compiler.getInfrastructureLogger(PLUGIN_NAME);
39
+ this.server = new WebSocketServer({ noServer: true, path: this.options.path });
39
40
  this.setupWss();
40
41
  this.setupHooks();
41
42
  this.setupPlugins();
@@ -43,17 +44,17 @@ class Socket {
43
44
  setupWss() {
44
45
  const { server, logger } = this;
45
46
  server.on('connection', client => {
47
+ logger.log('client connected');
48
+ client.on('close', () => {
49
+ logger.log('client disconnected');
50
+ });
46
51
  if (this.stats) {
47
52
  this.broadcastStats([client], this.stats);
48
53
  }
49
- logger.log('client connected');
50
54
  });
51
55
  server.on('error', error => {
52
56
  logger.error(error);
53
57
  });
54
- server.on('close', function () {
55
- logger.log('client disconnected');
56
- });
57
58
  }
58
59
  setupHooks() {
59
60
  const { compiler } = this;
@@ -142,7 +143,7 @@ class Socket {
142
143
  upgrade(context) {
143
144
  const { server } = this;
144
145
  const { req: request } = context;
145
- if (isUpgradable(context, WEBSOCKET_RE) && server.shouldHandle(request)) {
146
+ if (isUpgradable(context) && server.shouldHandle(request)) {
146
147
  context.respond = false;
147
148
  const { socket } = context;
148
149
  const head = Buffer.alloc(0);
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -12,7 +12,10 @@ import { isMultiCompilerMode, isObject } from '../utils.js';
12
12
  /**
13
13
  * @module utils
14
14
  */
15
- const WEBSOCKET_RE = /^websocket$/i;
15
+ function isUpgradable(context) {
16
+ const { upgrade } = context.headers;
17
+ return !!upgrade && /^websocket$/i.test(upgrade.trim());
18
+ }
16
19
  function normalize(path) {
17
20
  const segments = [];
18
21
  const parts = path.split(/[\\/]+/);
@@ -44,10 +47,6 @@ function getOptions(options) {
44
47
  settings.path = normalize(settings.path);
45
48
  return settings;
46
49
  }
47
- function isUpgradable(context, detector) {
48
- const { upgrade } = context.headers;
49
- return !!upgrade && detector.test(upgrade.trim());
50
- }
51
50
  function hasIssues(issues) {
52
51
  return Array.isArray(issues) && issues.length > 0;
53
52
  }
@@ -90,4 +89,4 @@ function getTimestamp({ builtAt, children = [] }) {
90
89
  return timestamp < 0 ? Date.now() : timestamp;
91
90
  }
92
91
 
93
- export { WEBSOCKET_RE, getOptions, getStatsOptions, getTimestamp, hasIssues, isUpgradable };
92
+ export { getOptions, getStatsOptions, getTimestamp, hasIssues, isUpgradable };
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -114,9 +114,9 @@ const schema = {
114
114
  }
115
115
  ]
116
116
  },
117
- onCompilerDone: {
117
+ onCompilationDone: {
118
118
  instanceof: 'Function',
119
- description: 'Callback function when the compiler is done, providing statistics and options.'
119
+ description: 'Callback function when the compilation is done, providing statistics and options.'
120
120
  }
121
121
  },
122
122
  additionalProperties: false
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.10.2
4
+ * @version 0.11.1
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webpack-dev-service",
3
- "version": "0.10.2",
3
+ "version": "0.11.1",
4
4
  "description": "A koa 2 middleware for webpack development and hot reloading.",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -78,7 +78,7 @@
78
78
  "@types/ws": "^8.5.10",
79
79
  "destroy": "^1.2.0",
80
80
  "etag": "^1.8.1",
81
- "memfs": "^4.8.0",
81
+ "memfs": "^4.8.1",
82
82
  "range-parser": "^1.2.1",
83
83
  "schema-utils": "^4.2.0",
84
84
  "supports-color": "^9.4.0",
@@ -93,22 +93,22 @@
93
93
  "@types/destroy": "^1.0.3",
94
94
  "@types/etag": "^1.8.3",
95
95
  "@types/koa-compose": "^3.2.8",
96
- "@types/node": "^20.11.30",
96
+ "@types/node": "^20.12.3",
97
97
  "@types/range-parser": "^1.2.7",
98
- "@types/react": "^18.2.73",
99
- "@types/react-dom": "^18.2.22",
98
+ "@types/react": "^18.2.74",
99
+ "@types/react-dom": "^18.2.23",
100
100
  "css-loader": "^6.10.0",
101
101
  "html-webpack-plugin": "^5.6.0",
102
102
  "koa": "^2.15.2",
103
103
  "koa-compress": "^5.1.1",
104
104
  "magic-string": "^0.30.8",
105
- "memfs": "^4.8.0",
105
+ "memfs": "^4.8.1",
106
106
  "mini-css-extract-plugin": "^2.8.1",
107
107
  "prettier": "^3.2.5",
108
108
  "react": "^18.2.0",
109
109
  "react-dom": "^18.2.0",
110
110
  "rimraf": "^5.0.5",
111
- "rollup": "^4.13.1",
111
+ "rollup": "^4.13.2",
112
112
  "swc-loader": "^0.2.6",
113
113
  "tsc-alias": "^1.8.8",
114
114
  "typescript": "^5.4.3",
@@ -22,7 +22,7 @@ export interface Options extends Omit<ServiceOptions, 'fs'> {
22
22
  fs?: FileSystem;
23
23
  stats?: IStatsOptions;
24
24
  writeToDisk?: boolean | ((targetPath: string) => boolean);
25
- onCompilerDone?(stats: IStats, statsOptions: Readonly<StatsOptions>): void;
25
+ onCompilationDone?(stats: IStats, statsOptions: Readonly<StatsOptions>): void;
26
26
  }
27
27
  export type FileService = [publicPath: string, service: Service];
28
28
  export interface Context {
@@ -5,9 +5,8 @@ import { Context } from 'koa';
5
5
  import { Options } from './interface';
6
6
  import { StatsCompilation, StatsOptions } from 'webpack';
7
7
  import { ICompiler } from '../../server/interface';
8
- export declare const WEBSOCKET_RE: RegExp;
8
+ export declare function isUpgradable(context: Context): boolean;
9
9
  export declare function getOptions(options?: Options): Required<Options>;
10
- export declare function isUpgradable(context: Context, detector: RegExp): boolean;
11
10
  export declare function hasIssues<T>(issues: ArrayLike<T> | undefined): boolean;
12
11
  export declare function getStatsOptions(compiler: ICompiler): StatsOptions;
13
12
  export declare function getTimestamp({ builtAt, children }: StatsCompilation): number;