wapplr 1.0.74 → 1.0.76
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/client/app.js +183 -243
- package/dist/client/config.js +1 -5
- package/dist/client/createClient.js +88 -134
- package/dist/client/history.js +10 -39
- package/dist/client/index.js +0 -15
- package/dist/client/middlewares.js +93 -168
- package/dist/common/config.js +1 -4
- package/dist/common/contents.js +91 -142
- package/dist/common/index.js +7 -18
- package/dist/common/log/index.js +27 -48
- package/dist/common/log/renderedContent.js +57 -70
- package/dist/common/logo/index.js +0 -2
- package/dist/common/middlewares.js +7 -61
- package/dist/common/requests.js +97 -143
- package/dist/common/router.js +97 -162
- package/dist/common/states.js +7 -68
- package/dist/common/styles.js +6 -51
- package/dist/common/template/index.js +19 -24
- package/dist/common/template/template_css.js +1 -1
- package/dist/common/utils.js +4 -18
- package/dist/server/app.js +151 -217
- package/dist/server/config.js +1 -13
- package/dist/server/createServer.js +110 -197
- package/dist/server/html.js +35 -46
- package/dist/server/index.js +1 -16
- package/dist/server/middlewares.js +14 -73
- package/dist/server/static.js +0 -26
- package/package.json +1 -1
package/dist/server/html.js
CHANGED
|
@@ -4,51 +4,48 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = html;
|
|
7
|
-
|
|
8
7
|
var style = require("./../common/template/app_css.js")["default"];
|
|
9
|
-
|
|
10
8
|
function html(_ref) {
|
|
11
9
|
var wapp = _ref.wapp,
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
req = _ref.req,
|
|
11
|
+
res = _ref.res;
|
|
14
12
|
var config = wapp.server.config;
|
|
15
13
|
var _config$siteName = config.siteName,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
14
|
+
siteName = _config$siteName === void 0 ? "Wapplr" : _config$siteName,
|
|
15
|
+
_config$assets = config.assets,
|
|
16
|
+
assets = _config$assets === void 0 ? {} : _config$assets,
|
|
17
|
+
_config$lang = config.lang,
|
|
18
|
+
lang = _config$lang === void 0 ? "en_US" : _config$lang,
|
|
19
|
+
_config$viewport = config.viewport,
|
|
20
|
+
viewport = _config$viewport === void 0 ? "width=device-width, initial-scale=1" : _config$viewport,
|
|
21
|
+
_config$themeColor = config.themeColor,
|
|
22
|
+
themeColor = _config$themeColor === void 0 ? "#ffffff" : _config$themeColor,
|
|
23
|
+
_config$manifest = config.manifest,
|
|
24
|
+
manifest = _config$manifest === void 0 ? "/manifest.json" : _config$manifest,
|
|
25
|
+
_config$icon = config.icon,
|
|
26
|
+
icon = _config$icon === void 0 ? "data:image/png;base64,iVBORw0KGgo=" : _config$icon,
|
|
27
|
+
appleTouchIcon = config.appleTouchIcon,
|
|
28
|
+
_config$appStyle = config.appStyle,
|
|
29
|
+
appStyle = _config$appStyle === void 0 ? style : _config$appStyle;
|
|
32
30
|
var _res$wappResponse = res.wappResponse,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
31
|
+
store = _res$wappResponse.store,
|
|
32
|
+
_res$wappResponse$con = _res$wappResponse.content,
|
|
33
|
+
content = _res$wappResponse$con === void 0 ? {} : _res$wappResponse$con,
|
|
34
|
+
_res$wappResponse$sta = _res$wappResponse.statusCode,
|
|
35
|
+
statusCode = _res$wappResponse$sta === void 0 ? 200 : _res$wappResponse$sta,
|
|
36
|
+
_res$wappResponse$con2 = _res$wappResponse.containerElementId,
|
|
37
|
+
containerElementId = _res$wappResponse$con2 === void 0 ? "app" : _res$wappResponse$con2,
|
|
38
|
+
_res$wappResponse$app = _res$wappResponse.appStateName,
|
|
39
|
+
appStateName = _res$wappResponse$app === void 0 ? "APP_STATE" : _res$wappResponse$app;
|
|
42
40
|
var state = store ? store.getState() : {};
|
|
43
41
|
var _content$render = content.render,
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
42
|
+
render = _content$render === void 0 ? "" : _content$render,
|
|
43
|
+
_content$title = content.title,
|
|
44
|
+
title = _content$title === void 0 ? "" : _content$title,
|
|
45
|
+
_content$description = content.description,
|
|
46
|
+
description = _content$description === void 0 ? "" : _content$description,
|
|
47
|
+
_content$author = content.author,
|
|
48
|
+
author = _content$author === void 0 ? "" : _content$author;
|
|
52
49
|
if (typeof title === "function") {
|
|
53
50
|
title = title({
|
|
54
51
|
wapp: wapp,
|
|
@@ -56,9 +53,7 @@ function html(_ref) {
|
|
|
56
53
|
res: res
|
|
57
54
|
});
|
|
58
55
|
}
|
|
59
|
-
|
|
60
56
|
title = "".concat(title ? title : statusCode === 404 ? "Not Found | " + siteName : "Untitled Page | " + siteName);
|
|
61
|
-
|
|
62
57
|
if (typeof description === "function") {
|
|
63
58
|
description = description({
|
|
64
59
|
wapp: wapp,
|
|
@@ -66,9 +61,7 @@ function html(_ref) {
|
|
|
66
61
|
res: res
|
|
67
62
|
});
|
|
68
63
|
}
|
|
69
|
-
|
|
70
64
|
description = description ? description : title && title.split ? title.split(" | ")[0] : title;
|
|
71
|
-
|
|
72
65
|
if (typeof author === "function") {
|
|
73
66
|
author = author({
|
|
74
67
|
wapp: wapp,
|
|
@@ -76,9 +69,7 @@ function html(_ref) {
|
|
|
76
69
|
res: res
|
|
77
70
|
});
|
|
78
71
|
}
|
|
79
|
-
|
|
80
72
|
author = author || siteName;
|
|
81
|
-
|
|
82
73
|
if (typeof render === "function") {
|
|
83
74
|
render = render({
|
|
84
75
|
wapp: wapp,
|
|
@@ -86,7 +77,6 @@ function html(_ref) {
|
|
|
86
77
|
res: res
|
|
87
78
|
});
|
|
88
79
|
}
|
|
89
|
-
|
|
90
80
|
wapp.styles.use(appStyle);
|
|
91
81
|
var styles = wapp.styles.getCssText();
|
|
92
82
|
var styleText = styles.map(function (style) {
|
|
@@ -94,7 +84,7 @@ function html(_ref) {
|
|
|
94
84
|
}).join("");
|
|
95
85
|
var csStyles = assets.getCsStyles();
|
|
96
86
|
var cssText = csStyles.map(function (css) {
|
|
97
|
-
return "<link rel=\"stylesheet\"
|
|
87
|
+
return "<link rel=\"stylesheet\" type=\"text/css\" href=\"".concat(css, "\" />");
|
|
98
88
|
}).join("");
|
|
99
89
|
var stateText = "<script>window[\"".concat(appStateName, "\"] = ").concat(JSON.stringify(state || {}), "</script>");
|
|
100
90
|
var scripts = assets.getScripts();
|
|
@@ -102,7 +92,6 @@ function html(_ref) {
|
|
|
102
92
|
if (script) {
|
|
103
93
|
return "<script src=\"".concat(script, "\" ></script>");
|
|
104
94
|
}
|
|
105
|
-
|
|
106
95
|
return "";
|
|
107
96
|
}).join(" ");
|
|
108
97
|
var headComponent = wapp.contents.getComponent("head");
|
package/dist/server/index.js
CHANGED
|
@@ -1,32 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.createMiddleware = createMiddleware;
|
|
9
8
|
exports["default"] = _default;
|
|
10
9
|
exports.run = run;
|
|
11
|
-
|
|
12
10
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
13
|
-
|
|
14
11
|
var _createServer = _interopRequireDefault(require("./createServer"));
|
|
15
|
-
|
|
16
12
|
var _config = _interopRequireDefault(require("./config"));
|
|
17
|
-
|
|
18
13
|
// eslint-disable-next-line import/no-anonymous-default-export
|
|
19
14
|
function _default() {
|
|
20
15
|
var p = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
21
16
|
return p.wapp || (0, _createServer["default"])((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, (0, _config["default"])(p)), p));
|
|
22
17
|
}
|
|
23
|
-
|
|
24
18
|
function createMiddleware() {
|
|
25
19
|
var p = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
26
20
|
var wapp = p.wapp || (0, _createServer["default"])(p);
|
|
27
21
|
return wapp.server.app;
|
|
28
22
|
}
|
|
29
|
-
|
|
30
23
|
var defaultConfig = {
|
|
31
24
|
config: {
|
|
32
25
|
globals: {
|
|
@@ -39,35 +32,27 @@ var defaultConfig = {
|
|
|
39
32
|
}
|
|
40
33
|
}
|
|
41
34
|
};
|
|
42
|
-
|
|
43
35
|
function run() {
|
|
44
36
|
var _p$config;
|
|
45
|
-
|
|
46
37
|
var p = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultConfig;
|
|
47
|
-
|
|
48
38
|
if (p !== null && p !== void 0 && (_p$config = p.config) !== null && _p$config !== void 0 && _p$config.globals && !p.config.globals.RUN) {
|
|
49
39
|
var _p$config2;
|
|
50
|
-
|
|
51
40
|
p.config.globals.RUN = ((_p$config2 = p.config) === null || _p$config2 === void 0 ? void 0 : _p$config2.globals.NAME) || "wapplr";
|
|
52
41
|
}
|
|
53
|
-
|
|
54
42
|
var _process = process,
|
|
55
|
-
|
|
43
|
+
env = _process.env;
|
|
56
44
|
env.NODE_ENV = process.env.NODE_ENV;
|
|
57
45
|
var wapp = (0, _createServer["default"])(p);
|
|
58
46
|
var globals = wapp.globals;
|
|
59
47
|
var DEV = globals.DEV;
|
|
60
48
|
var app = wapp.server.app;
|
|
61
49
|
wapp.server.listen();
|
|
62
|
-
|
|
63
50
|
if (typeof DEV !== "undefined" && DEV && module.hot) {
|
|
64
51
|
app.hot = module.hot;
|
|
65
52
|
module.hot.accept("./index");
|
|
66
53
|
}
|
|
67
|
-
|
|
68
54
|
return wapp;
|
|
69
55
|
}
|
|
70
|
-
|
|
71
56
|
if (typeof RUN !== "undefined" && RUN === "wapplr") {
|
|
72
57
|
run();
|
|
73
58
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
@@ -9,19 +8,13 @@ exports.createNotModifiedMiddleware = createNotModifiedMiddleware;
|
|
|
9
8
|
exports.createRenderMiddleware = createRenderMiddleware;
|
|
10
9
|
exports["default"] = createMiddlewares;
|
|
11
10
|
exports.mimeType = void 0;
|
|
12
|
-
|
|
13
11
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
14
|
-
|
|
15
12
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
16
|
-
|
|
17
13
|
var _utils = require("../common/utils");
|
|
18
|
-
|
|
19
14
|
var _middlewares = _interopRequireDefault(require("../common/middlewares"));
|
|
20
|
-
|
|
21
15
|
var _html2 = _interopRequireDefault(require("./html"));
|
|
22
|
-
|
|
23
16
|
var _excluded = ["log"];
|
|
24
|
-
var mimeType = {
|
|
17
|
+
var mimeType = exports.mimeType = {
|
|
25
18
|
".ico": "image/x-icon",
|
|
26
19
|
".html": "text/html",
|
|
27
20
|
".js": "application/javascript",
|
|
@@ -39,20 +32,17 @@ var mimeType = {
|
|
|
39
32
|
".pdf": "application/pdf",
|
|
40
33
|
".zip": "application/zip",
|
|
41
34
|
".doc": "application/msword",
|
|
35
|
+
".docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
42
36
|
".eot": "application/vnd.ms-fontobject",
|
|
43
37
|
".ttf": "application/x-font-ttf",
|
|
44
38
|
".xml": "application/xml",
|
|
45
39
|
".map": "application/json"
|
|
46
40
|
};
|
|
47
|
-
exports.mimeType = mimeType;
|
|
48
|
-
|
|
49
41
|
function createRenderMiddleware() {
|
|
50
42
|
var p = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
51
43
|
var wapp = p.wapp;
|
|
52
|
-
|
|
53
44
|
function defaultRenderHandle(req, res, next) {
|
|
54
45
|
var wappResponse = res.wappResponse;
|
|
55
|
-
|
|
56
46
|
if (wappResponse.content && !wappResponse.content.renderType) {
|
|
57
47
|
res.wappResponse.status(wappResponse.statusCode || 200);
|
|
58
48
|
var render = wapp.contents.getComponent("html");
|
|
@@ -66,20 +56,17 @@ function createRenderMiddleware() {
|
|
|
66
56
|
next();
|
|
67
57
|
}
|
|
68
58
|
}
|
|
69
|
-
|
|
70
59
|
function defaultHandle(req, res, out) {
|
|
71
60
|
if (!wapp.contents.getComponent("html")) {
|
|
72
61
|
wapp.contents.addComponent({
|
|
73
62
|
html: defaultRender
|
|
74
63
|
});
|
|
75
64
|
}
|
|
76
|
-
|
|
77
65
|
var renderMiddlewares = Object.keys(renderMiddleware.handles).map(function (key) {
|
|
78
66
|
return renderMiddleware.handles[key];
|
|
79
67
|
});
|
|
80
68
|
renderMiddlewares.sort();
|
|
81
69
|
var index = 0;
|
|
82
|
-
|
|
83
70
|
function next(err) {
|
|
84
71
|
if (renderMiddlewares[index]) {
|
|
85
72
|
var func = renderMiddlewares[index];
|
|
@@ -91,27 +78,21 @@ function createRenderMiddleware() {
|
|
|
91
78
|
index = 0;
|
|
92
79
|
return out(err);
|
|
93
80
|
}
|
|
94
|
-
|
|
95
81
|
return null;
|
|
96
82
|
}
|
|
97
|
-
|
|
98
83
|
return next();
|
|
99
84
|
}
|
|
100
|
-
|
|
101
85
|
var defaultRender = _html2["default"];
|
|
102
|
-
|
|
103
86
|
function defaultAddHandle(obj) {
|
|
104
87
|
if (typeof obj === "object" && !obj.length) {
|
|
105
88
|
Object.keys(obj).forEach(function (handleName) {
|
|
106
89
|
var handle = obj[handleName];
|
|
107
|
-
|
|
108
90
|
if (typeof handle == "function") {
|
|
109
91
|
renderMiddleware.handles[handleName] = handle;
|
|
110
92
|
}
|
|
111
93
|
});
|
|
112
94
|
}
|
|
113
95
|
}
|
|
114
|
-
|
|
115
96
|
var renderMiddlewareProperties = Object.create(Object.prototype, {
|
|
116
97
|
handle: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, _utils.defaultDescriptor), {}, {
|
|
117
98
|
value: defaultHandle
|
|
@@ -128,15 +109,12 @@ function createRenderMiddleware() {
|
|
|
128
109
|
value: defaultAddHandle
|
|
129
110
|
})
|
|
130
111
|
});
|
|
131
|
-
|
|
132
112
|
function renderMiddleware(req, res, next) {
|
|
133
113
|
if (typeof renderMiddleware.handle === "function") {
|
|
134
114
|
renderMiddleware.handle(req, res, next);
|
|
135
115
|
}
|
|
136
|
-
|
|
137
116
|
return renderMiddleware;
|
|
138
117
|
}
|
|
139
|
-
|
|
140
118
|
(0, _utils.mergeProperties)(renderMiddleware, renderMiddlewareProperties);
|
|
141
119
|
Object.defineProperty(renderMiddleware, "wapp", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, _utils.defaultDescriptor), {}, {
|
|
142
120
|
writable: false,
|
|
@@ -145,11 +123,9 @@ function createRenderMiddleware() {
|
|
|
145
123
|
}));
|
|
146
124
|
return renderMiddleware;
|
|
147
125
|
}
|
|
148
|
-
|
|
149
126
|
function createNotModifiedMiddleware() {
|
|
150
127
|
var p = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
151
128
|
var wapp = p.wapp;
|
|
152
|
-
|
|
153
129
|
function defaultIsFromCache(req, res) {
|
|
154
130
|
var ifMatch = req.headers["if-match"];
|
|
155
131
|
var ifUnmodifiedSince = req.headers["if-unmodified-since"];
|
|
@@ -162,19 +138,15 @@ function createNotModifiedMiddleware() {
|
|
|
162
138
|
var isCacheable = res.wappResponse.statusCode >= 200 && res.wappResponse.statusCode < 300 || res.wappResponse.statusCode === 304;
|
|
163
139
|
var noCache = cacheControl && /(?:^|,)\s*?no-cache\s*?(?:,|$)/.test(cacheControl);
|
|
164
140
|
var unconditional = !ifUnmodifiedSince && !ifNoneMatch;
|
|
165
|
-
|
|
166
141
|
if (unconditional || noCache || !isCacheable || !conditionalGet) {
|
|
167
142
|
return false;
|
|
168
143
|
}
|
|
169
|
-
|
|
170
144
|
var fromCache = false;
|
|
171
|
-
|
|
172
145
|
if (ifNoneMatch && ifNoneMatch !== "*" && etag) {
|
|
173
146
|
var parseTokenList = function parseTokenList(str) {
|
|
174
147
|
var end = 0;
|
|
175
148
|
var list = [];
|
|
176
149
|
var start = 0;
|
|
177
|
-
|
|
178
150
|
for (var i = 0, len = str.length; i < len; i++) {
|
|
179
151
|
switch (str.charCodeAt(i)) {
|
|
180
152
|
case 0x20:
|
|
@@ -182,54 +154,42 @@ function createNotModifiedMiddleware() {
|
|
|
182
154
|
if (start === end) {
|
|
183
155
|
start = end = i + 1;
|
|
184
156
|
}
|
|
185
|
-
|
|
186
157
|
break;
|
|
187
|
-
|
|
188
158
|
case 0x2c:
|
|
189
159
|
/* , */
|
|
190
160
|
list.push(str.substring(start, end));
|
|
191
161
|
start = end = i + 1;
|
|
192
162
|
break;
|
|
193
|
-
|
|
194
163
|
default:
|
|
195
164
|
end = i + 1;
|
|
196
165
|
break;
|
|
197
166
|
}
|
|
198
167
|
}
|
|
199
|
-
|
|
200
168
|
list.push(str.substring(start, end));
|
|
201
169
|
return list;
|
|
202
170
|
};
|
|
203
|
-
|
|
204
171
|
var matches = parseTokenList(ifNoneMatch);
|
|
205
|
-
|
|
206
172
|
for (var i = 0; i < matches.length; i++) {
|
|
207
173
|
var match = matches[i];
|
|
208
|
-
|
|
209
174
|
if (match === etag || match === "W/" + etag || "W/" + match === etag) {
|
|
210
175
|
fromCache = true;
|
|
211
176
|
break;
|
|
212
177
|
}
|
|
213
178
|
}
|
|
214
179
|
}
|
|
215
|
-
|
|
216
180
|
if (ifModifiedSince && lastModified) {
|
|
217
181
|
var parseHttpDate = function parseHttpDate(date) {
|
|
218
182
|
var timestamp = date && Date.parse(date);
|
|
219
183
|
return typeof timestamp === 'number' ? timestamp : NaN;
|
|
220
184
|
};
|
|
221
|
-
|
|
222
185
|
if (parseHttpDate(lastModified) <= parseHttpDate(ifModifiedSince)) {
|
|
223
186
|
fromCache = true;
|
|
224
187
|
}
|
|
225
188
|
}
|
|
226
|
-
|
|
227
189
|
return fromCache;
|
|
228
190
|
}
|
|
229
|
-
|
|
230
191
|
function defaultHandle(req, res, next) {
|
|
231
192
|
var fromCache = notModifiedMiddleware.isFromCache(req, res);
|
|
232
|
-
|
|
233
193
|
if (fromCache) {
|
|
234
194
|
res.wappResponse.status(304);
|
|
235
195
|
res.wapp.log(req, res);
|
|
@@ -238,7 +198,6 @@ function createNotModifiedMiddleware() {
|
|
|
238
198
|
return next();
|
|
239
199
|
}
|
|
240
200
|
}
|
|
241
|
-
|
|
242
201
|
var notModifiedMiddlewareProperties = Object.create(Object.prototype, {
|
|
243
202
|
handle: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, _utils.defaultDescriptor), {}, {
|
|
244
203
|
value: defaultHandle
|
|
@@ -247,15 +206,12 @@ function createNotModifiedMiddleware() {
|
|
|
247
206
|
value: defaultIsFromCache
|
|
248
207
|
})
|
|
249
208
|
});
|
|
250
|
-
|
|
251
209
|
function notModifiedMiddleware(req, res, next) {
|
|
252
210
|
if (typeof notModifiedMiddleware.handle === "function") {
|
|
253
211
|
notModifiedMiddleware.handle(req, res, next);
|
|
254
212
|
}
|
|
255
|
-
|
|
256
213
|
return notModifiedMiddleware;
|
|
257
214
|
}
|
|
258
|
-
|
|
259
215
|
(0, _utils.mergeProperties)(notModifiedMiddleware, notModifiedMiddlewareProperties);
|
|
260
216
|
Object.defineProperty(notModifiedMiddleware, "wapp", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, _utils.defaultDescriptor), {}, {
|
|
261
217
|
writable: false,
|
|
@@ -264,84 +220,70 @@ function createNotModifiedMiddleware() {
|
|
|
264
220
|
}));
|
|
265
221
|
return notModifiedMiddleware;
|
|
266
222
|
}
|
|
267
|
-
|
|
268
223
|
function createMiddlewares(p) {
|
|
269
224
|
var _commonMiddlewares = (0, _middlewares["default"])(p),
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
225
|
+
log = _commonMiddlewares.log,
|
|
226
|
+
rest = (0, _objectWithoutProperties2["default"])(_commonMiddlewares, _excluded);
|
|
273
227
|
var wapp = p.wapp;
|
|
274
228
|
var wappMiddleware = wapp.middleware;
|
|
275
229
|
var notModifiedMiddleware = createNotModifiedMiddleware(p);
|
|
276
230
|
wappMiddleware.addSendMiddleware({
|
|
277
231
|
headers: function headers(req, res, next) {
|
|
278
232
|
var _res$wappResponse$sen = res.wappResponse.sendData,
|
|
279
|
-
|
|
280
|
-
|
|
233
|
+
sendData = _res$wappResponse$sen === void 0 ? {} : _res$wappResponse$sen;
|
|
281
234
|
if (res.setHeader) {
|
|
282
235
|
var data = sendData.data,
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
236
|
+
_sendData$stats = sendData.stats,
|
|
237
|
+
stats = _sendData$stats === void 0 ? {} : _sendData$stats,
|
|
238
|
+
_sendData$parsedPath = sendData.parsedPath,
|
|
239
|
+
parsedPath = _sendData$parsedPath === void 0 ? {} : _sendData$parsedPath,
|
|
240
|
+
dontSetContentLength = sendData.dontSetContentLength;
|
|
288
241
|
var _html = data;
|
|
289
242
|
var _parsedPath$ext = parsedPath.ext,
|
|
290
|
-
|
|
243
|
+
ext = _parsedPath$ext === void 0 ? ".html" : _parsedPath$ext;
|
|
291
244
|
var charSet = sendData.charSet ? sendData.charSet : ext === '.html' ? 'utf-8' : '';
|
|
292
245
|
var mtime = stats.mtime;
|
|
293
|
-
|
|
294
246
|
if (!res.getHeader("Accept-Ranges")) {
|
|
295
247
|
res.setHeader("Accept-Ranges", "bytes");
|
|
296
248
|
}
|
|
297
|
-
|
|
298
249
|
if (!res.getHeader("Content-Type")) {
|
|
299
250
|
res.setHeader("Content-Type", [mimeType[ext] || "text/plain", charSet ? 'charset=' + charSet : ''].filter(function (t) {
|
|
300
251
|
return t;
|
|
301
252
|
}).join('; '));
|
|
302
253
|
}
|
|
303
|
-
|
|
304
254
|
if (!res.getHeader("Content-Length") && !dontSetContentLength) {
|
|
305
255
|
res.setHeader("Content-Length", Buffer.byteLength(_html));
|
|
306
256
|
}
|
|
307
|
-
|
|
308
257
|
if (!res.getHeader("Last-Modified") && mtime) {
|
|
309
258
|
res.setHeader("Last-Modified", mtime.toUTCString());
|
|
310
259
|
}
|
|
311
|
-
|
|
312
260
|
if (!res.getHeader("Cache-Control")) {
|
|
313
261
|
res.setHeader("Cache-Control", "public, max-age=0");
|
|
314
262
|
}
|
|
315
|
-
|
|
316
263
|
if (!res.getHeader("X-Powered-By")) {
|
|
317
264
|
res.setHeader("X-Powered-By", "Wapplr");
|
|
318
265
|
}
|
|
319
266
|
}
|
|
320
|
-
|
|
321
267
|
return next();
|
|
322
268
|
},
|
|
323
269
|
etag: function etag(req, res, next) {
|
|
324
270
|
var _res$wappResponse$sen2 = res.wappResponse.sendData,
|
|
325
|
-
|
|
326
|
-
|
|
271
|
+
sendData = _res$wappResponse$sen2 === void 0 ? {} : _res$wappResponse$sen2;
|
|
327
272
|
if (res.setHeader) {
|
|
328
273
|
var _sendData$stats2 = sendData.stats,
|
|
329
|
-
|
|
274
|
+
stats = _sendData$stats2 === void 0 ? {} : _sendData$stats2;
|
|
330
275
|
var mtime = stats.mtime,
|
|
331
|
-
|
|
332
|
-
|
|
276
|
+
size = stats.size;
|
|
333
277
|
if (!res.getHeader("ETag") && mtime && size) {
|
|
334
278
|
var etag = "W/\"".concat(size.toString(16), "-").concat(mtime.getTime().toString(16), "\"");
|
|
335
279
|
res.setHeader("ETag", etag);
|
|
336
280
|
}
|
|
337
281
|
}
|
|
338
|
-
|
|
339
282
|
return next();
|
|
340
283
|
},
|
|
341
284
|
notModified: function notModified(req, res, next) {
|
|
342
285
|
if (res.setHeader) {
|
|
343
286
|
var fromCache = notModifiedMiddleware.isFromCache(req, res);
|
|
344
|
-
|
|
345
287
|
if (fromCache) {
|
|
346
288
|
res.wappResponse.status(304);
|
|
347
289
|
res.wapp.log(req, res);
|
|
@@ -349,7 +291,6 @@ function createMiddlewares(p) {
|
|
|
349
291
|
return;
|
|
350
292
|
}
|
|
351
293
|
}
|
|
352
|
-
|
|
353
294
|
return next();
|
|
354
295
|
}
|
|
355
296
|
});
|
package/dist/server/static.js
CHANGED
|
@@ -6,16 +6,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.addCloseEventsForReadableStream = addCloseEventsForReadableStream;
|
|
7
7
|
exports["default"] = serveStatic;
|
|
8
8
|
exports.endStream = endStream;
|
|
9
|
-
|
|
10
9
|
var fs = require("fs");
|
|
11
|
-
|
|
12
10
|
var path = require("path");
|
|
13
|
-
|
|
14
11
|
function destroy(stream) {
|
|
15
12
|
if (!(stream !== null && stream !== void 0 && stream.__destroyed)) {
|
|
16
13
|
stream.destroy();
|
|
17
14
|
stream.__destroyed = true;
|
|
18
|
-
|
|
19
15
|
if (typeof stream.close === "function") {
|
|
20
16
|
stream.on("open", function onOpenClose() {
|
|
21
17
|
if (typeof this.fd === "number") {
|
|
@@ -24,68 +20,52 @@ function destroy(stream) {
|
|
|
24
20
|
});
|
|
25
21
|
}
|
|
26
22
|
}
|
|
27
|
-
|
|
28
23
|
return stream;
|
|
29
24
|
}
|
|
30
|
-
|
|
31
25
|
function onFinished(req, res, callback) {
|
|
32
26
|
function isFinishedResponse() {
|
|
33
27
|
var socket = res.socket;
|
|
34
|
-
|
|
35
28
|
if (typeof res.finished === "boolean") {
|
|
36
29
|
return Boolean(res.finished || res.writableEnded || socket && !socket.writable);
|
|
37
30
|
}
|
|
38
31
|
}
|
|
39
|
-
|
|
40
32
|
function isFinishedRequest() {
|
|
41
33
|
var socket = req.socket;
|
|
42
|
-
|
|
43
34
|
if (typeof req.complete === "boolean") {
|
|
44
35
|
return Boolean(req.upgrade || !socket || !socket.readable || req.complete && !req.readable);
|
|
45
36
|
}
|
|
46
37
|
}
|
|
47
|
-
|
|
48
38
|
function removeListener() {
|
|
49
39
|
if (req.__onFinishedInterval) {
|
|
50
40
|
clearInterval(req.__onFinishedInterval);
|
|
51
41
|
req.__onFinishedInterval = 0;
|
|
52
42
|
}
|
|
53
|
-
|
|
54
43
|
if (res.__onFinishedInterval) {
|
|
55
44
|
clearInterval(res.__onFinishedInterval);
|
|
56
45
|
res.__onFinishedInterval = 0;
|
|
57
46
|
}
|
|
58
47
|
}
|
|
59
|
-
|
|
60
48
|
function listener() {
|
|
61
49
|
var result = isFinishedRequest() || isFinishedResponse();
|
|
62
|
-
|
|
63
50
|
if (result) {
|
|
64
51
|
removeListener();
|
|
65
52
|
callback();
|
|
66
53
|
}
|
|
67
54
|
}
|
|
68
|
-
|
|
69
55
|
req.__onFinishedInterval = res.__onFinishedInterval = setInterval(listener, 100);
|
|
70
56
|
req.__onFinishedRemoveListener = res.__onFinishedRemoveListener = removeListener;
|
|
71
57
|
}
|
|
72
|
-
|
|
73
58
|
function endStream(req, res, stream) {
|
|
74
59
|
if (req.__onFinishedRemoveListener) {
|
|
75
60
|
req.__onFinishedRemoveListener();
|
|
76
|
-
|
|
77
61
|
req.__onFinishedRemoveListener = null;
|
|
78
62
|
}
|
|
79
|
-
|
|
80
63
|
if (res.__onFinishedRemoveListener) {
|
|
81
64
|
res.__onFinishedRemoveListener();
|
|
82
|
-
|
|
83
65
|
res.__onFinishedRemoveListener = null;
|
|
84
66
|
}
|
|
85
|
-
|
|
86
67
|
destroy(stream);
|
|
87
68
|
}
|
|
88
|
-
|
|
89
69
|
function addCloseEventsForReadableStream(req, res, stream) {
|
|
90
70
|
req.on("close", function () {
|
|
91
71
|
endStream(req, res, stream);
|
|
@@ -100,28 +80,22 @@ function addCloseEventsForReadableStream(req, res, stream) {
|
|
|
100
80
|
endStream(req, res, stream);
|
|
101
81
|
});
|
|
102
82
|
}
|
|
103
|
-
|
|
104
83
|
function serveStatic(publicPath) {
|
|
105
84
|
return function staticMiddleware(req, res, next) {
|
|
106
85
|
var parsedUrl = {
|
|
107
86
|
pathname: req.wappRequest.path
|
|
108
87
|
};
|
|
109
|
-
|
|
110
88
|
try {
|
|
111
89
|
parsedUrl = new URL(req.wappRequest.url);
|
|
112
90
|
} catch (e) {}
|
|
113
|
-
|
|
114
91
|
var sanitizePath = path.normalize(parsedUrl.pathname).replace(/^(\.\.[\/\\])+/, "");
|
|
115
92
|
var pathname = path.join(publicPath, sanitizePath);
|
|
116
93
|
var parsedSanitizePath = path.parse(pathname);
|
|
117
94
|
var ext = parsedSanitizePath.ext;
|
|
118
|
-
|
|
119
95
|
if (!fs.existsSync(pathname) || !ext) {
|
|
120
96
|
return next();
|
|
121
97
|
}
|
|
122
|
-
|
|
123
98
|
var stream;
|
|
124
|
-
|
|
125
99
|
try {
|
|
126
100
|
var data = fs.readFileSync(pathname);
|
|
127
101
|
var stats = fs.statSync(pathname);
|