wapplr 1.0.50 → 1.0.52
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/server/createServer.js +56 -0
- package/dist/server/static.js +38 -27
- package/package.json +1 -1
|
@@ -13,6 +13,8 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
|
|
|
13
13
|
|
|
14
14
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
15
15
|
|
|
16
|
+
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
|
17
|
+
|
|
16
18
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
17
19
|
|
|
18
20
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
@@ -165,6 +167,32 @@ function createServer() {
|
|
|
165
167
|
httpServer.listen(port, function () {
|
|
166
168
|
console.log("The server is running at http://localhost:".concat(port, "/"));
|
|
167
169
|
});
|
|
170
|
+
httpServer.__sockets = new Set();
|
|
171
|
+
httpServer.on("connection", function (socket) {
|
|
172
|
+
httpServer.__sockets.add(socket);
|
|
173
|
+
|
|
174
|
+
socket.on("close", function () {
|
|
175
|
+
httpServer.__sockets["delete"](socket);
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
httpServer.__destroySockets = function () {
|
|
180
|
+
var sockets = httpServer.__sockets;
|
|
181
|
+
|
|
182
|
+
var _iterator = (0, _createForOfIteratorHelper2["default"])(sockets.values()),
|
|
183
|
+
_step;
|
|
184
|
+
|
|
185
|
+
try {
|
|
186
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
187
|
+
var socket = _step.value;
|
|
188
|
+
socket.destroy();
|
|
189
|
+
}
|
|
190
|
+
} catch (err) {
|
|
191
|
+
_iterator.e(err);
|
|
192
|
+
} finally {
|
|
193
|
+
_iterator.f();
|
|
194
|
+
}
|
|
195
|
+
};
|
|
168
196
|
}
|
|
169
197
|
|
|
170
198
|
if (key && cert && portSSL) {
|
|
@@ -180,6 +208,32 @@ function createServer() {
|
|
|
180
208
|
httpsServer.listen(portSSL, function () {
|
|
181
209
|
console.log("The server is running at https://localhost:".concat(portSSL, "/ with HTTP2 protocol"));
|
|
182
210
|
});
|
|
211
|
+
httpsServer.__sockets = new Set();
|
|
212
|
+
httpsServer.on("connection", function (socket) {
|
|
213
|
+
httpsServer.__sockets.add(socket);
|
|
214
|
+
|
|
215
|
+
socket.on("close", function () {
|
|
216
|
+
httpsServer.__sockets["delete"](socket);
|
|
217
|
+
});
|
|
218
|
+
});
|
|
219
|
+
|
|
220
|
+
httpsServer.__destroySockets = function () {
|
|
221
|
+
var sockets = httpsServer.__sockets;
|
|
222
|
+
|
|
223
|
+
var _iterator2 = (0, _createForOfIteratorHelper2["default"])(sockets.values()),
|
|
224
|
+
_step2;
|
|
225
|
+
|
|
226
|
+
try {
|
|
227
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
228
|
+
var socket = _step2.value;
|
|
229
|
+
socket.destroy();
|
|
230
|
+
}
|
|
231
|
+
} catch (err) {
|
|
232
|
+
_iterator2.e(err);
|
|
233
|
+
} finally {
|
|
234
|
+
_iterator2.f();
|
|
235
|
+
}
|
|
236
|
+
};
|
|
183
237
|
}
|
|
184
238
|
}
|
|
185
239
|
|
|
@@ -196,6 +250,8 @@ function createServer() {
|
|
|
196
250
|
});
|
|
197
251
|
var closed = 0;
|
|
198
252
|
shouldClose.forEach(function (httpServer) {
|
|
253
|
+
httpServer.__destroySockets();
|
|
254
|
+
|
|
199
255
|
httpServer.close(function () {
|
|
200
256
|
closed = closed + 1;
|
|
201
257
|
servers[port] = null;
|
package/dist/server/static.js
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.endStream = endStream;
|
|
7
|
+
exports.addCloseEventsForReadableStream = addCloseEventsForReadableStream;
|
|
6
8
|
exports["default"] = serveStatic;
|
|
7
9
|
|
|
8
10
|
var fs = require("fs");
|
|
@@ -26,28 +28,12 @@ function destroy(stream) {
|
|
|
26
28
|
return stream;
|
|
27
29
|
}
|
|
28
30
|
|
|
29
|
-
function endStream(req, res, stream) {
|
|
30
|
-
if (req.__onFinishedRemoveListener) {
|
|
31
|
-
req.__onFinishedRemoveListener();
|
|
32
|
-
|
|
33
|
-
req.__onFinishedRemoveListener = null;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
if (res.__onFinishedRemoveListener) {
|
|
37
|
-
res.__onFinishedRemoveListener();
|
|
38
|
-
|
|
39
|
-
res.__onFinishedRemoveListener = null;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
destroy(stream);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
31
|
function onFinished(req, res, callback) {
|
|
46
32
|
function isFinishedResponse() {
|
|
47
33
|
var socket = res.socket;
|
|
48
34
|
|
|
49
35
|
if (typeof res.finished === "boolean") {
|
|
50
|
-
return Boolean(res.finished || socket && !socket.writable);
|
|
36
|
+
return Boolean(res.finished || res.writableEnded || socket && !socket.writable);
|
|
51
37
|
}
|
|
52
38
|
}
|
|
53
39
|
|
|
@@ -61,7 +47,6 @@ function onFinished(req, res, callback) {
|
|
|
61
47
|
|
|
62
48
|
function removeListener() {
|
|
63
49
|
if (req.__onFinishedInterval) {
|
|
64
|
-
console.log("remove listener", req.path);
|
|
65
50
|
clearInterval(req.__onFinishedInterval);
|
|
66
51
|
req.__onFinishedInterval = 0;
|
|
67
52
|
}
|
|
@@ -85,6 +70,37 @@ function onFinished(req, res, callback) {
|
|
|
85
70
|
req.__onFinishedRemoveListener = res.__onFinishedRemoveListener = removeListener;
|
|
86
71
|
}
|
|
87
72
|
|
|
73
|
+
function endStream(req, res, stream) {
|
|
74
|
+
if (req.__onFinishedRemoveListener) {
|
|
75
|
+
req.__onFinishedRemoveListener();
|
|
76
|
+
|
|
77
|
+
req.__onFinishedRemoveListener = null;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if (res.__onFinishedRemoveListener) {
|
|
81
|
+
res.__onFinishedRemoveListener();
|
|
82
|
+
|
|
83
|
+
res.__onFinishedRemoveListener = null;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
destroy(stream);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function addCloseEventsForReadableStream(req, res, stream) {
|
|
90
|
+
req.on("close", function () {
|
|
91
|
+
endStream(req, res, stream);
|
|
92
|
+
});
|
|
93
|
+
req.connection.on("close", function () {
|
|
94
|
+
endStream(req, res, stream);
|
|
95
|
+
});
|
|
96
|
+
onFinished(req, res, function () {
|
|
97
|
+
endStream(req, res, stream);
|
|
98
|
+
});
|
|
99
|
+
stream.on("close", function onclose() {
|
|
100
|
+
endStream(req, res, stream);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
|
|
88
104
|
function serveStatic(publicPath) {
|
|
89
105
|
return function staticMiddleware(req, res, next) {
|
|
90
106
|
var parsedUrl = {
|
|
@@ -97,8 +113,8 @@ function serveStatic(publicPath) {
|
|
|
97
113
|
|
|
98
114
|
var sanitizePath = path.normalize(parsedUrl.pathname).replace(/^(\.\.[\/\\])+/, "");
|
|
99
115
|
var pathname = path.join(publicPath, sanitizePath);
|
|
100
|
-
var
|
|
101
|
-
var ext =
|
|
116
|
+
var parsedSanitizePath = path.parse(pathname);
|
|
117
|
+
var ext = parsedSanitizePath.ext;
|
|
102
118
|
|
|
103
119
|
if (!fs.existsSync(pathname) || !ext) {
|
|
104
120
|
return next();
|
|
@@ -113,15 +129,10 @@ function serveStatic(publicPath) {
|
|
|
113
129
|
res.wappResponse.sendData = {
|
|
114
130
|
data: data,
|
|
115
131
|
stats: stats,
|
|
116
|
-
parsedPath:
|
|
132
|
+
parsedPath: parsedSanitizePath
|
|
117
133
|
};
|
|
118
134
|
stream = fs.createReadStream(pathname);
|
|
119
|
-
|
|
120
|
-
endStream(req, res, stream);
|
|
121
|
-
});
|
|
122
|
-
stream.on("close", function onopen() {
|
|
123
|
-
endStream(req, res, stream);
|
|
124
|
-
});
|
|
135
|
+
addCloseEventsForReadableStream(req, res, stream);
|
|
125
136
|
stream.on("error", function onerror(err) {
|
|
126
137
|
endStream(req, res, stream);
|
|
127
138
|
res.wappResponse.status(err.statusCode || 500, err);
|