@modern-js/server 2.15.1-alpha.0 → 2.17.0

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 (98) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/cjs/constants.js +12 -28
  3. package/dist/cjs/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +14 -32
  4. package/dist/cjs/dev-tools/dev-middleware/hmr-client/index.js +24 -42
  5. package/dist/cjs/dev-tools/dev-middleware/index.js +45 -50
  6. package/dist/cjs/dev-tools/dev-middleware/socketServer.js +48 -46
  7. package/dist/cjs/dev-tools/https/index.js +21 -38
  8. package/dist/cjs/dev-tools/mock/getMockData.js +33 -33
  9. package/dist/cjs/dev-tools/mock/index.js +67 -47
  10. package/dist/cjs/dev-tools/register/index.js +59 -70
  11. package/dist/cjs/dev-tools/watcher/dependencyTree.js +52 -55
  12. package/dist/cjs/dev-tools/watcher/index.js +52 -53
  13. package/dist/cjs/dev-tools/watcher/statsCache.js +37 -47
  14. package/dist/cjs/index.js +16 -28
  15. package/dist/cjs/server/devServer.js +163 -109
  16. package/dist/cjs/server/index.js +11 -29
  17. package/dist/cjs/types.js +4 -15
  18. package/dist/esm/constants.js +19 -20
  19. package/dist/esm/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +43 -44
  20. package/dist/esm/dev-tools/dev-middleware/hmr-client/index.js +148 -157
  21. package/dist/esm/dev-tools/dev-middleware/index.js +307 -291
  22. package/dist/esm/dev-tools/dev-middleware/socketServer.js +216 -202
  23. package/dist/esm/dev-tools/https/index.js +189 -182
  24. package/dist/esm/dev-tools/mock/getMockData.js +297 -278
  25. package/dist/esm/dev-tools/mock/index.js +198 -192
  26. package/dist/esm/dev-tools/register/index.js +141 -141
  27. package/dist/esm/dev-tools/watcher/dependencyTree.js +153 -138
  28. package/dist/esm/dev-tools/watcher/index.js +187 -175
  29. package/dist/esm/dev-tools/watcher/statsCache.js +118 -116
  30. package/dist/esm/index.js +9 -8
  31. package/dist/esm/server/devServer.js +803 -766
  32. package/dist/esm/server/index.js +80 -76
  33. package/dist/esm/types.js +1 -1
  34. package/dist/esm-node/constants.js +4 -5
  35. package/dist/esm-node/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +2 -11
  36. package/dist/esm-node/dev-tools/dev-middleware/hmr-client/index.js +125 -139
  37. package/dist/esm-node/dev-tools/dev-middleware/index.js +31 -17
  38. package/dist/esm-node/dev-tools/dev-middleware/socketServer.js +33 -12
  39. package/dist/esm-node/dev-tools/https/index.js +13 -15
  40. package/dist/esm-node/dev-tools/mock/getMockData.js +20 -12
  41. package/dist/esm-node/dev-tools/mock/index.js +7 -7
  42. package/dist/esm-node/dev-tools/register/index.js +38 -29
  43. package/dist/esm-node/dev-tools/watcher/dependencyTree.js +32 -21
  44. package/dist/esm-node/dev-tools/watcher/index.js +31 -18
  45. package/dist/esm-node/dev-tools/watcher/statsCache.js +18 -8
  46. package/dist/esm-node/index.js +2 -5
  47. package/dist/esm-node/server/devServer.js +87 -62
  48. package/dist/esm-node/server/index.js +1 -4
  49. package/dist/esm-node/types.js +1 -0
  50. package/package.json +13 -9
  51. package/dist/js/modern/constants.js +0 -19
  52. package/dist/js/modern/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +0 -41
  53. package/dist/js/modern/dev-tools/dev-middleware/hmr-client/index.js +0 -143
  54. package/dist/js/modern/dev-tools/dev-middleware/index.js +0 -94
  55. package/dist/js/modern/dev-tools/dev-middleware/socket-server.js +0 -132
  56. package/dist/js/modern/dev-tools/https/index.js +0 -49
  57. package/dist/js/modern/dev-tools/mock/getMockData.js +0 -114
  58. package/dist/js/modern/dev-tools/mock/index.js +0 -54
  59. package/dist/js/modern/dev-tools/register/index.js +0 -111
  60. package/dist/js/modern/dev-tools/watcher/dependency-tree.js +0 -59
  61. package/dist/js/modern/dev-tools/watcher/index.js +0 -106
  62. package/dist/js/modern/dev-tools/watcher/stats-cache.js +0 -58
  63. package/dist/js/modern/index.js +0 -12
  64. package/dist/js/modern/server/dev-server.js +0 -293
  65. package/dist/js/modern/server/index.js +0 -16
  66. package/dist/js/modern/types.js +0 -0
  67. package/dist/js/node/constants.js +0 -42
  68. package/dist/js/node/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +0 -65
  69. package/dist/js/node/dev-tools/dev-middleware/hmr-client/index.js +0 -152
  70. package/dist/js/node/dev-tools/dev-middleware/index.js +0 -119
  71. package/dist/js/node/dev-tools/dev-middleware/socket-server.js +0 -159
  72. package/dist/js/node/dev-tools/https/index.js +0 -72
  73. package/dist/js/node/dev-tools/mock/getMockData.js +0 -135
  74. package/dist/js/node/dev-tools/mock/index.js +0 -83
  75. package/dist/js/node/dev-tools/register/index.js +0 -138
  76. package/dist/js/node/dev-tools/watcher/dependency-tree.js +0 -89
  77. package/dist/js/node/dev-tools/watcher/index.js +0 -135
  78. package/dist/js/node/dev-tools/watcher/stats-cache.js +0 -87
  79. package/dist/js/node/index.js +0 -35
  80. package/dist/js/node/server/dev-server.js +0 -310
  81. package/dist/js/node/server/index.js +0 -39
  82. package/dist/js/node/types.js +0 -15
  83. package/dist/js/treeshaking/constants.js +0 -21
  84. package/dist/js/treeshaking/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +0 -51
  85. package/dist/js/treeshaking/dev-tools/dev-middleware/hmr-client/index.js +0 -157
  86. package/dist/js/treeshaking/dev-tools/dev-middleware/index.js +0 -322
  87. package/dist/js/treeshaking/dev-tools/dev-middleware/socket-server.js +0 -209
  88. package/dist/js/treeshaking/dev-tools/https/index.js +0 -193
  89. package/dist/js/treeshaking/dev-tools/mock/getMockData.js +0 -327
  90. package/dist/js/treeshaking/dev-tools/mock/index.js +0 -191
  91. package/dist/js/treeshaking/dev-tools/register/index.js +0 -153
  92. package/dist/js/treeshaking/dev-tools/watcher/dependency-tree.js +0 -150
  93. package/dist/js/treeshaking/dev-tools/watcher/index.js +0 -200
  94. package/dist/js/treeshaking/dev-tools/watcher/stats-cache.js +0 -128
  95. package/dist/js/treeshaking/index.js +0 -9
  96. package/dist/js/treeshaking/server/dev-server.js +0 -799
  97. package/dist/js/treeshaking/server/index.js +0 -92
  98. package/dist/js/treeshaking/types.js +0 -1
@@ -1,17 +1,21 @@
1
+ function _define_property(obj, key, value) {
2
+ if (key in obj) {
3
+ Object.defineProperty(obj, key, {
4
+ value,
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true
8
+ });
9
+ } else {
10
+ obj[key] = value;
11
+ }
12
+ return obj;
13
+ }
1
14
  import { createServer } from "http";
2
15
  import path from "path";
3
16
  import { createServer as createHttpsServer } from "https";
4
- import {
5
- API_DIR,
6
- SERVER_BUNDLE_DIRECTORY,
7
- SERVER_DIR,
8
- SHARED_DIR
9
- } from "@modern-js/utils";
10
- import {
11
- createProxyHandler,
12
- ModernServer,
13
- AGGRED_DIR
14
- } from "@modern-js/prod-server";
17
+ import { API_DIR, SERVER_BUNDLE_DIRECTORY, SERVER_DIR, SHARED_DIR } from "@modern-js/utils";
18
+ import { createProxyHandler, ModernServer, AGGRED_DIR } from "@modern-js/prod-server";
15
19
  import { LOADABLE_STATS_FILE } from "@modern-js/utils/constants";
16
20
  import { merge as deepMerge } from "@modern-js/utils/lodash";
17
21
  import { getDefaultDevOptions } from "../constants";
@@ -19,19 +23,7 @@ import { createMockHandler } from "../dev-tools/mock";
19
23
  import { enableRegister } from "../dev-tools/register";
20
24
  import Watcher, { mergeWatchOptions } from "../dev-tools/watcher";
21
25
  import DevMiddleware from "../dev-tools/dev-middleware";
22
- class ModernDevServer extends ModernServer {
23
- constructor(options) {
24
- super(options);
25
- this.mockHandler = null;
26
- this.appContext = options.appContext;
27
- this.workDir = this.pwd;
28
- this.dev = this.getDevOptions(options);
29
- this.devMiddleware = new DevMiddleware({
30
- dev: this.dev,
31
- devMiddleware: options.devMiddleware
32
- });
33
- enableRegister(this.pwd, this.conf);
34
- }
26
+ export class ModernDevServer extends ModernServer {
35
27
  getDevOptions(options) {
36
28
  const devOptions = typeof options.dev === "boolean" ? {} : options.dev;
37
29
  const defaultOptions = getDefaultDevOptions();
@@ -53,15 +45,15 @@ class ModernDevServer extends ModernServer {
53
45
  const befores = [];
54
46
  const afters = [];
55
47
  setupMiddlewares.forEach((handler) => {
56
- handler(
57
- {
58
- unshift: (...handlers) => befores.unshift(...handlers),
59
- push: (...handlers) => afters.push(...handlers)
60
- },
61
- serverOptions
62
- );
48
+ handler({
49
+ unshift: (...handlers) => befores.unshift(...handlers),
50
+ push: (...handlers) => afters.push(...handlers)
51
+ }, serverOptions);
63
52
  });
64
- return { befores, afters };
53
+ return {
54
+ befores,
55
+ afters
56
+ };
65
57
  }
66
58
  // Complete the preparation of services
67
59
  async onInit(runner, app) {
@@ -69,16 +61,22 @@ class ModernDevServer extends ModernServer {
69
61
  const { dev } = this;
70
62
  const { befores, afters } = this.applySetupMiddlewares();
71
63
  const beforeHandlers = await this.setupBeforeDevMiddleware();
72
- this.addMiddlewareHandler([...beforeHandlers, ...befores]);
64
+ this.addMiddlewareHandler([
65
+ ...beforeHandlers,
66
+ ...befores
67
+ ]);
73
68
  await this.applyDefaultMiddlewares(app);
74
69
  const afterHandlers = await this.setupAfterDevMiddleware();
75
- this.addMiddlewareHandler([...afters, ...afterHandlers]);
70
+ this.addMiddlewareHandler([
71
+ ...afters,
72
+ ...afterHandlers
73
+ ]);
76
74
  await super.onInit(runner, app);
77
75
  if (dev.watch) {
78
76
  this.startWatcher();
79
77
  app.on("close", async () => {
80
- var _a;
81
- await ((_a = this.watcher) == null ? void 0 : _a.close());
78
+ var _this_watcher;
79
+ await ((_this_watcher = this.watcher) === null || _this_watcher === void 0 ? void 0 : _this_watcher.close());
82
80
  });
83
81
  }
84
82
  }
@@ -97,7 +95,9 @@ class ModernDevServer extends ModernServer {
97
95
  }
98
96
  next();
99
97
  });
100
- this.mockHandler = createMockHandler({ pwd });
98
+ this.mockHandler = createMockHandler({
99
+ pwd
100
+ });
101
101
  this.addHandler((ctx, next) => {
102
102
  if (this.mockHandler) {
103
103
  this.mockHandler(ctx, next);
@@ -113,8 +113,12 @@ class ModernDevServer extends ModernServer {
113
113
  }
114
114
  devMiddleware.init(app);
115
115
  devMiddleware.on("change", (stats) => {
116
- if (stats.toJson({ all: false }).name !== "server") {
117
- this.onRepack({ routes: this.getRoutes() });
116
+ if (stats.toJson({
117
+ all: false
118
+ }).name !== "server") {
119
+ this.onRepack({
120
+ routes: this.getRoutes()
121
+ });
118
122
  }
119
123
  });
120
124
  this.addHandler((ctx, next) => {
@@ -127,12 +131,8 @@ class ModernDevServer extends ModernServer {
127
131
  });
128
132
  if (dev.historyApiFallback) {
129
133
  const { default: connectHistoryApiFallback } = await import("connect-history-api-fallback");
130
- const historyApiFallbackMiddleware = connectHistoryApiFallback(
131
- typeof dev.historyApiFallback === "boolean" ? {} : dev.historyApiFallback
132
- );
133
- this.addHandler(
134
- (ctx, next) => historyApiFallbackMiddleware(ctx.req, ctx.res, next)
135
- );
134
+ const historyApiFallbackMiddleware = connectHistoryApiFallback(typeof dev.historyApiFallback === "boolean" ? {} : dev.historyApiFallback);
135
+ this.addHandler((ctx, next) => historyApiFallbackMiddleware(ctx.req, ctx.res, next));
136
136
  }
137
137
  }
138
138
  onRepack(options = {}) {
@@ -157,23 +157,27 @@ class ModernDevServer extends ModernServer {
157
157
  }
158
158
  warmupSSRBundle() {
159
159
  }
160
- async onServerChange({
161
- filepath,
162
- event
163
- }) {
160
+ async onServerChange({ filepath, event }) {
164
161
  const { pwd } = this;
165
162
  const { mock } = AGGRED_DIR;
166
163
  const mockPath = path.normalize(path.join(pwd, mock));
167
164
  this.runner.reset();
168
165
  if (filepath.startsWith(mockPath)) {
169
- this.mockHandler = createMockHandler({ pwd });
166
+ this.mockHandler = createMockHandler({
167
+ pwd
168
+ });
170
169
  } else {
171
170
  try {
172
171
  const success = this.runner.onApiChange([
173
- { filename: filepath, event }
172
+ {
173
+ filename: filepath,
174
+ event
175
+ }
174
176
  ]);
175
177
  if (success !== true) {
176
- await super.onServerChange({ filepath });
178
+ await super.onServerChange({
179
+ filepath
180
+ });
177
181
  }
178
182
  } catch (e) {
179
183
  this.logger.error(e);
@@ -181,7 +185,9 @@ class ModernDevServer extends ModernServer {
181
185
  }
182
186
  }
183
187
  createContext(req, res) {
184
- return super.createContext(req, res, { etag: true });
188
+ return super.createContext(req, res, {
189
+ etag: true
190
+ });
185
191
  }
186
192
  setupStaticMiddleware(_) {
187
193
  return async (context, next) => {
@@ -192,13 +198,19 @@ class ModernDevServer extends ModernServer {
192
198
  const { runner, conf, dev } = this;
193
199
  const setupMids = dev.before || [];
194
200
  const pluginMids = await runner.beforeDevServer(conf);
195
- return [...setupMids, ...pluginMids].flat();
201
+ return [
202
+ ...setupMids,
203
+ ...pluginMids
204
+ ].flat();
196
205
  }
197
206
  async setupAfterDevMiddleware() {
198
207
  const { runner, conf, dev } = this;
199
208
  const setupMids = dev.after || [];
200
209
  const pluginMids = await runner.afterDevServer(conf);
201
- return [...pluginMids, ...setupMids].flat();
210
+ return [
211
+ ...pluginMids,
212
+ ...setupMids
213
+ ].flat();
202
214
  }
203
215
  cleanSSRCache() {
204
216
  const { distDir } = this;
@@ -215,11 +227,11 @@ class ModernDevServer extends ModernServer {
215
227
  }
216
228
  }
217
229
  startWatcher() {
218
- var _a;
230
+ var _this_conf_server;
219
231
  const { pwd, distDir, appContext } = this;
220
232
  const { mock } = AGGRED_DIR;
221
- const apiDir = (appContext == null ? void 0 : appContext.apiDirectory) || API_DIR;
222
- const sharedDir = (appContext == null ? void 0 : appContext.sharedDirectory) || SHARED_DIR;
233
+ const apiDir = (appContext === null || appContext === void 0 ? void 0 : appContext.apiDirectory) || API_DIR;
234
+ const sharedDir = (appContext === null || appContext === void 0 ? void 0 : appContext.sharedDirectory) || SHARED_DIR;
223
235
  const defaultWatched = [
224
236
  `${mock}/**/*`,
225
237
  `${SERVER_DIR}/**/*`,
@@ -227,7 +239,7 @@ class ModernDevServer extends ModernServer {
227
239
  `${sharedDir}/**/*`,
228
240
  `${distDir}/${SERVER_BUNDLE_DIRECTORY}/*-server-loaders.js`
229
241
  ];
230
- const watchOptions = mergeWatchOptions((_a = this.conf.server) == null ? void 0 : _a.watchOptions);
242
+ const watchOptions = mergeWatchOptions((_this_conf_server = this.conf.server) === null || _this_conf_server === void 0 ? void 0 : _this_conf_server.watchOptions);
231
243
  const defaultWatchedPaths = defaultWatched.map((p) => {
232
244
  const finalPath = path.isAbsolute(p) ? p : path.join(pwd, p);
233
245
  return path.normalize(finalPath);
@@ -248,7 +260,20 @@ class ModernDevServer extends ModernServer {
248
260
  });
249
261
  this.watcher = watcher;
250
262
  }
263
+ constructor(options) {
264
+ super(options);
265
+ _define_property(this, "mockHandler", null);
266
+ _define_property(this, "dev", void 0);
267
+ _define_property(this, "appContext", void 0);
268
+ _define_property(this, "devMiddleware", void 0);
269
+ _define_property(this, "watcher", void 0);
270
+ this.appContext = options.appContext;
271
+ this.workDir = this.pwd;
272
+ this.dev = this.getDevOptions(options);
273
+ this.devMiddleware = new DevMiddleware({
274
+ dev: this.dev,
275
+ devMiddleware: options.devMiddleware
276
+ });
277
+ enableRegister(this.pwd, this.conf);
278
+ }
251
279
  }
252
- export {
253
- ModernDevServer
254
- };
@@ -3,7 +3,7 @@ import { ModernDevServer } from "./devServer";
3
3
  const createDevServer = (options) => {
4
4
  return new ModernDevServer(options);
5
5
  };
6
- class DevServer extends Server {
6
+ export class DevServer extends Server {
7
7
  constructor(options) {
8
8
  super(options);
9
9
  if (options.dev) {
@@ -11,6 +11,3 @@ class DevServer extends Server {
11
11
  }
12
12
  }
13
13
  }
14
- export {
15
- DevServer
16
- };
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -3,7 +3,11 @@
3
3
  "description": "A Progressive React Framework for modern web development.",
4
4
  "homepage": "https://modernjs.dev",
5
5
  "bugs": "https://github.com/web-infra-dev/modern.js/issues",
6
- "repository": "web-infra-dev/modern.js",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/web-infra-dev/modern.js",
9
+ "directory": "packages/server/server"
10
+ },
7
11
  "license": "MIT",
8
12
  "keywords": [
9
13
  "react",
@@ -11,7 +15,7 @@
11
15
  "modern",
12
16
  "modern.js"
13
17
  ],
14
- "version": "2.15.1-alpha.0",
18
+ "version": "2.17.0",
15
19
  "jsnext:source": "./src/index.ts",
16
20
  "types": "./dist/types/index.d.ts",
17
21
  "main": "./dist/cjs/index.js",
@@ -41,10 +45,10 @@
41
45
  "minimatch": "^3.0.4",
42
46
  "path-to-regexp": "^6.2.0",
43
47
  "ws": "^8.2.0",
44
- "@modern-js/prod-server": "2.15.0",
45
- "@modern-js/types": "2.15.0",
46
- "@modern-js/utils": "2.15.0",
47
- "@modern-js/server-utils": "2.15.0"
48
+ "@modern-js/prod-server": "2.17.0",
49
+ "@modern-js/server-utils": "2.17.0",
50
+ "@modern-js/types": "2.17.0",
51
+ "@modern-js/utils": "2.17.0"
48
52
  },
49
53
  "devDependencies": {
50
54
  "@types/connect-history-api-fallback": "^1.3.5",
@@ -59,9 +63,9 @@
59
63
  "typescript": "^4",
60
64
  "webpack": "^5.76.2",
61
65
  "websocket": "^1",
62
- "@scripts/build": "2.15.0",
63
- "@modern-js/server-core": "2.15.0",
64
- "@scripts/jest-config": "2.15.0"
66
+ "@modern-js/server-core": "2.17.0",
67
+ "@scripts/jest-config": "2.17.0",
68
+ "@scripts/build": "2.17.0"
65
69
  },
66
70
  "peerDependencies": {
67
71
  "devcert": "^1.0.0",
@@ -1,19 +0,0 @@
1
- import { getIpv4Interfaces, HMR_SOCK_PATH } from "@modern-js/utils";
2
- const getDefaultDevOptions = () => {
3
- const network = getIpv4Interfaces().find((item) => !item.internal);
4
- return {
5
- client: {
6
- port: "8080",
7
- path: HMR_SOCK_PATH,
8
- host: (network == null ? void 0 : network.address) || "localhost"
9
- },
10
- https: false,
11
- devMiddleware: { writeToDisk: true },
12
- watch: true,
13
- hot: true,
14
- liveReload: true
15
- };
16
- };
17
- export {
18
- getDefaultDevOptions
19
- };
@@ -1,41 +0,0 @@
1
- import { HMR_SOCK_PATH } from "@modern-js/utils/constants";
2
- function createSocketUrl(resourceQuery) {
3
- const searchParams = resourceQuery.substr(1).split("&");
4
- const options = {};
5
- for (const pair of searchParams) {
6
- const ary = pair.split("=");
7
- options[ary[0]] = decodeURIComponent(ary[1]);
8
- }
9
- const currentLocation = self.location;
10
- return getSocketUrl(options, currentLocation);
11
- }
12
- function formatURL({
13
- port,
14
- protocol,
15
- hostname,
16
- pathname
17
- }) {
18
- if (window.URL) {
19
- const url = new URL("http://localhost");
20
- url.port = port;
21
- url.hostname = hostname;
22
- url.protocol = protocol;
23
- url.pathname = pathname;
24
- return url.toString();
25
- }
26
- const colon = protocol.indexOf(":") === -1 ? ":" : "";
27
- return `${protocol}${colon}//${hostname}:${port}${pathname}`;
28
- }
29
- function getSocketUrl(urlParts, location) {
30
- const { host, port, path, protocol } = urlParts;
31
- return formatURL({
32
- protocol: protocol || (location.protocol === "https:" ? "wss" : "ws"),
33
- hostname: host || location.hostname,
34
- port: port || location.port,
35
- pathname: path || HMR_SOCK_PATH
36
- });
37
- }
38
- export {
39
- createSocketUrl,
40
- formatURL
41
- };
@@ -1,143 +0,0 @@
1
- var __getOwnPropNames = Object.getOwnPropertyNames;
2
- var __commonJS = (cb, mod) => function __require() {
3
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
4
- };
5
- import stripAnsi from "@modern-js/utils/strip-ansi";
6
- import { formatWebpackMessages } from "@modern-js/utils/format";
7
- import { createSocketUrl } from "./createSocketUrl";
8
- var require_hmr_client = __commonJS({
9
- "src/dev-tools/dev-middleware/hmr-client/index.ts"(exports, module) {
10
- const hadRuntimeError = false;
11
- const socketUrl = createSocketUrl(__resourceQuery);
12
- const connection = new WebSocket(socketUrl);
13
- connection.onclose = function() {
14
- if (typeof console !== "undefined" && typeof console.info === "function") {
15
- console.info(
16
- "The development server has disconnected.\nRefresh the page if necessary."
17
- );
18
- }
19
- };
20
- let isFirstCompilation = true;
21
- let mostRecentCompilationHash = null;
22
- let hasCompileErrors = false;
23
- function clearOutdatedErrors() {
24
- if (typeof console !== "undefined" && typeof console.clear === "function") {
25
- if (hasCompileErrors) {
26
- console.clear();
27
- }
28
- }
29
- }
30
- function handleSuccess() {
31
- clearOutdatedErrors();
32
- const isHotUpdate = !isFirstCompilation;
33
- isFirstCompilation = false;
34
- hasCompileErrors = false;
35
- if (isHotUpdate) {
36
- tryApplyUpdates();
37
- }
38
- }
39
- function handleWarnings(warnings) {
40
- clearOutdatedErrors();
41
- const isHotUpdate = !isFirstCompilation;
42
- isFirstCompilation = false;
43
- hasCompileErrors = false;
44
- function printWarnings() {
45
- const formatted = formatWebpackMessages({
46
- warnings,
47
- errors: []
48
- });
49
- if (typeof console !== "undefined" && typeof console.warn === "function") {
50
- for (let i = 0; i < formatted.warnings.length; i++) {
51
- if (i === 5) {
52
- console.warn(
53
- "There were more warnings in other files.\nYou can find a complete log in the terminal."
54
- );
55
- break;
56
- }
57
- console.warn(stripAnsi(formatted.warnings[i]));
58
- }
59
- }
60
- }
61
- printWarnings();
62
- if (isHotUpdate) {
63
- tryApplyUpdates();
64
- }
65
- }
66
- function handleErrors(errors) {
67
- clearOutdatedErrors();
68
- isFirstCompilation = false;
69
- hasCompileErrors = true;
70
- const formatted = formatWebpackMessages({
71
- errors,
72
- warnings: []
73
- });
74
- if (typeof console !== "undefined" && typeof console.error === "function") {
75
- for (const error of formatted.errors) {
76
- console.error(stripAnsi(error));
77
- }
78
- }
79
- }
80
- function handleAvailableHash(hash) {
81
- mostRecentCompilationHash = hash;
82
- }
83
- connection.onmessage = function(e) {
84
- const message = JSON.parse(e.data);
85
- switch (message.type) {
86
- case "hash":
87
- handleAvailableHash(message.data);
88
- break;
89
- case "still-ok":
90
- case "ok":
91
- handleSuccess();
92
- break;
93
- case "content-changed":
94
- window.location.reload();
95
- break;
96
- case "warnings":
97
- handleWarnings(message.data);
98
- break;
99
- case "errors":
100
- handleErrors(message.data);
101
- break;
102
- default:
103
- }
104
- };
105
- function isUpdateAvailable() {
106
- return mostRecentCompilationHash !== __webpack_hash__;
107
- }
108
- function canApplyUpdates() {
109
- return module.hot.status() === "idle";
110
- }
111
- function tryApplyUpdates() {
112
- if (!module.hot) {
113
- window.location.reload();
114
- return;
115
- }
116
- if (!isUpdateAvailable() || !canApplyUpdates()) {
117
- return;
118
- }
119
- function handleApplyUpdates(err, updatedModules) {
120
- const wantsForcedReload = err || !updatedModules || hadRuntimeError;
121
- if (wantsForcedReload) {
122
- window.location.reload();
123
- return;
124
- }
125
- if (isUpdateAvailable()) {
126
- tryApplyUpdates();
127
- }
128
- }
129
- const result = module.hot.check(true, handleApplyUpdates);
130
- if (result == null ? void 0 : result.then) {
131
- result.then(
132
- (updatedModules) => {
133
- handleApplyUpdates(null, updatedModules);
134
- },
135
- (err) => {
136
- handleApplyUpdates(err, null);
137
- }
138
- );
139
- }
140
- }
141
- }
142
- });
143
- export default require_hmr_client();
@@ -1,94 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
- var __hasOwnProp = Object.prototype.hasOwnProperty;
4
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
- var __spreadValues = (a, b) => {
7
- for (var prop in b || (b = {}))
8
- if (__hasOwnProp.call(b, prop))
9
- __defNormalProp(a, prop, b[prop]);
10
- if (__getOwnPropSymbols)
11
- for (var prop of __getOwnPropSymbols(b)) {
12
- if (__propIsEnum.call(b, prop))
13
- __defNormalProp(a, prop, b[prop]);
14
- }
15
- return a;
16
- };
17
- var __async = (__this, __arguments, generator) => {
18
- return new Promise((resolve, reject) => {
19
- var fulfilled = (value) => {
20
- try {
21
- step(generator.next(value));
22
- } catch (e) {
23
- reject(e);
24
- }
25
- };
26
- var rejected = (value) => {
27
- try {
28
- step(generator.throw(value));
29
- } catch (e) {
30
- reject(e);
31
- }
32
- };
33
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
34
- step((generator = generator.apply(__this, __arguments)).next());
35
- });
36
- };
37
- import { EventEmitter } from "events";
38
- import SocketServer from "./socket-server";
39
- const noop = () => {
40
- };
41
- function getHMRClientPath(client) {
42
- const protocol = (client == null ? void 0 : client.protocol) ? `&protocol=${client.protocol}` : "";
43
- const host = (client == null ? void 0 : client.host) ? `&host=${client.host}` : "";
44
- const path = (client == null ? void 0 : client.path) ? `&path=${client.path}` : "";
45
- const port = (client == null ? void 0 : client.port) ? `&port=${client.port}` : "";
46
- const clientEntry = `${require.resolve("./hmr-client")}?${host}${path}${port}${protocol}`;
47
- return clientEntry;
48
- }
49
- class DevMiddleware extends EventEmitter {
50
- constructor({ dev, devMiddleware }) {
51
- super();
52
- this.devOptions = dev;
53
- this.socketServer = new SocketServer(dev);
54
- if (devMiddleware) {
55
- this.middleware = this.setupDevMiddleware(devMiddleware);
56
- }
57
- }
58
- init(app) {
59
- app.on("listening", () => {
60
- this.socketServer.prepare(app);
61
- });
62
- app.on("close", () => __async(this, null, function* () {
63
- var _a;
64
- (_a = this.middleware) == null ? void 0 : _a.close(noop);
65
- this.socketServer.close();
66
- }));
67
- }
68
- sockWrite(type, data) {
69
- this.socketServer.sockWrite(type, data);
70
- }
71
- setupDevMiddleware(devMiddleware) {
72
- const { devOptions } = this;
73
- const callbacks = {
74
- onInvalid: () => {
75
- this.socketServer.sockWrite("invalid");
76
- },
77
- onDone: (stats) => {
78
- this.socketServer.updateStats(stats);
79
- this.emit("change", stats);
80
- }
81
- };
82
- const enableHMR = this.devOptions.hot || this.devOptions.liveReload;
83
- const middleware = devMiddleware(__spreadValues({
84
- headers: devOptions.headers,
85
- stats: false,
86
- callbacks,
87
- hmrClientPath: enableHMR ? getHMRClientPath(devOptions.client) : void 0
88
- }, devOptions.devMiddleware));
89
- return middleware;
90
- }
91
- }
92
- export {
93
- DevMiddleware as default
94
- };