wapplr 1.0.46 → 1.0.50
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/common/contents.js +19 -3
- package/dist/server/html.js +2 -1
- package/dist/server/static.js +87 -1
- package/package.json +1 -1
package/dist/common/contents.js
CHANGED
|
@@ -44,22 +44,35 @@ function createDefaultContentManager() {
|
|
|
44
44
|
contents = contentManager.contents;
|
|
45
45
|
content = contentName && contents[contentName] ? (0, _objectSpread2["default"])({}, contents[contentName]) : null;
|
|
46
46
|
|
|
47
|
-
if (!
|
|
47
|
+
if (!contentManager.firstRequest) {
|
|
48
48
|
_context.next = 8;
|
|
49
49
|
break;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
_context.next = 8;
|
|
53
|
-
return
|
|
53
|
+
return contentManager.firstRequest({
|
|
54
54
|
wapp: wapp,
|
|
55
55
|
req: req,
|
|
56
56
|
res: res
|
|
57
57
|
});
|
|
58
58
|
|
|
59
59
|
case 8:
|
|
60
|
+
if (!(content && content.request)) {
|
|
61
|
+
_context.next = 11;
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
_context.next = 11;
|
|
66
|
+
return content.request({
|
|
67
|
+
wapp: wapp,
|
|
68
|
+
req: req,
|
|
69
|
+
res: res
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
case 11:
|
|
60
73
|
return _context.abrupt("return", content);
|
|
61
74
|
|
|
62
|
-
case
|
|
75
|
+
case 12:
|
|
63
76
|
case "end":
|
|
64
77
|
return _context.stop();
|
|
65
78
|
}
|
|
@@ -211,6 +224,9 @@ function createDefaultContentManager() {
|
|
|
211
224
|
}),
|
|
212
225
|
getComponent: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, _utils.defaultDescriptor), {}, {
|
|
213
226
|
value: defaultGetComponent
|
|
227
|
+
}),
|
|
228
|
+
firstRequest: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, _utils.defaultDescriptor), {}, {
|
|
229
|
+
value: null
|
|
214
230
|
})
|
|
215
231
|
});
|
|
216
232
|
return contentManager;
|
package/dist/server/html.js
CHANGED
|
@@ -30,7 +30,7 @@ function html(_ref) {
|
|
|
30
30
|
_config$appStyle = config.appStyle,
|
|
31
31
|
appStyle = _config$appStyle === void 0 ? style : _config$appStyle;
|
|
32
32
|
var _res$wappResponse = res.wappResponse,
|
|
33
|
-
|
|
33
|
+
store = _res$wappResponse.store,
|
|
34
34
|
_res$wappResponse$con = _res$wappResponse.content,
|
|
35
35
|
content = _res$wappResponse$con === void 0 ? {} : _res$wappResponse$con,
|
|
36
36
|
_res$wappResponse$sta = _res$wappResponse.statusCode,
|
|
@@ -39,6 +39,7 @@ function html(_ref) {
|
|
|
39
39
|
containerElementId = _res$wappResponse$con2 === void 0 ? "app" : _res$wappResponse$con2,
|
|
40
40
|
_res$wappResponse$app = _res$wappResponse.appStateName,
|
|
41
41
|
appStateName = _res$wappResponse$app === void 0 ? "APP_STATE" : _res$wappResponse$app;
|
|
42
|
+
var state = store ? store.getState() : {};
|
|
42
43
|
var _content$render = content.render,
|
|
43
44
|
render = _content$render === void 0 ? "" : _content$render,
|
|
44
45
|
_content$title = content.title,
|
package/dist/server/static.js
CHANGED
|
@@ -9,6 +9,82 @@ var fs = require("fs");
|
|
|
9
9
|
|
|
10
10
|
var path = require("path");
|
|
11
11
|
|
|
12
|
+
function destroy(stream) {
|
|
13
|
+
if (!(stream !== null && stream !== void 0 && stream.__destroyed)) {
|
|
14
|
+
stream.destroy();
|
|
15
|
+
stream.__destroyed = true;
|
|
16
|
+
|
|
17
|
+
if (typeof stream.close === "function") {
|
|
18
|
+
stream.on("open", function onOpenClose() {
|
|
19
|
+
if (typeof this.fd === "number") {
|
|
20
|
+
this.close();
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return stream;
|
|
27
|
+
}
|
|
28
|
+
|
|
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
|
+
function onFinished(req, res, callback) {
|
|
46
|
+
function isFinishedResponse() {
|
|
47
|
+
var socket = res.socket;
|
|
48
|
+
|
|
49
|
+
if (typeof res.finished === "boolean") {
|
|
50
|
+
return Boolean(res.finished || socket && !socket.writable);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function isFinishedRequest() {
|
|
55
|
+
var socket = req.socket;
|
|
56
|
+
|
|
57
|
+
if (typeof req.complete === "boolean") {
|
|
58
|
+
return Boolean(req.upgrade || !socket || !socket.readable || req.complete && !req.readable);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function removeListener() {
|
|
63
|
+
if (req.__onFinishedInterval) {
|
|
64
|
+
console.log("remove listener", req.path);
|
|
65
|
+
clearInterval(req.__onFinishedInterval);
|
|
66
|
+
req.__onFinishedInterval = 0;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if (res.__onFinishedInterval) {
|
|
70
|
+
clearInterval(res.__onFinishedInterval);
|
|
71
|
+
res.__onFinishedInterval = 0;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function listener() {
|
|
76
|
+
var result = isFinishedRequest() || isFinishedResponse();
|
|
77
|
+
|
|
78
|
+
if (result) {
|
|
79
|
+
removeListener();
|
|
80
|
+
callback();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
req.__onFinishedInterval = res.__onFinishedInterval = setInterval(listener, 100);
|
|
85
|
+
req.__onFinishedRemoveListener = res.__onFinishedRemoveListener = removeListener;
|
|
86
|
+
}
|
|
87
|
+
|
|
12
88
|
function serveStatic(publicPath) {
|
|
13
89
|
return function staticMiddleware(req, res, next) {
|
|
14
90
|
var parsedUrl = {
|
|
@@ -28,6 +104,8 @@ function serveStatic(publicPath) {
|
|
|
28
104
|
return next();
|
|
29
105
|
}
|
|
30
106
|
|
|
107
|
+
var stream;
|
|
108
|
+
|
|
31
109
|
try {
|
|
32
110
|
var data = fs.readFileSync(pathname);
|
|
33
111
|
var stats = fs.statSync(pathname);
|
|
@@ -37,8 +115,15 @@ function serveStatic(publicPath) {
|
|
|
37
115
|
stats: stats,
|
|
38
116
|
parsedPath: paredSanitizePath
|
|
39
117
|
};
|
|
40
|
-
|
|
118
|
+
stream = fs.createReadStream(pathname);
|
|
119
|
+
onFinished(req, res, function () {
|
|
120
|
+
endStream(req, res, stream);
|
|
121
|
+
});
|
|
122
|
+
stream.on("close", function onopen() {
|
|
123
|
+
endStream(req, res, stream);
|
|
124
|
+
});
|
|
41
125
|
stream.on("error", function onerror(err) {
|
|
126
|
+
endStream(req, res, stream);
|
|
42
127
|
res.wappResponse.status(err.statusCode || 500, err);
|
|
43
128
|
res.wapp.log(err, req, res);
|
|
44
129
|
next(err);
|
|
@@ -50,6 +135,7 @@ function serveStatic(publicPath) {
|
|
|
50
135
|
});
|
|
51
136
|
});
|
|
52
137
|
} catch (err) {
|
|
138
|
+
endStream(req, res, stream);
|
|
53
139
|
res.wappResponse.status(err.statusCode || 500, err);
|
|
54
140
|
res.wapp.log(err, req, res);
|
|
55
141
|
next(err);
|