@modern-js/server 2.0.0-beta.3 → 2.0.0-beta.6

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/CHANGELOG.md +159 -0
  2. package/dist/js/modern/constants.js +10 -9
  3. package/dist/js/modern/dev-tools/dev-middleware/dev-server-plugin.js +14 -20
  4. package/dist/js/modern/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +14 -19
  5. package/dist/js/modern/dev-tools/dev-middleware/hmr-client/index.js +134 -184
  6. package/dist/js/modern/dev-tools/dev-middleware/hmr-client/types.d.js +0 -0
  7. package/dist/js/modern/dev-tools/dev-middleware/index.js +65 -60
  8. package/dist/js/modern/dev-tools/dev-middleware/socket-server.js +33 -59
  9. package/dist/js/modern/dev-tools/https/global.d.js +0 -0
  10. package/dist/js/modern/dev-tools/https/index.js +28 -5
  11. package/dist/js/modern/dev-tools/mock/getMockData.js +71 -45
  12. package/dist/js/modern/dev-tools/mock/index.js +34 -15
  13. package/dist/js/modern/dev-tools/register/index.js +71 -54
  14. package/dist/js/modern/dev-tools/watcher/dependency-tree.js +25 -34
  15. package/dist/js/modern/dev-tools/watcher/index.js +51 -33
  16. package/dist/js/modern/dev-tools/watcher/stats-cache.js +13 -20
  17. package/dist/js/modern/index.js +7 -4
  18. package/dist/js/modern/server/dev-server.js +191 -215
  19. package/dist/js/modern/server/index.js +7 -4
  20. package/dist/js/node/constants.js +31 -14
  21. package/dist/js/node/dev-tools/dev-middleware/dev-server-plugin.js +38 -24
  22. package/dist/js/node/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +36 -24
  23. package/dist/js/node/dev-tools/dev-middleware/hmr-client/index.js +56 -98
  24. package/dist/js/node/dev-tools/dev-middleware/hmr-client/types.d.js +0 -0
  25. package/dist/js/node/dev-tools/dev-middleware/index.js +94 -72
  26. package/dist/js/node/dev-tools/dev-middleware/socket-server.js +59 -66
  27. package/dist/js/node/dev-tools/https/global.d.js +0 -0
  28. package/dist/js/node/dev-tools/https/index.js +56 -13
  29. package/dist/js/node/dev-tools/mock/getMockData.js +90 -51
  30. package/dist/js/node/dev-tools/mock/index.js +66 -28
  31. package/dist/js/node/dev-tools/register/index.js +100 -64
  32. package/dist/js/node/dev-tools/watcher/dependency-tree.js +55 -43
  33. package/dist/js/node/dev-tools/watcher/index.js +83 -47
  34. package/dist/js/node/dev-tools/watcher/stats-cache.js +44 -30
  35. package/dist/js/node/index.js +29 -15
  36. package/dist/js/node/server/dev-server.js +220 -237
  37. package/dist/js/node/server/index.js +30 -11
  38. package/dist/js/node/types.js +15 -0
  39. package/dist/js/treeshaking/constants.js +21 -0
  40. package/dist/js/treeshaking/dev-tools/dev-middleware/dev-server-plugin.js +74 -0
  41. package/dist/js/treeshaking/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +51 -0
  42. package/dist/js/treeshaking/dev-tools/dev-middleware/hmr-client/index.js +157 -0
  43. package/dist/js/treeshaking/dev-tools/dev-middleware/hmr-client/types.d.js +1 -0
  44. package/dist/js/treeshaking/dev-tools/dev-middleware/index.js +363 -0
  45. package/dist/js/treeshaking/dev-tools/dev-middleware/socket-server.js +209 -0
  46. package/dist/js/treeshaking/dev-tools/https/global.d.js +1 -0
  47. package/dist/js/treeshaking/dev-tools/https/index.js +161 -0
  48. package/dist/js/treeshaking/dev-tools/mock/getMockData.js +327 -0
  49. package/dist/js/treeshaking/dev-tools/mock/index.js +191 -0
  50. package/dist/js/treeshaking/dev-tools/register/index.js +153 -0
  51. package/dist/js/treeshaking/dev-tools/watcher/dependency-tree.js +150 -0
  52. package/dist/js/treeshaking/dev-tools/watcher/index.js +200 -0
  53. package/dist/js/treeshaking/dev-tools/watcher/stats-cache.js +128 -0
  54. package/dist/js/treeshaking/index.js +9 -0
  55. package/dist/js/treeshaking/server/dev-server.js +800 -0
  56. package/dist/js/treeshaking/server/index.js +92 -0
  57. package/dist/js/treeshaking/types.js +1 -0
  58. package/dist/types/dev-tools/mock/getMockData.d.ts +2 -0
  59. package/dist/types/dev-tools/watcher/dependency-tree.d.ts +2 -0
  60. package/dist/types/dev-tools/watcher/index.d.ts +1 -1
  61. package/dist/types/index.d.ts +2 -0
  62. package/package.json +15 -12
@@ -1,17 +1,32 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var createSocketUrl_exports = {};
19
+ __export(createSocketUrl_exports, {
20
+ createSocketUrl: () => createSocketUrl,
21
+ formatURL: () => formatURL
5
22
  });
6
- exports.createSocketUrl = createSocketUrl;
7
- exports.formatURL = formatURL;
8
- var _constants = require("@modern-js/utils/constants");
23
+ module.exports = __toCommonJS(createSocketUrl_exports);
24
+ var import_constants = require("@modern-js/utils/constants");
9
25
  function createSocketUrl(resourceQuery) {
10
- // ?host=localhost&port=8080&path=modern_js_hmr_ws
11
- const searchParams = resourceQuery.substr(1).split('&');
26
+ const searchParams = resourceQuery.substr(1).split("&");
12
27
  const options = {};
13
28
  for (const pair of searchParams) {
14
- const ary = pair.split('=');
29
+ const ary = pair.split("=");
15
30
  options[ary[0]] = decodeURIComponent(ary[1]);
16
31
  }
17
32
  const currentLocation = self.location;
@@ -24,30 +39,27 @@ function formatURL({
24
39
  pathname
25
40
  }) {
26
41
  if (window.URL) {
27
- // eslint-disable-next-line node/prefer-global/url, node/no-unsupported-features/node-builtins
28
- const url = new URL('http://localhost');
42
+ const url = new URL("http://localhost");
29
43
  url.port = port;
30
44
  url.hostname = hostname;
31
45
  url.protocol = protocol;
32
46
  url.pathname = pathname;
33
47
  return url.toString();
34
48
  }
35
-
36
- // compatible with IE11
37
- const colon = protocol.indexOf(':') === -1 ? ':' : '';
49
+ const colon = protocol.indexOf(":") === -1 ? ":" : "";
38
50
  return `${protocol}${colon}//${hostname}:${port}${pathname}`;
39
51
  }
40
52
  function getSocketUrl(urlParts, location) {
41
- const {
42
- host,
43
- port,
44
- path,
45
- protocol
46
- } = urlParts;
53
+ const { host, port, path, protocol } = urlParts;
47
54
  return formatURL({
48
- protocol: protocol || location.protocol === 'https:' ? 'wss' : 'ws',
55
+ protocol: protocol || location.protocol === "https:" ? "wss" : "ws",
49
56
  hostname: host || location.hostname,
50
57
  port: port || location.port,
51
- pathname: path || _constants.HMR_SOCK_PATH
58
+ pathname: path || import_constants.HMR_SOCK_PATH
52
59
  });
53
- }
60
+ }
61
+ // Annotate the CommonJS export names for ESM import in node:
62
+ 0 && (module.exports = {
63
+ createSocketUrl,
64
+ formatURL
65
+ });
@@ -1,167 +1,127 @@
1
- "use strict";
2
-
3
- var _stripAnsi = _interopRequireDefault(require("@modern-js/utils/strip-ansi"));
4
- var _format = require("@modern-js/utils/format");
5
- var _createSocketUrl = require("./createSocketUrl");
6
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7
- /**
8
- * This has been adapted from `create-react-app`, authored by Facebook, Inc.
9
- * see: https://github.com/facebookincubator/create-react-app/tree/master/packages/react-dev-utils
10
- *
11
- * Tips: this package will be bundled and running in the browser, do not import from the entry of @modern-js/utils.
12
- */
13
-
14
- // TODO hadRuntimeError should be fixed.
15
- // We need to keep track of if there has been a runtime error.
16
- // Essentially, we cannot guarantee application state was not corrupted by the
17
- // runtime error. To prevent confusing behavior, we forcibly reload the entire
18
- // application. This is handled below when we are notified of a compile (code
19
- // change).
20
- // See https://github.com/facebook/create-react-app/issues/3096
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __copyProps = (to, from, except, desc) => {
8
+ if (from && typeof from === "object" || typeof from === "function") {
9
+ for (let key of __getOwnPropNames(from))
10
+ if (!__hasOwnProp.call(to, key) && key !== except)
11
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
+ }
13
+ return to;
14
+ };
15
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
16
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
17
+ mod
18
+ ));
19
+ var import_strip_ansi = __toESM(require("@modern-js/utils/strip-ansi"));
20
+ var import_format = require("@modern-js/utils/format");
21
+ var import_createSocketUrl = require("./createSocketUrl");
21
22
  const hadRuntimeError = false;
22
-
23
- // Connect to Dev Server
24
- const socketUrl = (0, _createSocketUrl.createSocketUrl)(__resourceQuery);
23
+ const socketUrl = (0, import_createSocketUrl.createSocketUrl)(__resourceQuery);
25
24
  const connection = new WebSocket(socketUrl);
26
-
27
- // Unlike WebpackDevServer client, we won't try to reconnect
28
- // to avoid spamming the console. Disconnect usually happens
29
- // when developer stops the server.
30
- connection.onclose = function () {
31
- if (typeof console !== 'undefined' && typeof console.info === 'function') {
32
- console.info('The development server has disconnected.\nRefresh the page if necessary.');
25
+ connection.onclose = function() {
26
+ if (typeof console !== "undefined" && typeof console.info === "function") {
27
+ console.info(
28
+ "The development server has disconnected.\nRefresh the page if necessary."
29
+ );
33
30
  }
34
31
  };
35
-
36
- // Remember some state related to hot module replacement.
37
32
  let isFirstCompilation = true;
38
33
  let mostRecentCompilationHash = null;
39
34
  let hasCompileErrors = false;
40
35
  function clearOutdatedErrors() {
41
- // Clean up outdated compile errors, if any.
42
- // eslint-disable-next-line node/no-unsupported-features/node-builtins, no-console
43
- if (typeof console !== 'undefined' && typeof console.clear === 'function') {
36
+ if (typeof console !== "undefined" && typeof console.clear === "function") {
44
37
  if (hasCompileErrors) {
45
- // eslint-disable-next-line node/no-unsupported-features/node-builtins, no-console
46
38
  console.clear();
47
39
  }
48
40
  }
49
41
  }
50
-
51
- // Successful compilation.
52
42
  function handleSuccess() {
53
43
  clearOutdatedErrors();
54
44
  const isHotUpdate = !isFirstCompilation;
55
45
  isFirstCompilation = false;
56
46
  hasCompileErrors = false;
57
-
58
- // Attempt to apply hot updates or reload.
59
47
  if (isHotUpdate) {
60
48
  tryApplyUpdates();
61
49
  }
62
50
  }
63
-
64
- // Compilation with warnings (e.g. ESLint).
65
51
  function handleWarnings(warnings) {
66
52
  clearOutdatedErrors();
67
53
  const isHotUpdate = !isFirstCompilation;
68
54
  isFirstCompilation = false;
69
55
  hasCompileErrors = false;
70
56
  function printWarnings() {
71
- // Print warnings to the console.
72
- const formatted = (0, _format.formatWebpackMessages)({
57
+ const formatted = (0, import_format.formatWebpackMessages)({
73
58
  warnings,
74
59
  errors: []
75
60
  });
76
- if (typeof console !== 'undefined' && typeof console.warn === 'function') {
61
+ if (typeof console !== "undefined" && typeof console.warn === "function") {
77
62
  for (let i = 0; i < formatted.warnings.length; i++) {
78
63
  if (i === 5) {
79
- console.warn('There were more warnings in other files.\n' + 'You can find a complete log in the terminal.');
64
+ console.warn(
65
+ "There were more warnings in other files.\nYou can find a complete log in the terminal."
66
+ );
80
67
  break;
81
68
  }
82
- console.warn((0, _stripAnsi.default)(formatted.warnings[i]));
69
+ console.warn((0, import_strip_ansi.default)(formatted.warnings[i]));
83
70
  }
84
71
  }
85
72
  }
86
73
  printWarnings();
87
-
88
- // Attempt to apply hot updates or reload.
89
74
  if (isHotUpdate) {
90
75
  tryApplyUpdates();
91
76
  }
92
77
  }
93
-
94
- // Compilation with errors (e.g. syntax error or missing modules).
95
78
  function handleErrors(errors) {
96
79
  clearOutdatedErrors();
97
80
  isFirstCompilation = false;
98
81
  hasCompileErrors = true;
99
-
100
- // "Massage" webpack messages.
101
- const formatted = (0, _format.formatWebpackMessages)({
82
+ const formatted = (0, import_format.formatWebpackMessages)({
102
83
  errors,
103
84
  warnings: []
104
85
  });
105
-
106
- // Also log them to the console.
107
- if (typeof console !== 'undefined' && typeof console.error === 'function') {
86
+ if (typeof console !== "undefined" && typeof console.error === "function") {
108
87
  for (const error of formatted.errors) {
109
- console.error((0, _stripAnsi.default)(error));
88
+ console.error((0, import_strip_ansi.default)(error));
110
89
  }
111
90
  }
112
-
113
- // Do not attempt to reload now.
114
- // We will reload on next success instead.
115
91
  }
116
-
117
- // There is a newer version of the code available.
118
92
  function handleAvailableHash(hash) {
119
- // Update last known compilation hash.
120
93
  mostRecentCompilationHash = hash;
121
94
  }
122
-
123
- // Handle messages from the server.
124
- connection.onmessage = function (e) {
95
+ connection.onmessage = function(e) {
125
96
  const message = JSON.parse(e.data);
126
97
  switch (message.type) {
127
- case 'hash':
98
+ case "hash":
128
99
  handleAvailableHash(message.data);
129
100
  break;
130
- case 'still-ok':
131
- case 'ok':
101
+ case "still-ok":
102
+ case "ok":
132
103
  handleSuccess();
133
104
  break;
134
- case 'content-changed':
135
- // Triggered when a file from `contentBase` changed.
105
+ case "content-changed":
136
106
  window.location.reload();
137
107
  break;
138
- case 'warnings':
108
+ case "warnings":
139
109
  handleWarnings(message.data);
140
110
  break;
141
- case 'errors':
111
+ case "errors":
142
112
  handleErrors(message.data);
143
113
  break;
144
114
  default:
145
- // Do nothing.
146
115
  }
147
116
  };
148
-
149
- // Is there a newer version of this code available?
150
117
  function isUpdateAvailable() {
151
- // __webpack_hash__ is the hash of the current compilation.
152
- // It's a global variable injected by webpack.
153
118
  return mostRecentCompilationHash !== __webpack_hash__;
154
119
  }
155
-
156
- // webpack disallows updates in other states.
157
120
  function canApplyUpdates() {
158
- return module.hot.status() === 'idle';
121
+ return module.hot.status() === "idle";
159
122
  }
160
-
161
- // Attempt to update code on the fly, fall back to a hard reload.
162
123
  function tryApplyUpdates() {
163
124
  if (!module.hot) {
164
- // HotModuleReplacementPlugin is not in webpack configuration.
165
125
  window.location.reload();
166
126
  return;
167
127
  }
@@ -175,20 +135,18 @@ function tryApplyUpdates() {
175
135
  return;
176
136
  }
177
137
  if (isUpdateAvailable()) {
178
- // While we were updating, there was a new update! Do it again.
179
138
  tryApplyUpdates();
180
139
  }
181
140
  }
182
-
183
- // https://webpack.github.io/docs/hot-module-replacement.html#check
184
- const result = module.hot.check( /* autoApply */true, handleApplyUpdates);
185
-
186
- // // webpack 2 returns a Promise instead of invoking a callback
187
- if (result !== null && result !== void 0 && result.then) {
188
- result.then(updatedModules => {
189
- handleApplyUpdates(null, updatedModules);
190
- }, err => {
191
- handleApplyUpdates(err, null);
192
- });
141
+ const result = module.hot.check(true, handleApplyUpdates);
142
+ if (result == null ? void 0 : result.then) {
143
+ result.then(
144
+ (updatedModules) => {
145
+ handleApplyUpdates(null, updatedModules);
146
+ },
147
+ (err) => {
148
+ handleApplyUpdates(err, null);
149
+ }
150
+ );
193
151
  }
194
- }
152
+ }
@@ -1,72 +1,103 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
+ var __spreadValues = (a, b) => {
11
+ for (var prop in b || (b = {}))
12
+ if (__hasOwnProp.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ if (__getOwnPropSymbols)
15
+ for (var prop of __getOwnPropSymbols(b)) {
16
+ if (__propIsEnum.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ }
19
+ return a;
20
+ };
21
+ var __export = (target, all) => {
22
+ for (var name in all)
23
+ __defProp(target, name, { get: all[name], enumerable: true });
24
+ };
25
+ var __copyProps = (to, from, except, desc) => {
26
+ if (from && typeof from === "object" || typeof from === "function") {
27
+ for (let key of __getOwnPropNames(from))
28
+ if (!__hasOwnProp.call(to, key) && key !== except)
29
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
30
+ }
31
+ return to;
32
+ };
33
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
34
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
35
+ mod
36
+ ));
37
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
38
+ var __async = (__this, __arguments, generator) => {
39
+ return new Promise((resolve, reject) => {
40
+ var fulfilled = (value) => {
41
+ try {
42
+ step(generator.next(value));
43
+ } catch (e) {
44
+ reject(e);
45
+ }
46
+ };
47
+ var rejected = (value) => {
48
+ try {
49
+ step(generator.throw(value));
50
+ } catch (e) {
51
+ reject(e);
52
+ }
53
+ };
54
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
55
+ step((generator = generator.apply(__this, __arguments)).next());
56
+ });
57
+ };
58
+ var dev_middleware_exports = {};
59
+ __export(dev_middleware_exports, {
60
+ default: () => DevMiddleware
5
61
  });
6
- exports.default = void 0;
7
- var _events = require("events");
8
- var _webpackDevMiddleware = _interopRequireDefault(require("@modern-js/utils/webpack-dev-middleware"));
9
- var _devServerPlugin = _interopRequireDefault(require("./dev-server-plugin"));
10
- var _socketServer = _interopRequireDefault(require("./socket-server"));
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
62
+ module.exports = __toCommonJS(dev_middleware_exports);
63
+ var import_events = require("events");
64
+ var import_webpack_dev_middleware = __toESM(require("@modern-js/utils/webpack-dev-middleware"));
65
+ var import_dev_server_plugin = __toESM(require("./dev-server-plugin"));
66
+ var import_socket_server = __toESM(require("./socket-server"));
15
67
  const noop = () => {
16
- // noop
17
68
  };
18
- class DevMiddleware extends _events.EventEmitter {
19
- constructor({
20
- compiler,
21
- dev,
22
- devMiddleware
23
- }) {
69
+ class DevMiddleware extends import_events.EventEmitter {
70
+ constructor({ compiler, dev, devMiddleware }) {
24
71
  super();
25
- _defineProperty(this, "middleware", void 0);
26
- _defineProperty(this, "compiler", void 0);
27
- _defineProperty(this, "devOptions", void 0);
28
- _defineProperty(this, "socketServer", void 0);
29
72
  this.compiler = compiler;
30
73
  this.devOptions = dev;
31
-
32
- // init socket server
33
- this.socketServer = new _socketServer.default(dev);
34
-
35
- // Todo: should remove after abstract dev middleware
74
+ this.socketServer = new import_socket_server.default(dev);
36
75
  if (this.compiler) {
37
- // setup compiler in server, also add dev-middleware to handler static file in memory
38
- // set up plugin to each compiler
39
76
  this.setupDevServerPlugin();
40
- // register hooks for each compilation, update socket stats if recompiled
41
77
  this.setupHooks();
42
- // start dev middleware
43
78
  this.middleware = this.setupDevMiddleware(devMiddleware);
44
79
  }
45
80
  }
46
81
  init(app) {
47
- app.on('listening', () => {
82
+ app.on("listening", () => {
48
83
  this.socketServer.prepare(app);
49
84
  });
50
- app.on('close', async () => {
51
- var _this$middleware;
52
- (_this$middleware = this.middleware) === null || _this$middleware === void 0 ? void 0 : _this$middleware.close(noop);
85
+ app.on("close", () => __async(this, null, function* () {
86
+ var _a;
87
+ (_a = this.middleware) == null ? void 0 : _a.close(noop);
53
88
  this.socketServer.close();
54
- });
89
+ }));
55
90
  }
56
91
  setupDevServerPlugin() {
57
- const {
58
- devOptions
59
- } = this;
60
-
61
- // apply dev server to client compiler, add hmr client to entry.
92
+ const { devOptions } = this;
62
93
  if (this.compiler.compilers) {
63
- this.compiler.compilers.forEach(target => {
94
+ this.compiler.compilers.forEach((target) => {
64
95
  if (this.isClientCompiler(target)) {
65
- new _devServerPlugin.default(devOptions).apply(target);
96
+ new import_dev_server_plugin.default(devOptions).apply(target);
66
97
  }
67
98
  });
68
99
  } else {
69
- new _devServerPlugin.default(devOptions).apply(this.compiler);
100
+ new import_dev_server_plugin.default(devOptions).apply(this.compiler);
70
101
  }
71
102
  }
72
103
  sockWrite(type, data) {
@@ -74,22 +105,18 @@ class DevMiddleware extends _events.EventEmitter {
74
105
  }
75
106
  setupHooks() {
76
107
  const invalidPlugin = () => {
77
- this.socketServer.sockWrite('invalid');
108
+ this.socketServer.sockWrite("invalid");
78
109
  };
79
- const addHooks = compiler => {
80
- if (compiler.name === 'server') {
110
+ const addHooks = (compiler) => {
111
+ if (compiler.name === "server") {
81
112
  return;
82
113
  }
83
- const {
84
- compile,
85
- invalid,
86
- done
87
- } = compiler.hooks;
88
- compile.tap('modern-dev-server', invalidPlugin);
89
- invalid.tap('modern-dev-server', invalidPlugin);
90
- done.tap('modern-dev-server', stats => {
114
+ const { compile, invalid, done } = compiler.hooks;
115
+ compile.tap("modern-dev-server", invalidPlugin);
116
+ invalid.tap("modern-dev-server", invalidPlugin);
117
+ done.tap("modern-dev-server", (stats) => {
91
118
  this.socketServer.updateStats(stats);
92
- this.emit('change', stats);
119
+ this.emit("change", stats);
93
120
  });
94
121
  };
95
122
  if (this.compiler.compilers) {
@@ -98,29 +125,24 @@ class DevMiddleware extends _events.EventEmitter {
98
125
  addHooks(this.compiler);
99
126
  }
100
127
  }
101
- setupDevMiddleware(devMiddleware = _webpackDevMiddleware.default) {
102
- const {
103
- devOptions
104
- } = this;
105
- const middleware = devMiddleware(this.compiler, _objectSpread({
128
+ setupDevMiddleware(devMiddleware = import_webpack_dev_middleware.default) {
129
+ const { devOptions } = this;
130
+ const middleware = devMiddleware(this.compiler, __spreadValues({
106
131
  headers: devOptions.headers,
107
132
  stats: false
108
133
  }, devOptions.devMiddleware));
109
134
  return middleware;
110
135
  }
111
136
  isClientCompiler(compiler) {
112
- const {
113
- target
114
- } = compiler.options;
115
-
116
- // if target not contains `node`, it's a client compiler
137
+ const { target } = compiler.options;
117
138
  if (target) {
118
139
  if (Array.isArray(target)) {
119
- return !target.includes('node');
140
+ return !target.includes("node");
120
141
  }
121
- return target !== 'node';
142
+ return target !== "node";
122
143
  }
123
- return compiler.name === 'client';
144
+ return compiler.name === "client";
124
145
  }
125
146
  }
126
- exports.default = DevMiddleware;
147
+ // Annotate the CommonJS export names for ESM import in node:
148
+ 0 && (module.exports = {});