@modern-js/server 2.48.0 → 2.48.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.
- package/dist/cjs/constants.js +1 -1
- package/dist/cjs/dev-tools/dev-middleware/index.js +0 -4
- package/dist/cjs/dev-tools/dev-middleware/socketServer.js +2 -7
- package/dist/cjs/dev-tools/watcher/dependencyTree.js +0 -3
- package/dist/cjs/dev-tools/watcher/index.js +1 -3
- package/dist/cjs/dev-tools/watcher/statsCache.js +2 -3
- package/dist/cjs/server/devServer.js +4 -11
- package/dist/cjs/server/devServerOld.js +3 -9
- package/dist/cjs/server/workerSSRRender.js +1 -1
- package/dist/esm/constants.js +1 -1
- package/dist/esm/dev-tools/dev-middleware/index.js +42 -58
- package/dist/esm/dev-tools/dev-middleware/socketServer.js +130 -179
- package/dist/esm/dev-tools/watcher/dependencyTree.js +59 -80
- package/dist/esm/dev-tools/watcher/index.js +63 -82
- package/dist/esm/dev-tools/watcher/statsCache.js +55 -76
- package/dist/esm/server/devServer.js +433 -494
- package/dist/esm/server/devServerOld.js +455 -515
- package/dist/esm/server/workerSSRRender.js +1 -1
- package/dist/esm-node/constants.js +1 -1
- package/dist/esm-node/dev-tools/dev-middleware/index.js +0 -4
- package/dist/esm-node/dev-tools/dev-middleware/socketServer.js +2 -7
- package/dist/esm-node/dev-tools/watcher/dependencyTree.js +0 -3
- package/dist/esm-node/dev-tools/watcher/index.js +1 -3
- package/dist/esm-node/dev-tools/watcher/statsCache.js +2 -3
- package/dist/esm-node/server/devServer.js +4 -11
- package/dist/esm-node/server/devServerOld.js +3 -9
- package/dist/esm-node/server/workerSSRRender.js +1 -1
- package/dist/types/server/devServer.d.ts +1 -1
- package/dist/types/server/devServerOld.d.ts +1 -1
- package/dist/types/types.d.ts +2 -2
- package/package.json +10 -10
package/dist/cjs/constants.js
CHANGED
|
@@ -31,7 +31,6 @@ __export(dev_middleware_exports, {
|
|
|
31
31
|
default: () => DevMiddleware
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(dev_middleware_exports);
|
|
34
|
-
var import_define_property = require("@swc/helpers/_/_define_property");
|
|
35
34
|
var import_events = require("events");
|
|
36
35
|
var import_socketServer = __toESM(require("./socketServer"));
|
|
37
36
|
const noop = () => {
|
|
@@ -82,9 +81,6 @@ class DevMiddleware extends import_events.EventEmitter {
|
|
|
82
81
|
}
|
|
83
82
|
constructor({ dev, devMiddleware }) {
|
|
84
83
|
super();
|
|
85
|
-
(0, import_define_property._)(this, "middleware", void 0);
|
|
86
|
-
(0, import_define_property._)(this, "devOptions", void 0);
|
|
87
|
-
(0, import_define_property._)(this, "socketServer", void 0);
|
|
88
84
|
this.devOptions = dev;
|
|
89
85
|
this.socketServer = new import_socketServer.default(dev);
|
|
90
86
|
if (devMiddleware) {
|
|
@@ -31,7 +31,6 @@ __export(socketServer_exports, {
|
|
|
31
31
|
default: () => SocketServer
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(socketServer_exports);
|
|
34
|
-
var import_define_property = require("@swc/helpers/_/_define_property");
|
|
35
34
|
var import_ws = __toESM(require("ws"));
|
|
36
35
|
var import_utils = require("@modern-js/utils");
|
|
37
36
|
class SocketServer {
|
|
@@ -167,12 +166,8 @@ class SocketServer {
|
|
|
167
166
|
connection.send(message);
|
|
168
167
|
}
|
|
169
168
|
constructor(options) {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
(0, import_define_property._)(this, "options", void 0);
|
|
173
|
-
(0, import_define_property._)(this, "app", void 0);
|
|
174
|
-
(0, import_define_property._)(this, "stats", void 0);
|
|
175
|
-
(0, import_define_property._)(this, "timer", null);
|
|
169
|
+
this.sockets = [];
|
|
170
|
+
this.timer = null;
|
|
176
171
|
this.options = options;
|
|
177
172
|
}
|
|
178
173
|
}
|
|
@@ -32,7 +32,6 @@ __export(dependencyTree_exports, {
|
|
|
32
32
|
defaultIgnores: () => defaultIgnores
|
|
33
33
|
});
|
|
34
34
|
module.exports = __toCommonJS(dependencyTree_exports);
|
|
35
|
-
var import_define_property = require("@swc/helpers/_/_define_property");
|
|
36
35
|
var import_minimatch = __toESM(require("minimatch"));
|
|
37
36
|
const defaultIgnores = [
|
|
38
37
|
"**/coverage/**",
|
|
@@ -90,8 +89,6 @@ class DependencyTree {
|
|
|
90
89
|
}).length > 0));
|
|
91
90
|
}
|
|
92
91
|
constructor() {
|
|
93
|
-
(0, import_define_property._)(this, "tree", void 0);
|
|
94
|
-
(0, import_define_property._)(this, "ignore", void 0);
|
|
95
92
|
this.tree = /* @__PURE__ */ new Map();
|
|
96
93
|
this.ignore = [
|
|
97
94
|
...defaultIgnores
|
|
@@ -34,7 +34,6 @@ __export(watcher_exports, {
|
|
|
34
34
|
mergeWatchOptions: () => mergeWatchOptions
|
|
35
35
|
});
|
|
36
36
|
module.exports = __toCommonJS(watcher_exports);
|
|
37
|
-
var import_define_property = require("@swc/helpers/_/_define_property");
|
|
38
37
|
var import_path = __toESM(require("path"));
|
|
39
38
|
var import_utils = require("@modern-js/utils");
|
|
40
39
|
var import_dependencyTree = require("./dependencyTree");
|
|
@@ -126,8 +125,7 @@ class Watcher {
|
|
|
126
125
|
return this.watcher.close();
|
|
127
126
|
}
|
|
128
127
|
constructor() {
|
|
129
|
-
|
|
130
|
-
(0, import_define_property._)(this, "watcher", void 0);
|
|
128
|
+
this.dependencyTree = null;
|
|
131
129
|
}
|
|
132
130
|
}
|
|
133
131
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -31,7 +31,6 @@ __export(statsCache_exports, {
|
|
|
31
31
|
StatsCache: () => StatsCache
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(statsCache_exports);
|
|
34
|
-
var import_define_property = require("@swc/helpers/_/_define_property");
|
|
35
34
|
var import_fs = __toESM(require("fs"));
|
|
36
35
|
var import_crypto = __toESM(require("crypto"));
|
|
37
36
|
class StatsCache {
|
|
@@ -83,8 +82,8 @@ class StatsCache {
|
|
|
83
82
|
return import_crypto.default.createHash("md5").update(import_fs.default.readFileSync(filename)).digest("hex");
|
|
84
83
|
}
|
|
85
84
|
constructor() {
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
this.cachedHash = {};
|
|
86
|
+
this.cachedSize = {};
|
|
88
87
|
}
|
|
89
88
|
}
|
|
90
89
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -31,7 +31,6 @@ __export(devServer_exports, {
|
|
|
31
31
|
ModernDevServer: () => ModernDevServer
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(devServer_exports);
|
|
34
|
-
var import_define_property = require("@swc/helpers/_/_define_property");
|
|
35
34
|
var import_http = require("http");
|
|
36
35
|
var import_path = __toESM(require("path"));
|
|
37
36
|
var import_https = require("https");
|
|
@@ -170,7 +169,7 @@ class ModernDevServer extends import_prod_server.ModernServer {
|
|
|
170
169
|
}
|
|
171
170
|
// override the ModernServer renderHandler logic
|
|
172
171
|
getRenderHandler() {
|
|
173
|
-
if (this.
|
|
172
|
+
if (this.useSSRWorker) {
|
|
174
173
|
var _this_conf_server, _conf_security;
|
|
175
174
|
const { distDir, staticGenerate, conf, metaName } = this;
|
|
176
175
|
const ssrConfig = (_this_conf_server = this.conf.server) === null || _this_conf_server === void 0 ? void 0 : _this_conf_server.ssr;
|
|
@@ -311,17 +310,11 @@ class ModernDevServer extends import_prod_server.ModernServer {
|
|
|
311
310
|
}
|
|
312
311
|
constructor(options) {
|
|
313
312
|
super(options);
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
(0, import_define_property._)(this, "useWorkerSSR", void 0);
|
|
317
|
-
(0, import_define_property._)(this, "appContext", void 0);
|
|
318
|
-
(0, import_define_property._)(this, "getMiddlewares", void 0);
|
|
319
|
-
(0, import_define_property._)(this, "rsbuild", void 0);
|
|
320
|
-
(0, import_define_property._)(this, "watcher", void 0);
|
|
321
|
-
(0, import_define_property._)(this, "closeCb", []);
|
|
313
|
+
this.mockHandler = null;
|
|
314
|
+
this.closeCb = [];
|
|
322
315
|
this.appContext = options.appContext;
|
|
323
316
|
this.workDir = this.pwd;
|
|
324
|
-
this.
|
|
317
|
+
this.useSSRWorker = Boolean(options.useSSRWorker);
|
|
325
318
|
this.dev = this.getDevOptions(options);
|
|
326
319
|
this.getMiddlewares = options.getMiddlewares;
|
|
327
320
|
this.rsbuild = options.rsbuild;
|
|
@@ -31,7 +31,6 @@ __export(devServerOld_exports, {
|
|
|
31
31
|
ModernDevServer: () => ModernDevServer
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(devServerOld_exports);
|
|
34
|
-
var import_define_property = require("@swc/helpers/_/_define_property");
|
|
35
34
|
var import_http = require("http");
|
|
36
35
|
var import_path = __toESM(require("path"));
|
|
37
36
|
var import_https = require("https");
|
|
@@ -105,7 +104,7 @@ class ModernDevServer extends import_prod_server.ModernServer {
|
|
|
105
104
|
}
|
|
106
105
|
// override the ModernServer renderHandler logic
|
|
107
106
|
getRenderHandler() {
|
|
108
|
-
if (this.
|
|
107
|
+
if (this.useSSRWorker) {
|
|
109
108
|
var _this_conf_server, _conf_security;
|
|
110
109
|
const { distDir, staticGenerate, conf, metaName } = this;
|
|
111
110
|
const ssrConfig = (_this_conf_server = this.conf.server) === null || _this_conf_server === void 0 ? void 0 : _this_conf_server.ssr;
|
|
@@ -329,15 +328,10 @@ class ModernDevServer extends import_prod_server.ModernServer {
|
|
|
329
328
|
}
|
|
330
329
|
constructor(options) {
|
|
331
330
|
super(options);
|
|
332
|
-
|
|
333
|
-
(0, import_define_property._)(this, "dev", void 0);
|
|
334
|
-
(0, import_define_property._)(this, "useWorkerSSR", void 0);
|
|
335
|
-
(0, import_define_property._)(this, "appContext", void 0);
|
|
336
|
-
(0, import_define_property._)(this, "devMiddleware", void 0);
|
|
337
|
-
(0, import_define_property._)(this, "watcher", void 0);
|
|
331
|
+
this.mockHandler = null;
|
|
338
332
|
this.appContext = options.appContext;
|
|
339
333
|
this.workDir = this.pwd;
|
|
340
|
-
this.
|
|
334
|
+
this.useSSRWorker = Boolean(options.useSSRWorker);
|
|
341
335
|
this.dev = this.getDevOptions(options);
|
|
342
336
|
this.devMiddleware = new import_dev_middleware.default({
|
|
343
337
|
dev: this.dev,
|
|
@@ -37,7 +37,7 @@ const PORT = 9230;
|
|
|
37
37
|
async function workerSSRRender(ctx, renderOptions, _runner) {
|
|
38
38
|
const { headers, params } = ctx;
|
|
39
39
|
const { urlPath } = renderOptions.route;
|
|
40
|
-
const url = `http://0.0.0.0:${PORT}/${urlPath}`;
|
|
40
|
+
const url = urlPath.startsWith("/") ? `http://0.0.0.0:${PORT}${urlPath}` : `http://0.0.0.0:${PORT}/${urlPath}`;
|
|
41
41
|
const resposne = await import_axios.default.get(url, {
|
|
42
42
|
timeout: 5e3,
|
|
43
43
|
responseType: "text",
|
package/dist/esm/constants.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import { _ as _assert_this_initialized } from "@swc/helpers/_/_assert_this_initialized";
|
|
2
1
|
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
3
2
|
import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
|
|
4
|
-
import { _ as _create_class } from "@swc/helpers/_/_create_class";
|
|
5
|
-
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
6
3
|
import { _ as _inherits } from "@swc/helpers/_/_inherits";
|
|
7
4
|
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
8
5
|
import { _ as _create_super } from "@swc/helpers/_/_create_super";
|
|
@@ -28,9 +25,6 @@ var DevMiddleware = /* @__PURE__ */ function(EventEmitter2) {
|
|
|
28
25
|
_class_call_check(this, DevMiddleware2);
|
|
29
26
|
var _this;
|
|
30
27
|
_this = _super.call(this);
|
|
31
|
-
_define_property(_assert_this_initialized(_this), "middleware", void 0);
|
|
32
|
-
_define_property(_assert_this_initialized(_this), "devOptions", void 0);
|
|
33
|
-
_define_property(_assert_this_initialized(_this), "socketServer", void 0);
|
|
34
28
|
_this.devOptions = dev;
|
|
35
29
|
_this.socketServer = new SocketServer(dev);
|
|
36
30
|
if (devMiddleware) {
|
|
@@ -38,59 +32,49 @@ var DevMiddleware = /* @__PURE__ */ function(EventEmitter2) {
|
|
|
38
32
|
}
|
|
39
33
|
return _this;
|
|
40
34
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
35
|
+
var _proto = DevMiddleware2.prototype;
|
|
36
|
+
_proto.init = function init(app) {
|
|
37
|
+
var _this = this;
|
|
38
|
+
app.on("listening", function() {
|
|
39
|
+
_this.socketServer.prepare(app);
|
|
40
|
+
});
|
|
41
|
+
var _this1 = this;
|
|
42
|
+
app.on("close", /* @__PURE__ */ _async_to_generator(function() {
|
|
43
|
+
var _this_middleware;
|
|
44
|
+
return _ts_generator(this, function(_state) {
|
|
45
|
+
(_this_middleware = _this1.middleware) === null || _this_middleware === void 0 ? void 0 : _this_middleware.close(noop);
|
|
46
|
+
_this1.socketServer.close();
|
|
47
|
+
return [
|
|
48
|
+
2
|
|
49
|
+
];
|
|
50
|
+
});
|
|
51
|
+
}));
|
|
52
|
+
};
|
|
53
|
+
_proto.sockWrite = function sockWrite(type, data) {
|
|
54
|
+
this.socketServer.sockWrite(type, data);
|
|
55
|
+
};
|
|
56
|
+
_proto.setupDevMiddleware = function setupDevMiddleware(devMiddleware) {
|
|
57
|
+
var _this = this;
|
|
58
|
+
var devOptions = this.devOptions;
|
|
59
|
+
var callbacks = {
|
|
60
|
+
onInvalid: function() {
|
|
61
|
+
_this.socketServer.sockWrite("invalid");
|
|
62
|
+
},
|
|
63
|
+
onDone: function(stats) {
|
|
64
|
+
_this.socketServer.updateStats(stats);
|
|
65
|
+
_this.emit("change", stats);
|
|
60
66
|
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
var devOptions = this.devOptions;
|
|
73
|
-
var callbacks = {
|
|
74
|
-
onInvalid: function() {
|
|
75
|
-
_this.socketServer.sockWrite("invalid");
|
|
76
|
-
},
|
|
77
|
-
onDone: function(stats) {
|
|
78
|
-
_this.socketServer.updateStats(stats);
|
|
79
|
-
_this.emit("change", stats);
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
var enableHMR = this.devOptions.hot || this.devOptions.liveReload;
|
|
83
|
-
var middleware = devMiddleware(_object_spread({
|
|
84
|
-
headers: devOptions.headers,
|
|
85
|
-
stats: false,
|
|
86
|
-
callbacks,
|
|
87
|
-
hmrClientPath: enableHMR ? getHMRClientPath(devOptions.client) : void 0,
|
|
88
|
-
serverSideRender: true
|
|
89
|
-
}, devOptions.devMiddleware));
|
|
90
|
-
return middleware;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
]);
|
|
67
|
+
};
|
|
68
|
+
var enableHMR = this.devOptions.hot || this.devOptions.liveReload;
|
|
69
|
+
var middleware = devMiddleware(_object_spread({
|
|
70
|
+
headers: devOptions.headers,
|
|
71
|
+
stats: false,
|
|
72
|
+
callbacks,
|
|
73
|
+
hmrClientPath: enableHMR ? getHMRClientPath(devOptions.client) : void 0,
|
|
74
|
+
serverSideRender: true
|
|
75
|
+
}, devOptions.devMiddleware));
|
|
76
|
+
return middleware;
|
|
77
|
+
};
|
|
94
78
|
return DevMiddleware2;
|
|
95
79
|
}(EventEmitter);
|
|
96
80
|
export {
|
|
@@ -1,196 +1,147 @@
|
|
|
1
1
|
import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
|
|
2
|
-
import { _ as _create_class } from "@swc/helpers/_/_create_class";
|
|
3
|
-
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
4
2
|
import ws from "ws";
|
|
5
3
|
import { logger } from "@modern-js/utils";
|
|
6
4
|
var SocketServer = /* @__PURE__ */ function() {
|
|
7
5
|
"use strict";
|
|
8
6
|
function SocketServer2(options) {
|
|
9
7
|
_class_call_check(this, SocketServer2);
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
_define_property(this, "options", void 0);
|
|
13
|
-
_define_property(this, "app", void 0);
|
|
14
|
-
_define_property(this, "stats", void 0);
|
|
15
|
-
_define_property(this, "timer", null);
|
|
8
|
+
this.sockets = [];
|
|
9
|
+
this.timer = null;
|
|
16
10
|
this.options = options;
|
|
17
11
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
});
|
|
31
|
-
this.app.on("upgrade", function(req, sock, head) {
|
|
32
|
-
if (!_this.wsServer.shouldHandle(req)) {
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
_this.wsServer.handleUpgrade(req, sock, head, function(connection) {
|
|
36
|
-
_this.wsServer.emit("connection", connection, req);
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
this.wsServer.on("error", function(err) {
|
|
40
|
-
logger.error(err);
|
|
41
|
-
});
|
|
42
|
-
this.timer = setInterval(function() {
|
|
43
|
-
_this.wsServer.clients.forEach(function(socket) {
|
|
44
|
-
var extWs = socket;
|
|
45
|
-
if (!extWs.isAlive) {
|
|
46
|
-
extWs.terminate();
|
|
47
|
-
} else {
|
|
48
|
-
extWs.isAlive = false;
|
|
49
|
-
extWs.ping(function() {
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
}, 3e4);
|
|
54
|
-
this.wsServer.on("connection", function(socket) {
|
|
55
|
-
_this.onConnect(socket);
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
)
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
key: "updateStats",
|
|
62
|
-
value: function updateStats(stats) {
|
|
63
|
-
this.stats = stats;
|
|
64
|
-
this.sendStats();
|
|
12
|
+
var _proto = SocketServer2.prototype;
|
|
13
|
+
_proto.prepare = function prepare(app) {
|
|
14
|
+
var _this = this;
|
|
15
|
+
var _this_options_client;
|
|
16
|
+
this.app = app;
|
|
17
|
+
this.wsServer = new ws.Server({
|
|
18
|
+
noServer: true,
|
|
19
|
+
path: (_this_options_client = this.options.client) === null || _this_options_client === void 0 ? void 0 : _this_options_client.path
|
|
20
|
+
});
|
|
21
|
+
this.app.on("upgrade", function(req, sock, head) {
|
|
22
|
+
if (!_this.wsServer.shouldHandle(req)) {
|
|
23
|
+
return;
|
|
65
24
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
25
|
+
_this.wsServer.handleUpgrade(req, sock, head, function(connection) {
|
|
26
|
+
_this.wsServer.emit("connection", connection, req);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
this.wsServer.on("error", function(err) {
|
|
30
|
+
logger.error(err);
|
|
31
|
+
});
|
|
32
|
+
this.timer = setInterval(function() {
|
|
33
|
+
_this.wsServer.clients.forEach(function(socket) {
|
|
34
|
+
var extWs = socket;
|
|
35
|
+
if (!extWs.isAlive) {
|
|
36
|
+
extWs.terminate();
|
|
37
|
+
} else {
|
|
38
|
+
extWs.isAlive = false;
|
|
39
|
+
extWs.ping(function() {
|
|
78
40
|
});
|
|
79
41
|
}
|
|
80
|
-
)
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
this.sendStats(true);
|
|
130
|
-
}
|
|
42
|
+
});
|
|
43
|
+
}, 3e4);
|
|
44
|
+
this.wsServer.on("connection", function(socket) {
|
|
45
|
+
_this.onConnect(socket);
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
_proto.updateStats = function updateStats(stats) {
|
|
49
|
+
this.stats = stats;
|
|
50
|
+
this.sendStats();
|
|
51
|
+
};
|
|
52
|
+
_proto.sockWrite = function sockWrite(type, data) {
|
|
53
|
+
var _this = this;
|
|
54
|
+
this.sockets.forEach(function(socket) {
|
|
55
|
+
_this.send(socket, JSON.stringify({
|
|
56
|
+
type,
|
|
57
|
+
data
|
|
58
|
+
}));
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
_proto.singleWrite = function singleWrite(socket, type, data) {
|
|
62
|
+
this.send(socket, JSON.stringify({
|
|
63
|
+
type,
|
|
64
|
+
data
|
|
65
|
+
}));
|
|
66
|
+
};
|
|
67
|
+
_proto.close = function close() {
|
|
68
|
+
this.sockets.forEach(function(socket) {
|
|
69
|
+
socket.close();
|
|
70
|
+
});
|
|
71
|
+
if (this.timer) {
|
|
72
|
+
clearInterval(this.timer);
|
|
73
|
+
this.timer = null;
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
_proto.onConnect = function onConnect(socket) {
|
|
77
|
+
var _this = this;
|
|
78
|
+
var connection = socket;
|
|
79
|
+
connection.isAlive = true;
|
|
80
|
+
connection.on("pong", function() {
|
|
81
|
+
connection.isAlive = true;
|
|
82
|
+
});
|
|
83
|
+
if (!connection) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
this.sockets.push(connection);
|
|
87
|
+
connection.on("close", function() {
|
|
88
|
+
var idx = _this.sockets.indexOf(connection);
|
|
89
|
+
if (idx >= 0) {
|
|
90
|
+
_this.sockets.splice(idx, 1);
|
|
131
91
|
}
|
|
132
|
-
}
|
|
133
|
-
{
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
key: "send",
|
|
183
|
-
value: (
|
|
184
|
-
// send message to connecting socket
|
|
185
|
-
function send(connection, message) {
|
|
186
|
-
if (connection.readyState !== 1) {
|
|
187
|
-
return;
|
|
188
|
-
}
|
|
189
|
-
connection.send(message);
|
|
190
|
-
}
|
|
191
|
-
)
|
|
92
|
+
});
|
|
93
|
+
if (this.options.hot) {
|
|
94
|
+
this.singleWrite(connection, "hot");
|
|
95
|
+
}
|
|
96
|
+
if (this.options.liveReload) {
|
|
97
|
+
this.singleWrite(connection, "liveReload");
|
|
98
|
+
}
|
|
99
|
+
if (this.stats) {
|
|
100
|
+
this.sendStats(true);
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
_proto.getStats = function getStats() {
|
|
104
|
+
var curStats = this.stats;
|
|
105
|
+
if (!curStats) {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
var defaultStats = {
|
|
109
|
+
all: false,
|
|
110
|
+
hash: true,
|
|
111
|
+
assets: true,
|
|
112
|
+
warnings: true,
|
|
113
|
+
errors: true,
|
|
114
|
+
errorDetails: false
|
|
115
|
+
};
|
|
116
|
+
return curStats.toJson(defaultStats);
|
|
117
|
+
};
|
|
118
|
+
_proto.sendStats = function sendStats() {
|
|
119
|
+
var force = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
|
|
120
|
+
var stats = this.getStats();
|
|
121
|
+
if (!stats) {
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
var shouldEmit = !force && stats && (!stats.errors || stats.errors.length === 0) && stats.assets && stats.assets.every(function(asset) {
|
|
125
|
+
return !asset.emitted;
|
|
126
|
+
});
|
|
127
|
+
if (shouldEmit) {
|
|
128
|
+
return this.sockWrite("still-ok");
|
|
129
|
+
}
|
|
130
|
+
this.sockWrite("hash", stats.hash);
|
|
131
|
+
if (stats.errors && stats.errors.length > 0) {
|
|
132
|
+
return this.sockWrite("errors", stats.errors);
|
|
133
|
+
} else if (stats.warnings && stats.warnings.length > 0) {
|
|
134
|
+
return this.sockWrite("warnings", stats.warnings);
|
|
135
|
+
} else {
|
|
136
|
+
return this.sockWrite("ok");
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
_proto.send = function send(connection, message) {
|
|
140
|
+
if (connection.readyState !== 1) {
|
|
141
|
+
return;
|
|
192
142
|
}
|
|
193
|
-
|
|
143
|
+
connection.send(message);
|
|
144
|
+
};
|
|
194
145
|
return SocketServer2;
|
|
195
146
|
}();
|
|
196
147
|
export {
|