webpack-dev-service 0.12.9 → 0.12.11

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 (62) hide show
  1. package/cjs/client/client.cjs +1 -1
  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 +1 -1
  7. package/cjs/client/ui/Progress.cjs +1 -1
  8. package/cjs/client/ui/utils.cjs +1 -1
  9. package/cjs/server/compose.cjs +1 -1
  10. package/cjs/server/dev/Service.cjs +1 -1
  11. package/cjs/server/dev/index.cjs +4 -3
  12. package/cjs/server/dev/middleware.cjs +5 -18
  13. package/cjs/server/dev/utils/fs.cjs +12 -1
  14. package/cjs/server/dev/utils/hash.cjs +2 -2
  15. package/cjs/server/dev/utils/http.cjs +3 -3
  16. package/cjs/server/dev/utils/path.cjs +1 -1
  17. package/cjs/server/dev/utils/paths.cjs +1 -1
  18. package/cjs/server/dev/utils/ready.cjs +1 -1
  19. package/cjs/server/dev/utils/setupHooks.cjs +1 -1
  20. package/cjs/server/dev/utils/setupOutputFileSystem.cjs +2 -8
  21. package/cjs/server/dev/utils/setupWatching.cjs +1 -1
  22. package/cjs/server/dev/utils/setupWriteToDisk.cjs +1 -1
  23. package/cjs/server/dev/utils/stream.cjs +2 -2
  24. package/cjs/server/hot/Socket.cjs +1 -1
  25. package/cjs/server/hot/index.cjs +1 -1
  26. package/cjs/server/hot/utils.cjs +1 -1
  27. package/cjs/server/index.cjs +1 -1
  28. package/cjs/server/schema.cjs +1 -1
  29. package/cjs/server/utils.cjs +1 -1
  30. package/esm/client/client.js +1 -1
  31. package/esm/client/events.js +1 -1
  32. package/esm/client/hot.js +1 -1
  33. package/esm/client/index.js +1 -1
  34. package/esm/client/main.js +1 -1
  35. package/esm/client/ui/Overlay.js +1 -1
  36. package/esm/client/ui/Progress.js +1 -1
  37. package/esm/client/ui/utils.js +1 -1
  38. package/esm/server/compose.js +1 -1
  39. package/esm/server/dev/Service.js +1 -1
  40. package/esm/server/dev/index.js +4 -3
  41. package/esm/server/dev/middleware.js +5 -18
  42. package/esm/server/dev/utils/fs.js +12 -2
  43. package/esm/server/dev/utils/hash.js +2 -2
  44. package/esm/server/dev/utils/http.js +3 -3
  45. package/esm/server/dev/utils/path.js +1 -1
  46. package/esm/server/dev/utils/paths.js +1 -1
  47. package/esm/server/dev/utils/ready.js +1 -1
  48. package/esm/server/dev/utils/setupHooks.js +1 -1
  49. package/esm/server/dev/utils/setupOutputFileSystem.js +2 -8
  50. package/esm/server/dev/utils/setupWatching.js +1 -1
  51. package/esm/server/dev/utils/setupWriteToDisk.js +1 -1
  52. package/esm/server/dev/utils/stream.js +2 -2
  53. package/esm/server/hot/Socket.js +1 -1
  54. package/esm/server/hot/index.js +1 -1
  55. package/esm/server/hot/utils.js +1 -1
  56. package/esm/server/index.js +1 -1
  57. package/esm/server/schema.js +1 -1
  58. package/esm/server/utils.js +1 -1
  59. package/package.json +1 -1
  60. package/types/server/dev/interface.d.ts +6 -6
  61. package/types/server/dev/utils/fs.d.ts +5 -0
  62. package/types/server/dev/utils/hash.d.ts +1 -1
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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
@@ -10,6 +10,7 @@
10
10
  'use strict';
11
11
 
12
12
  const ready = require('./utils/ready.cjs');
13
+ const fs = require('./utils/fs.cjs');
13
14
  const middleware = require('./middleware.cjs');
14
15
  const utils = require('../utils.cjs');
15
16
  const setupHooks = require('./utils/setupHooks.cjs');
@@ -22,11 +23,11 @@ const setupOutputFileSystem = require('./utils/setupOutputFileSystem.cjs');
22
23
  */
23
24
  function setup(compiler, options) {
24
25
  const context = {
25
- options,
26
26
  compiler,
27
27
  stats: null,
28
28
  callbacks: [],
29
- logger: compiler.getInfrastructureLogger(utils.PLUGIN_NAME)
29
+ logger: compiler.getInfrastructureLogger(utils.PLUGIN_NAME),
30
+ options: { fs: fs.createMemfs(), highWaterMark: 65536, ...options }
30
31
  };
31
32
  setupHooks.setupHooks(context);
32
33
  if (options.writeToDisk) {
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.12.9
4
+ * @version 0.12.11
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,38 +23,25 @@ function getFileServices(context, stats) {
23
23
  if (cached) {
24
24
  return cached;
25
25
  }
26
+ const { options } = context;
26
27
  const paths$1 = paths.getPaths(stats);
27
- const { fs, options } = context;
28
28
  const services = [];
29
- const { etag, ignore, headers, acceptRanges, lastModified } = options;
30
29
  // Get the file services.
31
30
  for (const [outputPath, publicPath] of paths$1) {
32
- services.push([
33
- publicPath,
34
- new Service.Service(outputPath, {
35
- fs,
36
- etag,
37
- ignore,
38
- headers,
39
- acceptRanges,
40
- lastModified
41
- })
42
- ]);
31
+ services.push([publicPath, new Service.Service(outputPath, options)]);
43
32
  }
44
33
  // Cache services.
45
34
  context.services = services;
46
35
  // Return services.
47
36
  return services;
48
37
  }
49
- function getFileServicesAsync(context, pathname) {
38
+ function getFileServicesAsync(context) {
50
39
  return new Promise(resolve => {
51
40
  const { stats } = context;
52
41
  // If stats exists, resolve immediately.
53
42
  if (stats) {
54
43
  resolve(getFileServices(context, stats));
55
44
  } else {
56
- // Log waiting info.
57
- context.logger.info(`wait until bundle finished: ${pathname}`);
58
45
  // Otherwise, wait until bundle finished.
59
46
  ready.ready(context, stats => {
60
47
  resolve(getFileServices(context, stats));
@@ -73,7 +60,7 @@ function middleware(context) {
73
60
  // Only support GET and HEAD (405).
74
61
  if (ctx.method === 'GET' || ctx.method === 'HEAD') {
75
62
  // Get the file services.
76
- const services = await getFileServicesAsync(context, pathname);
63
+ const services = await getFileServicesAsync(context);
77
64
  // Try to respond.
78
65
  for (const [publicPath, service] of services) {
79
66
  if (await service.respond(pathname, ctx, publicPath)) {
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.12.9
4
+ * @version 0.12.11
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
@@ -9,9 +9,19 @@
9
9
 
10
10
  'use strict';
11
11
 
12
+ const memfs = require('memfs');
13
+
12
14
  /**
13
15
  * @module fs
14
16
  */
17
+ /**
18
+ * @function createMemfs
19
+ * @description Create memfs instance.
20
+ */
21
+ function createMemfs() {
22
+ const volume = new memfs.Volume();
23
+ return memfs.createFsFromVolume(volume);
24
+ }
15
25
  /**
16
26
  * @function stat
17
27
  * @description Get file stats.
@@ -26,4 +36,5 @@ function stat(fs, path) {
26
36
  });
27
37
  }
28
38
 
39
+ exports.createMemfs = createMemfs;
29
40
  exports.stat = stat;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.12.9
4
+ * @version 0.12.11
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,7 +32,7 @@ const CHARS = [
32
32
  * @description Generate a hash.
33
33
  * @param length The length of hash.
34
34
  */
35
- function generate(length = 32) {
35
+ function generate(length) {
36
36
  let hash = '';
37
37
  const randomValues = node_crypto.getRandomValues(new Uint8Array(length));
38
38
  // Create hash.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.12.9
4
+ * @version 0.12.11
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
@@ -156,13 +156,13 @@ function parseRanges(context, stats) {
156
156
  // Parsed entries.
157
157
  const entries = parsed.entries();
158
158
  // Range boundary.
159
- const boundary = `<${hash.generate()}>`;
159
+ const boundary = `${hash.generate(32)}`;
160
160
  // Multipart Content-Type.
161
161
  const contentType = `Content-Type: ${context.type}`;
162
162
  // Range suffix.
163
163
  const suffix = node_buffer.Buffer.from(`\r\n--${boundary}--\r\n`);
164
164
  // Override Content-Type.
165
- context.type = `multipart/byteranges; boundary=${boundary}`;
165
+ context.type = `multipart/byteranges; boundary="${boundary}"`;
166
166
  // Map ranges.
167
167
  for (const [index, { start, end }] of entries) {
168
168
  const length = end - start + 1;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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
@@ -10,22 +10,16 @@
10
10
  'use strict';
11
11
 
12
12
  const utils = require('../../utils.cjs');
13
- const memfs = require('memfs');
14
13
 
15
14
  /**
16
15
  * @module setupOutputFileSystem
17
16
  */
18
- function createMemfs() {
19
- const volume = new memfs.Volume();
20
- return memfs.createFsFromVolume(volume);
21
- }
22
17
  function setupOutputFileSystem(context) {
23
- const { fs = createMemfs() } = context.options;
18
+ const { fs } = context.options;
24
19
  const compilers = utils.getCompilers(context.compiler);
25
20
  for (const compiler of compilers) {
26
21
  compiler.outputFileSystem = fs;
27
22
  }
28
- context.fs = fs;
29
23
  }
30
24
 
31
25
  exports.setupOutputFileSystem = setupOutputFileSystem;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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,7 +32,7 @@ class FileReadStream extends node_stream.Readable {
32
32
  * @param options The stream options.
33
33
  */
34
34
  constructor(path, ranges, options) {
35
- const { fs, encoding, highWaterMark = 65536 } = options;
35
+ const { fs, encoding, highWaterMark } = options;
36
36
  super({ encoding, highWaterMark });
37
37
  this.fs = fs;
38
38
  this.path = path;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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,13 +1,14 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.12.9
4
+ * @version 0.12.11
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
8
8
  */
9
9
 
10
10
  import { ready } from './utils/ready.js';
11
+ import { createMemfs } from './utils/fs.js';
11
12
  import { middleware } from './middleware.js';
12
13
  import { PLUGIN_NAME } from '../utils.js';
13
14
  import { setupHooks } from './utils/setupHooks.js';
@@ -20,11 +21,11 @@ import { setupOutputFileSystem } from './utils/setupOutputFileSystem.js';
20
21
  */
21
22
  function setup(compiler, options) {
22
23
  const context = {
23
- options,
24
24
  compiler,
25
25
  stats: null,
26
26
  callbacks: [],
27
- logger: compiler.getInfrastructureLogger(PLUGIN_NAME)
27
+ logger: compiler.getInfrastructureLogger(PLUGIN_NAME),
28
+ options: { fs: createMemfs(), highWaterMark: 65536, ...options }
28
29
  };
29
30
  setupHooks(context);
30
31
  if (options.writeToDisk) {
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.12.9
4
+ * @version 0.12.11
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
@@ -21,38 +21,25 @@ function getFileServices(context, stats) {
21
21
  if (cached) {
22
22
  return cached;
23
23
  }
24
+ const { options } = context;
24
25
  const paths = getPaths(stats);
25
- const { fs, options } = context;
26
26
  const services = [];
27
- const { etag, ignore, headers, acceptRanges, lastModified } = options;
28
27
  // Get the file services.
29
28
  for (const [outputPath, publicPath] of paths) {
30
- services.push([
31
- publicPath,
32
- new Service(outputPath, {
33
- fs,
34
- etag,
35
- ignore,
36
- headers,
37
- acceptRanges,
38
- lastModified
39
- })
40
- ]);
29
+ services.push([publicPath, new Service(outputPath, options)]);
41
30
  }
42
31
  // Cache services.
43
32
  context.services = services;
44
33
  // Return services.
45
34
  return services;
46
35
  }
47
- function getFileServicesAsync(context, pathname) {
36
+ function getFileServicesAsync(context) {
48
37
  return new Promise(resolve => {
49
38
  const { stats } = context;
50
39
  // If stats exists, resolve immediately.
51
40
  if (stats) {
52
41
  resolve(getFileServices(context, stats));
53
42
  } else {
54
- // Log waiting info.
55
- context.logger.info(`wait until bundle finished: ${pathname}`);
56
43
  // Otherwise, wait until bundle finished.
57
44
  ready(context, stats => {
58
45
  resolve(getFileServices(context, stats));
@@ -71,7 +58,7 @@ function middleware(context) {
71
58
  // Only support GET and HEAD (405).
72
59
  if (ctx.method === 'GET' || ctx.method === 'HEAD') {
73
60
  // Get the file services.
74
- const services = await getFileServicesAsync(context, pathname);
61
+ const services = await getFileServicesAsync(context);
75
62
  // Try to respond.
76
63
  for (const [publicPath, service] of services) {
77
64
  if (await service.respond(pathname, ctx, publicPath)) {
@@ -1,15 +1,25 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.12.9
4
+ * @version 0.12.11
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
8
8
  */
9
9
 
10
+ import { Volume, createFsFromVolume } from 'memfs';
11
+
10
12
  /**
11
13
  * @module fs
12
14
  */
15
+ /**
16
+ * @function createMemfs
17
+ * @description Create memfs instance.
18
+ */
19
+ function createMemfs() {
20
+ const volume = new Volume();
21
+ return createFsFromVolume(volume);
22
+ }
13
23
  /**
14
24
  * @function stat
15
25
  * @description Get file stats.
@@ -24,4 +34,4 @@ function stat(fs, path) {
24
34
  });
25
35
  }
26
36
 
27
- export { stat };
37
+ export { createMemfs, stat };
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.12.9
4
+ * @version 0.12.11
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,7 +30,7 @@ const CHARS = [
30
30
  * @description Generate a hash.
31
31
  * @param length The length of hash.
32
32
  */
33
- function generate(length = 32) {
33
+ function generate(length) {
34
34
  let hash = '';
35
35
  const randomValues = getRandomValues(new Uint8Array(length));
36
36
  // Create hash.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.12.9
4
+ * @version 0.12.11
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
@@ -148,13 +148,13 @@ function parseRanges(context, stats) {
148
148
  // Parsed entries.
149
149
  const entries = parsed.entries();
150
150
  // Range boundary.
151
- const boundary = `<${generate()}>`;
151
+ const boundary = `${generate(32)}`;
152
152
  // Multipart Content-Type.
153
153
  const contentType = `Content-Type: ${context.type}`;
154
154
  // Range suffix.
155
155
  const suffix = Buffer.from(`\r\n--${boundary}--\r\n`);
156
156
  // Override Content-Type.
157
- context.type = `multipart/byteranges; boundary=${boundary}`;
157
+ context.type = `multipart/byteranges; boundary="${boundary}"`;
158
158
  // Map ranges.
159
159
  for (const [index, { start, end }] of entries) {
160
160
  const length = end - start + 1;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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,29 +1,23 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.12.9
4
+ * @version 0.12.11
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
8
8
  */
9
9
 
10
10
  import { getCompilers } from '../../utils.js';
11
- import { Volume, createFsFromVolume } from 'memfs';
12
11
 
13
12
  /**
14
13
  * @module setupOutputFileSystem
15
14
  */
16
- function createMemfs() {
17
- const volume = new Volume();
18
- return createFsFromVolume(volume);
19
- }
20
15
  function setupOutputFileSystem(context) {
21
- const { fs = createMemfs() } = context.options;
16
+ const { fs } = context.options;
22
17
  const compilers = getCompilers(context.compiler);
23
18
  for (const compiler of compilers) {
24
19
  compiler.outputFileSystem = fs;
25
20
  }
26
- context.fs = fs;
27
21
  }
28
22
 
29
23
  export { setupOutputFileSystem };
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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,7 +30,7 @@ class FileReadStream extends Readable {
30
30
  * @param options The stream options.
31
31
  */
32
32
  constructor(path, ranges, options) {
33
- const { fs, encoding, highWaterMark = 65536 } = options;
33
+ const { fs, encoding, highWaterMark } = options;
34
34
  super({ encoding, highWaterMark });
35
35
  this.fs = fs;
36
36
  this.path = path;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9
4
+ * @version 0.12.11
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.12.9",
3
+ "version": "0.12.11",
4
4
  "description": "A koa 2 middleware for webpack development and hot reloading.",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -18,21 +18,21 @@ export interface Expose {
18
18
  readonly close: (callback: ErrorCallback) => void;
19
19
  readonly invalidate: (callback: ErrorCallback) => void;
20
20
  }
21
- export interface Options extends Omit<ServiceOptions, 'fs'> {
22
- fs?: FileSystem;
21
+ export interface Options extends Optional<ServiceOptions, 'fs'> {
23
22
  stats?: StatsOptions;
24
23
  writeToDisk?: boolean | ((targetPath: string) => boolean);
25
- onCompilationDone?(stats: UnionStats, statsOptions: Readonly<webpack.StatsOptions>): void;
24
+ onCompilationDone?: (stats: UnionStats, statsOptions: Readonly<webpack.StatsOptions>) => void;
26
25
  }
27
26
  export type FileService = [publicPath: string, service: Service];
28
27
  export interface Context {
29
- fs: FileSystem;
30
28
  logger: Logger;
31
- options: Options;
32
29
  callbacks: Callback[];
33
30
  compiler: UnionCompiler;
34
31
  watching: UnionWatching;
35
32
  services?: FileService[];
36
33
  stats: UnionStats | null;
34
+ options: Options & {
35
+ fs: FileSystem;
36
+ };
37
37
  }
38
- export type InitialContext = Optional<Context, 'fs' | 'watching'>;
38
+ export type InitialContext = Optional<Context, 'watching'>;
@@ -11,6 +11,11 @@ export interface FileSystem extends GetProp<Compiler, 'outputFileSystem'> {
11
11
  read: typeof fs.read;
12
12
  close: typeof fs.close;
13
13
  }
14
+ /**
15
+ * @function createMemfs
16
+ * @description Create memfs instance.
17
+ */
18
+ export declare function createMemfs(): FileSystem;
14
19
  /**
15
20
  * @function stat
16
21
  * @description Get file stats.
@@ -6,4 +6,4 @@
6
6
  * @description Generate a hash.
7
7
  * @param length The length of hash.
8
8
  */
9
- export declare function generate(length?: number): string;
9
+ export declare function generate(length: number): string;