express-ext 0.5.2 → 0.5.4

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.
@@ -1,21 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var health_1 = require("./health");
1
+ "use strict"
2
+ Object.defineProperty(exports, "__esModule", { value: true })
3
+ var health_1 = require("./health")
4
4
  var HealthController = (function () {
5
5
  function HealthController(checkers) {
6
- this.checkers = checkers;
7
- this.check = this.check.bind(this);
6
+ this.checkers = checkers
7
+ this.check = this.check.bind(this)
8
8
  }
9
9
  HealthController.prototype.check = function (req, res) {
10
10
  health_1.health(this.checkers).then(function (r) {
11
- if (r.status === 'UP') {
12
- return res.status(200).json(r).end();
11
+ if (r.status === "UP") {
12
+ res.status(200).json(r).end()
13
+ } else {
14
+ res.status(500).json(r).end()
13
15
  }
14
- else {
15
- return res.status(500).json(r).end();
16
- }
17
- });
18
- };
19
- return HealthController;
20
- }());
21
- exports.HealthController = HealthController;
16
+ })
17
+ }
18
+ return HealthController
19
+ })()
20
+ exports.HealthController = HealthController
@@ -1,5 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict"
2
+ Object.defineProperty(exports, "__esModule", { value: true })
3
3
  exports.map = {
4
4
  TRACE: -2,
5
5
  DEBUG: -1,
@@ -7,84 +7,83 @@ exports.map = {
7
7
  WARN: 1,
8
8
  ERROR: 2,
9
9
  PANIC: 3,
10
- FATAL: 4
11
- };
10
+ FATAL: 4,
11
+ }
12
12
  var LogController = (function () {
13
13
  function LogController(logger, updateL, mp) {
14
- this.logger = logger;
15
- this.map = (mp ? mp : exports.map);
16
- this.update = updateL ? updateL : updateLog;
17
- this.config = this.config.bind(this);
14
+ this.logger = logger
15
+ this.map = mp ? mp : exports.map
16
+ this.update = updateL ? updateL : updateLog
17
+ this.config = this.config.bind(this)
18
18
  }
19
19
  LogController.prototype.config = function (req, res) {
20
- var obj = req.body;
21
- if (!obj || obj === '') {
22
- return res.status(400).end('The request body cannot be empty');
23
- }
20
+ var obj = req.body
24
21
  if (!this.logger) {
25
- return res.status(503).end('Logger is not available');
22
+ res.status(503).end("Logger is not available")
23
+ return
26
24
  }
27
- if (typeof obj.level === 'string' && obj.level.length > 0) {
25
+ if (typeof obj.level === "string" && obj.level.length > 0) {
28
26
  if (!this.map) {
29
- return res.status(503).end('Map is not available');
27
+ res.status(503).end("Map is not available")
28
+ return
30
29
  }
31
30
  }
32
- var changed = this.update(this.logger, obj, this.map);
31
+ var changed = this.update(this.logger, obj, this.map)
33
32
  if (changed) {
34
- return res.status(200).json(true).end();
35
- }
36
- else {
37
- return res.status(204).json(false).end();
33
+ res.status(200).json(true).end()
34
+ } else {
35
+ res.status(204).json(false).end()
38
36
  }
39
- };
40
- return LogController;
41
- }());
42
- exports.LogController = LogController;
37
+ }
38
+ return LogController
39
+ })()
40
+ exports.LogController = LogController
43
41
  function updateLog(logger, obj, mp) {
44
- var changed = false;
45
- if (typeof obj.level === 'string' && obj.level.length > 0) {
46
- var lv = mp[obj.level.toUpperCase()];
42
+ var changed = false
43
+ if (typeof obj.level === "string" && obj.level.length > 0) {
44
+ var lv = mp[obj.level.toUpperCase()]
47
45
  if (lv !== undefined) {
48
- logger.level = lv;
49
- changed = true;
46
+ logger.level = lv
47
+ changed = true
50
48
  }
51
49
  }
52
50
  if (obj.map) {
53
- if (typeof obj.map.level === 'string' && obj.map.level.length > 0) {
54
- logger.map.level = obj.map.level;
55
- changed = true;
51
+ if (typeof obj.map.level === "string" && obj.map.level.length > 0) {
52
+ logger.map.level = obj.map.level
53
+ changed = true
56
54
  }
57
- if (typeof obj.map.time === 'string' && obj.map.time.length > 0) {
58
- logger.map.time = obj.map.time;
59
- changed = true;
55
+ if (typeof obj.map.time === "string" && obj.map.time.length > 0) {
56
+ logger.map.time = obj.map.time
57
+ changed = true
60
58
  }
61
- if (typeof obj.map.msg === 'string' && obj.map.msg.length > 0) {
62
- logger.map.msg = obj.map.msg;
63
- changed = true;
59
+ if (typeof obj.map.msg === "string" && obj.map.msg.length > 0) {
60
+ logger.map.msg = obj.map.msg
61
+ changed = true
64
62
  }
65
63
  }
66
- if (obj.constants !== undefined && typeof obj.constants === 'object') {
67
- var ks = Object.keys(obj.constants);
64
+ if (obj.constants !== undefined && typeof obj.constants === "object") {
65
+ var ks = Object.keys(obj.constants)
68
66
  if (ks.length > 0) {
69
- logger.constants = obj.constants;
70
- }
71
- else {
72
- logger.constants = undefined;
67
+ logger.constants = obj.constants
68
+ } else {
69
+ logger.constants = undefined
73
70
  }
74
- changed = true;
71
+ changed = true
75
72
  }
76
73
  if (obj.name) {
77
- if (typeof obj.name.trace === 'string'
78
- && typeof obj.name.debug === 'string'
79
- && typeof obj.name.info === 'string'
80
- && typeof obj.name.warn === 'string'
81
- && typeof obj.name.error === 'string'
82
- && typeof obj.name.panic === 'string'
83
- && typeof obj.name.fatal === 'string') {
84
- logger.name = obj.name;
85
- changed = true;
74
+ if (
75
+ typeof obj.name.trace === "string" &&
76
+ typeof obj.name.debug === "string" &&
77
+ typeof obj.name.info === "string" &&
78
+ typeof obj.name.warn === "string" &&
79
+ typeof obj.name.error === "string" &&
80
+ typeof obj.name.panic === "string" &&
81
+ typeof obj.name.fatal === "string"
82
+ ) {
83
+ logger.name = obj.name
84
+ changed = true
86
85
  }
87
86
  }
88
- return changed;
87
+ return changed
89
88
  }
90
- exports.updateLog = updateLog;
89
+ exports.updateLog = updateLog
package/lib/index.js CHANGED
@@ -53,10 +53,12 @@ var SavedController = (function () {
53
53
  var userId = res.locals[this.userId]
54
54
  var id = req.params[this.id]
55
55
  if (!id || id.length === 0) {
56
- return res.status(400).end("'" + this.id + "' cannot be empty")
56
+ res.status(400).end("'" + this.id + "' cannot be empty")
57
+ return
57
58
  }
58
59
  if (!userId || userId.length === 0) {
59
- return res.status(400).end("'" + this.userId + "' cannot be empty")
60
+ res.status(400).end("'" + this.userId + "' cannot be empty")
61
+ return
60
62
  }
61
63
  this.savedService
62
64
  .save(userId, id)
@@ -73,10 +75,12 @@ var SavedController = (function () {
73
75
  var userId = res.locals[this.userId]
74
76
  var id = req.params[this.id]
75
77
  if (!id || id.length === 0) {
76
- return res.status(400).end("'" + this.id + "' cannot be empty")
78
+ res.status(400).end("'" + this.id + "' cannot be empty")
79
+ return
77
80
  }
78
81
  if (!userId || userId.length === 0) {
79
- return res.status(400).end("'" + this.userId + "' cannot be empty")
82
+ res.status(400).end("'" + this.userId + "' cannot be empty")
83
+ return
80
84
  }
81
85
  this.savedService
82
86
  .remove(userId, id)
@@ -105,10 +109,12 @@ var FollowController = (function () {
105
109
  var userId = res.locals[this.userId]
106
110
  var id = req.params[this.id]
107
111
  if (!id || id.length === 0) {
108
- return res.status(400).end("'" + this.id + "' cannot be empty")
112
+ res.status(400).end("'" + this.id + "' cannot be empty")
113
+ return
109
114
  }
110
115
  if (!userId || userId.length === 0) {
111
- return res.status(400).end("'" + this.userId + "' cannot be empty")
116
+ res.status(400).end("'" + this.userId + "' cannot be empty")
117
+ return
112
118
  }
113
119
  this.service
114
120
  .follow(userId, id)
@@ -125,10 +131,12 @@ var FollowController = (function () {
125
131
  var userId = res.locals[this.userId]
126
132
  var id = req.params[this.id]
127
133
  if (!id || id.length === 0) {
128
- return res.status(400).end("'" + this.id + "' cannot be empty")
134
+ res.status(400).end("'" + this.id + "' cannot be empty")
135
+ return
129
136
  }
130
137
  if (!userId || userId.length === 0) {
131
- return res.status(400).end("'" + this.userId + "' cannot be empty")
138
+ res.status(400).end("'" + this.userId + "' cannot be empty")
139
+ return
132
140
  }
133
141
  this.service
134
142
  .unfollow(userId, id)
@@ -174,7 +182,7 @@ var UserReactionController = (function () {
174
182
  this.service
175
183
  .react(id, author, reaction)
176
184
  .then(function (count) {
177
- return res.status(200).json(count).end()
185
+ res.status(200).json(count).end()
178
186
  })
179
187
  .catch(function (err) {
180
188
  return http_1.handleError(err, res, _this.log)
@@ -200,7 +208,7 @@ var UserReactionController = (function () {
200
208
  this.service
201
209
  .unreact(id, author, reaction)
202
210
  .then(function (count) {
203
- return res.status(200).json(count).end()
211
+ res.status(200).json(count).end()
204
212
  })
205
213
  .catch(function (err) {
206
214
  return http_1.handleError(err, res, _this.log)
@@ -221,7 +229,7 @@ var UserReactionController = (function () {
221
229
  this.service
222
230
  .checkReaction(id, author)
223
231
  .then(function (count) {
224
- return res.status(200).json(count).end()
232
+ res.status(200).json(count).end()
225
233
  })
226
234
  .catch(function (err) {
227
235
  return http_1.handleError(err, res, _this.log)
package/lib/log.js CHANGED
@@ -1,247 +1,242 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var stream_1 = require("stream");
4
- var resources_1 = require("./resources");
1
+ "use strict"
2
+ Object.defineProperty(exports, "__esModule", { value: true })
3
+ var stream_1 = require("stream")
4
+ var resources_1 = require("./resources")
5
5
  function createConfig(c) {
6
6
  if (!c) {
7
- return { skips: [], duration: 'duration', request: '', response: '', status: '', size: '' };
7
+ return { skips: [], duration: "duration", request: "", response: "", status: "", size: "" }
8
8
  }
9
9
  var l = {
10
10
  log: c.log,
11
11
  separate: c.separate,
12
- skips: c.skips ? c.skips.split(',') : [],
13
- duration: c.duration ? c.duration : 'duration',
14
- request: c.request ? c.request : '',
15
- response: c.response ? c.response : '',
16
- status: c.status ? c.status : '',
17
- size: c.size ? c.size : ''
18
- };
19
- return l;
12
+ skips: c.skips ? c.skips.split(",") : [],
13
+ duration: c.duration ? c.duration : "duration",
14
+ request: c.request ? c.request : "",
15
+ response: c.response ? c.response : "",
16
+ status: c.status ? c.status : "",
17
+ size: c.size ? c.size : "",
18
+ }
19
+ return l
20
20
  }
21
- exports.createConfig = createConfig;
21
+ exports.createConfig = createConfig
22
22
  function skip(skips, url) {
23
23
  if (skips.length === 0) {
24
- return false;
24
+ return false
25
25
  }
26
- var u = removeUrlParams(url);
26
+ var u = removeUrlParams(url)
27
27
  for (var _i = 0, skips_1 = skips; _i < skips_1.length; _i++) {
28
- var s = skips_1[_i];
28
+ var s = skips_1[_i]
29
29
  if (u.endsWith(s)) {
30
- return true;
30
+ return true
31
31
  }
32
32
  }
33
- return false;
33
+ return false
34
34
  }
35
- exports.skip = skip;
35
+ exports.skip = skip
36
36
  function removeUrlParams(url) {
37
- var startParams = url.indexOf('?');
38
- return startParams !== -1 ? url.substring(0, startParams) : url;
37
+ var startParams = url.indexOf("?")
38
+ return startParams !== -1 ? url.substring(0, startParams) : url
39
39
  }
40
- exports.removeUrlParams = removeUrlParams;
41
- var o = 'OPTIONS';
40
+ exports.removeUrlParams = removeUrlParams
41
+ var o = "OPTIONS"
42
42
  var MiddlewareLogger = (function () {
43
43
  function MiddlewareLogger(write, conf, build) {
44
- this.write = write;
45
- this.build = build;
46
- this.log = this.log.bind(this);
47
- this.conf = createConfig(conf);
44
+ this.write = write
45
+ this.build = build
46
+ this.log = this.log.bind(this)
47
+ this.conf = createConfig(conf)
48
48
  }
49
49
  MiddlewareLogger.prototype.log = function (req, res, next) {
50
- var _this = this;
51
- var m = req.method;
50
+ var _this = this
51
+ var m = req.method
52
52
  if (m !== o && this.conf.log && !skip(this.conf.skips, req.originalUrl)) {
53
- var start_1 = process.hrtime();
54
- var x_1 = this.conf.request;
55
- var r_1 = false;
56
- if (m !== 'GET' && m !== 'DELETE') {
57
- r_1 = true;
53
+ var start_1 = process.hrtime()
54
+ var x_1 = this.conf.request
55
+ var r_1 = false
56
+ if (m !== "GET" && m !== "DELETE") {
57
+ r_1 = true
58
58
  }
59
- var msg_1 = m + " " + req.originalUrl;
59
+ var msg_1 = m + " " + req.originalUrl
60
60
  if (this.conf.separate && r_1) {
61
61
  if (this.conf.request.length > 0) {
62
- var op = {};
63
- op[x_1] = JSON.stringify(req.body);
62
+ var op = {}
63
+ op[x_1] = JSON.stringify(req.body)
64
64
  if (this.build) {
65
- var op2 = this.build(req, op);
66
- this.write(msg_1, op2);
67
- }
68
- else {
69
- this.write(msg_1, op);
65
+ var op2 = this.build(req, op)
66
+ this.write(msg_1, op2)
67
+ } else {
68
+ this.write(msg_1, op)
70
69
  }
71
70
  }
72
71
  }
73
- var chunks_1 = [];
74
- mapResponseBody(res, chunks_1);
75
- res.on('finish', function () {
76
- var duration = getDurationInMilliseconds(start_1);
77
- var op = {};
72
+ var chunks_1 = []
73
+ mapResponseBody(res, chunks_1)
74
+ res.on("finish", function () {
75
+ var duration = getDurationInMilliseconds(start_1)
76
+ var op = {}
78
77
  if (r_1 && !_this.conf.separate && _this.conf.request.length > 0) {
79
- op[x_1] = JSON.stringify(req.body);
78
+ op[x_1] = JSON.stringify(req.body)
80
79
  }
81
80
  if (_this.conf.response.length > 0) {
82
- var rsBody = Buffer.concat(chunks_1).toString(resources_1.resources.encoding);
83
- op[_this.conf.response] = rsBody;
81
+ var rsBody = Buffer.concat(chunks_1).toString(resources_1.resources.encoding)
82
+ op[_this.conf.response] = rsBody
84
83
  }
85
84
  if (_this.conf.status.length > 0) {
86
- op[_this.conf.status] = res.statusCode;
85
+ op[_this.conf.status] = res.statusCode
87
86
  }
88
87
  if (_this.conf.size.length > 0) {
89
- if ('_contentLength' in res) {
90
- op[_this.conf.size] = res['_contentLength'];
91
- }
92
- else if (res.hasHeader('content-length')) {
93
- var l = res.getHeader('content-length');
94
- if (typeof l === 'number' || typeof l === 'string') {
95
- op[_this.conf.size] = l;
88
+ if ("_contentLength" in res) {
89
+ op[_this.conf.size] = res["_contentLength"]
90
+ } else if (res.hasHeader("content-length")) {
91
+ var l = res.getHeader("content-length")
92
+ if (typeof l === "number" || typeof l === "string") {
93
+ op[_this.conf.size] = l
96
94
  }
97
95
  }
98
96
  }
99
- op[_this.conf.duration] = duration;
97
+ op[_this.conf.duration] = duration
100
98
  if (_this.build) {
101
- var op2 = _this.build(req, op);
102
- _this.write(msg_1, op2);
103
- }
104
- else {
105
- _this.write(msg_1, op);
99
+ var op2 = _this.build(req, op)
100
+ _this.write(msg_1, op2)
101
+ } else {
102
+ _this.write(msg_1, op)
106
103
  }
107
- });
108
- next();
104
+ })
105
+ next()
106
+ } else {
107
+ next()
109
108
  }
110
- else {
111
- next();
112
- }
113
- };
114
- return MiddlewareLogger;
115
- }());
116
- exports.MiddlewareLogger = MiddlewareLogger;
109
+ }
110
+ return MiddlewareLogger
111
+ })()
112
+ exports.MiddlewareLogger = MiddlewareLogger
117
113
  var mapResponseBody = function (res, chunks) {
118
- var defaultWrite = res.write.bind(res);
119
- var defaultEnd = res.end.bind(res);
120
- var ps = new stream_1.PassThrough();
121
- ps.on('data', function (data) { return chunks.push(data); });
114
+ var defaultWrite = res.write.bind(res)
115
+ var defaultEnd = res.end.bind(res)
116
+ var ps = new stream_1.PassThrough()
117
+ ps.on("data", function (data) {
118
+ return chunks.push(data)
119
+ })
122
120
  res.write = function () {
123
- var _a;
124
- var args = [];
121
+ var _a
122
+ var args = []
125
123
  for (var _i = 0; _i < arguments.length; _i++) {
126
- args[_i] = arguments[_i];
124
+ args[_i] = arguments[_i]
127
125
  }
128
- (_a = ps).write.apply(_a, args);
129
- defaultWrite.apply(void 0, args);
130
- };
126
+ ;(_a = ps).write.apply(_a, args)
127
+ defaultWrite.apply(void 0, args)
128
+ }
131
129
  res.end = function () {
132
- var args = [];
130
+ var args = []
133
131
  for (var _i = 0; _i < arguments.length; _i++) {
134
- args[_i] = arguments[_i];
132
+ args[_i] = arguments[_i]
135
133
  }
136
- ps.end.apply(ps, args);
137
- defaultEnd.apply(void 0, args);
138
- };
139
- };
140
- var NS_PER_SEC = 1e9;
141
- var NS_TO_MS = 1e6;
134
+ ps.end.apply(ps, args)
135
+ defaultEnd.apply(void 0, args)
136
+ }
137
+ }
138
+ var NS_PER_SEC = 1e9
139
+ var NS_TO_MS = 1e6
142
140
  var getDurationInMilliseconds = function (start) {
143
- var diff = process.hrtime(start);
144
- return (diff[0] * NS_PER_SEC + diff[1]) / NS_TO_MS;
145
- };
141
+ var diff = process.hrtime(start)
142
+ return (diff[0] * NS_PER_SEC + diff[1]) / NS_TO_MS
143
+ }
146
144
  var MiddlewareController = (function () {
147
145
  function MiddlewareController(logger) {
148
- this.logger = logger;
149
- this.config = this.config.bind(this);
146
+ this.logger = logger
147
+ this.config = this.config.bind(this)
150
148
  }
151
149
  MiddlewareController.prototype.config = function (req, res) {
152
- var obj = req.body;
153
- if (!obj || obj === '') {
154
- return res.status(400).end('The request body cannot be empty');
155
- }
150
+ var obj = req.body
156
151
  if (!this.logger) {
157
- return res.status(503).end('Logger is not available');
152
+ res.status(503).end("Logger is not available")
153
+ return
158
154
  }
159
- var changed = false;
155
+ var changed = false
160
156
  if (obj.log !== undefined) {
161
- this.logger.conf.log = obj.log;
162
- changed = true;
157
+ this.logger.conf.log = obj.log
158
+ changed = true
163
159
  }
164
160
  if (obj.separate !== undefined) {
165
- this.logger.conf.separate = obj.separate;
166
- changed = true;
161
+ this.logger.conf.separate = obj.separate
162
+ changed = true
167
163
  }
168
164
  if (Array.isArray(obj.skips)) {
169
165
  if (isValidSkips(obj.skips)) {
170
- this.logger.conf.skips = obj.skips;
171
- changed = true;
166
+ this.logger.conf.skips = obj.skips
167
+ changed = true
172
168
  }
173
169
  }
174
- if (typeof obj.duration === 'string' && obj.duration.length > 0) {
175
- this.logger.conf.duration = obj.duration;
176
- changed = true;
170
+ if (typeof obj.duration === "string" && obj.duration.length > 0) {
171
+ this.logger.conf.duration = obj.duration
172
+ changed = true
177
173
  }
178
- if (typeof obj.request === 'string') {
179
- this.logger.conf.request = obj.request;
180
- changed = true;
174
+ if (typeof obj.request === "string") {
175
+ this.logger.conf.request = obj.request
176
+ changed = true
181
177
  }
182
- if (typeof obj.response === 'string') {
183
- this.logger.conf.response = obj.response;
184
- changed = true;
178
+ if (typeof obj.response === "string") {
179
+ this.logger.conf.response = obj.response
180
+ changed = true
185
181
  }
186
- if (typeof obj.status === 'string') {
187
- this.logger.conf.status = obj.status;
188
- changed = true;
182
+ if (typeof obj.status === "string") {
183
+ this.logger.conf.status = obj.status
184
+ changed = true
189
185
  }
190
- if (typeof obj.size === 'string') {
191
- this.logger.conf.size = obj.size;
192
- changed = true;
186
+ if (typeof obj.size === "string") {
187
+ this.logger.conf.size = obj.size
188
+ changed = true
193
189
  }
194
190
  if (changed) {
195
- return res.status(200).json(true).end();
196
- }
197
- else {
198
- return res.status(204).json(false).end();
191
+ res.status(200).json(true).end()
192
+ } else {
193
+ res.status(204).json(false).end()
199
194
  }
200
- };
201
- return MiddlewareController;
202
- }());
203
- exports.MiddlewareController = MiddlewareController;
195
+ }
196
+ return MiddlewareController
197
+ })()
198
+ exports.MiddlewareController = MiddlewareController
204
199
  function isValidSkips(s) {
205
200
  for (var _i = 0, s_1 = s; _i < s_1.length; _i++) {
206
- var x = s_1[_i];
207
- if (!(typeof x === 'string')) {
208
- return false;
201
+ var x = s_1[_i]
202
+ if (!(typeof x === "string")) {
203
+ return false
209
204
  }
210
205
  }
211
- return true;
206
+ return true
212
207
  }
213
- exports.isValidSkips = isValidSkips;
208
+ exports.isValidSkips = isValidSkips
214
209
  function mask(s, start, end, replace) {
215
210
  if (start < 0) {
216
- start = 0;
211
+ start = 0
217
212
  }
218
213
  if (end < 0) {
219
- end = 0;
214
+ end = 0
220
215
  }
221
- var t = start + end;
216
+ var t = start + end
222
217
  if (t >= s.length) {
223
- return replace.repeat(s.length);
218
+ return replace.repeat(s.length)
224
219
  }
225
- return s.substr(0, start) + replace.repeat(s.length - t) + s.substr(s.length - end);
220
+ return s.substr(0, start) + replace.repeat(s.length - t) + s.substr(s.length - end)
226
221
  }
227
- exports.mask = mask;
222
+ exports.mask = mask
228
223
  function margin(s, start, end, replace) {
229
224
  if (start >= end) {
230
- return '';
225
+ return ""
231
226
  }
232
227
  if (start < 0) {
233
- start = 0;
228
+ start = 0
234
229
  }
235
230
  if (end < 0) {
236
- end = 0;
231
+ end = 0
237
232
  }
238
233
  if (start >= s.length) {
239
- return replace.repeat(s.length);
234
+ return replace.repeat(s.length)
240
235
  }
241
236
  if (end >= s.length) {
242
- return replace.repeat(start) + s.substr(start);
237
+ return replace.repeat(start) + s.substr(start)
243
238
  }
244
- return replace.repeat(start) + s.substr(start, end - start) + replace.repeat(s.length - end);
239
+ return replace.repeat(start) + s.substr(start, end - start) + replace.repeat(s.length - end)
245
240
  }
246
- exports.margin = margin;
247
- exports.maskMargin = margin;
241
+ exports.margin = margin
242
+ exports.maskMargin = margin
package/lib/search.js CHANGED
@@ -3,6 +3,114 @@ Object.defineProperty(exports, "__esModule", { value: true })
3
3
  var http_1 = require("./http")
4
4
  var resources_1 = require("./resources")
5
5
  var et = ""
6
+ function getPage(req, filter) {
7
+ if (filter) {
8
+ var v0 = filter[resources_1.resources.page]
9
+ if (v0 == undefined) {
10
+ var field_1 = req.query[resources_1.resources.page]
11
+ var v_1 = field_1 ? field_1.toString() : undefined
12
+ if (!v_1 || v_1.length === 0) {
13
+ filter[resources_1.resources.page] = 1
14
+ return 1
15
+ }
16
+ if (isNaN(v_1)) {
17
+ filter[resources_1.resources.page] = 1
18
+ return 1
19
+ } else {
20
+ var n_1 = parseFloat(v_1)
21
+ if (n_1 < 1) {
22
+ n_1 = 1
23
+ }
24
+ filter[resources_1.resources.page] = n_1
25
+ return n_1
26
+ }
27
+ } else if (typeof v0 === "number") {
28
+ if (v0 > 0) {
29
+ return v0
30
+ } else {
31
+ filter[resources_1.resources.page] = 1
32
+ return 1
33
+ }
34
+ }
35
+ }
36
+ var field = req.query[resources_1.resources.page]
37
+ var v = field ? field.toString() : undefined
38
+ if (!v || v.length === 0) {
39
+ if (filter) {
40
+ filter[resources_1.resources.page] = 1
41
+ }
42
+ return 1
43
+ }
44
+ if (isNaN(v)) {
45
+ if (filter) {
46
+ filter[resources_1.resources.page] = 1
47
+ }
48
+ return 1
49
+ }
50
+ var n = parseFloat(v)
51
+ if (n < 1) {
52
+ n = 1
53
+ }
54
+ if (filter) {
55
+ filter[resources_1.resources.page] = n
56
+ }
57
+ return n
58
+ }
59
+ exports.getPage = getPage
60
+ function getLimit(req, filter) {
61
+ if (filter) {
62
+ var v0 = filter[resources_1.resources.limit]
63
+ if (v0 == undefined) {
64
+ var field = req.query[resources_1.resources.limit]
65
+ var v_2 = field ? field.toString() : undefined
66
+ if (!v_2 || v_2.length === 0) {
67
+ filter[resources_1.resources.limit] = resources_1.resources.defaultLimit
68
+ return resources_1.resources.defaultLimit
69
+ }
70
+ if (isNaN(v_2)) {
71
+ filter[resources_1.resources.limit] = resources_1.resources.defaultLimit
72
+ return 1
73
+ } else {
74
+ var n_2 = parseFloat(v_2)
75
+ if (n_2 < 1) {
76
+ n_2 = resources_1.resources.defaultLimit
77
+ }
78
+ filter[resources_1.resources.limit] = n_2
79
+ return n_2
80
+ }
81
+ } else if (typeof v0 === "number") {
82
+ if (v0 > 0) {
83
+ return v0
84
+ } else {
85
+ filter[resources_1.resources.limit] = resources_1.resources.defaultLimit
86
+ return resources_1.resources.defaultLimit
87
+ }
88
+ }
89
+ }
90
+ var fieldxxx = req.query[resources_1.resources.limit]
91
+ var v = fieldxxx ? fieldxxx.toString() : undefined
92
+ if (!v || v.length === 0) {
93
+ if (filter) {
94
+ filter[resources_1.resources.limit] = resources_1.resources.defaultLimit
95
+ }
96
+ return resources_1.resources.defaultLimit
97
+ }
98
+ if (isNaN(v)) {
99
+ if (filter) {
100
+ filter[resources_1.resources.limit] = resources_1.resources.defaultLimit
101
+ }
102
+ return resources_1.resources.defaultLimit
103
+ }
104
+ var n = parseFloat(v)
105
+ if (n < 1) {
106
+ n = resources_1.resources.defaultLimit
107
+ }
108
+ if (filter) {
109
+ filter[resources_1.resources.limit] = n
110
+ }
111
+ return n
112
+ }
113
+ exports.getLimit = getLimit
6
114
  function queryLimit(req) {
7
115
  return http_1.queryNumber(req, resources_1.resources.limit, resources_1.resources.defaultLimit)
8
116
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "express-ext",
3
- "version": "0.5.2",
3
+ "version": "0.5.4",
4
4
  "description": "express-ext",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./src/index.ts",
@@ -8,9 +8,9 @@ export class HealthController {
8
8
  check(req: Request, res: Response) {
9
9
  health(this.checkers).then((r) => {
10
10
  if (r.status === "UP") {
11
- return res.status(200).json(r).end()
11
+ res.status(200).json(r).end()
12
12
  } else {
13
- return res.status(500).json(r).end()
13
+ res.status(500).json(r).end()
14
14
  }
15
15
  })
16
16
  }
@@ -69,22 +69,21 @@ export class LogController {
69
69
  }
70
70
  config(req: Request, res: Response) {
71
71
  const obj: LogConfig = req.body
72
- if (!obj || (obj as any) === "") {
73
- return res.status(400).end("The request body cannot be empty")
74
- }
75
72
  if (!this.logger) {
76
- return res.status(503).end("Logger is not available")
73
+ res.status(503).end("Logger is not available")
74
+ return
77
75
  }
78
76
  if (typeof obj.level === "string" && obj.level.length > 0) {
79
77
  if (!this.map) {
80
- return res.status(503).end("Map is not available")
78
+ res.status(503).end("Map is not available")
79
+ return
81
80
  }
82
81
  }
83
82
  const changed = this.update(this.logger, obj, this.map)
84
83
  if (changed) {
85
- return res.status(200).json(true).end()
84
+ res.status(200).json(true).end()
86
85
  } else {
87
- return res.status(204).json(false).end()
86
+ res.status(204).json(false).end()
88
87
  }
89
88
  }
90
89
  }
package/src/access.ts CHANGED
@@ -1,6 +1,4 @@
1
- import { NextFunction } from "express"
2
- import { ParamsDictionary, Request, Response } from "express-serve-static-core"
3
- import { ParsedQs } from "qs"
1
+ import { NextFunction, Request, Response } from "express"
4
2
 
5
3
  export interface AccessConfig {
6
4
  origin?: string | string[]
@@ -11,10 +9,10 @@ export interface AccessConfig {
11
9
  export type AccessControlAllowConfig = AccessConfig
12
10
  export function allow(
13
11
  access: AccessConfig,
14
- ): (req: Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>, res: Response<any, Record<string, any>, number>, next: NextFunction) => void {
12
+ ): (req: Request, res: Response, next: NextFunction) => void {
15
13
  const ao = access.origin
16
14
  if (typeof ao === "string") {
17
- return (req: Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>, res: Response<any, Record<string, any>, number>, next: NextFunction) => {
15
+ return (req: Request, res: Response, next: NextFunction) => {
18
16
  res.header("Access-Control-Allow-Origin", access.origin)
19
17
  res.header("Access-Control-Allow-Credentials", access.credentials)
20
18
  res.header("Access-Control-Allow-Methods", access.methods)
@@ -22,7 +20,7 @@ export function allow(
22
20
  next()
23
21
  }
24
22
  } else if (Array.isArray(ao) && ao.length > 0) {
25
- return (req: Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>, res: Response<any, Record<string, any>, number>, next: NextFunction) => {
23
+ return (req: Request, res: Response, next: NextFunction) => {
26
24
  const origin = req.headers.origin
27
25
  if (origin) {
28
26
  if (ao.includes(origin)) {
@@ -35,7 +33,7 @@ export function allow(
35
33
  next()
36
34
  }
37
35
  }
38
- return (req: Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>, res: Response<any, Record<string, any>, number>, next: NextFunction) => {
36
+ return (req: Request, res: Response, next: NextFunction) => {
39
37
  res.header("Access-Control-Allow-Credentials", access.credentials)
40
38
  res.header("Access-Control-Allow-Methods", access.methods)
41
39
  res.setHeader("Access-Control-Allow-Headers", access.headers)
package/src/index.ts CHANGED
@@ -20,7 +20,7 @@ export {
20
20
  Controller as Handler,
21
21
  LoadSearchController as LoadSearchHandler,
22
22
  Service as LowCodeService,
23
- SearchController as SearchHandler,
23
+ SearchController as SearchHandler
24
24
  }
25
25
 
26
26
  export * from "./access"
@@ -59,10 +59,12 @@ export class SavedController {
59
59
  const userId: string = res.locals[this.userId]
60
60
  const id = req.params[this.id]
61
61
  if (!id || id.length === 0) {
62
- return res.status(400).end(`'${this.id}' cannot be empty`)
62
+ res.status(400).end(`'${this.id}' cannot be empty`)
63
+ return
63
64
  }
64
65
  if (!userId || userId.length === 0) {
65
- return res.status(400).end(`'${this.userId}' cannot be empty`)
66
+ res.status(400).end(`'${this.userId}' cannot be empty`)
67
+ return
66
68
  }
67
69
  this.savedService
68
70
  .save(userId, id)
@@ -76,10 +78,12 @@ export class SavedController {
76
78
  const userId: string = res.locals[this.userId]
77
79
  const id = req.params[this.id]
78
80
  if (!id || id.length === 0) {
79
- return res.status(400).end(`'${this.id}' cannot be empty`)
81
+ res.status(400).end(`'${this.id}' cannot be empty`)
82
+ return
80
83
  }
81
84
  if (!userId || userId.length === 0) {
82
- return res.status(400).end(`'${this.userId}' cannot be empty`)
85
+ res.status(400).end(`'${this.userId}' cannot be empty`)
86
+ return
83
87
  }
84
88
  this.savedService
85
89
  .remove(userId, id)
@@ -108,10 +112,12 @@ export class FollowController {
108
112
  const userId: string = res.locals[this.userId]
109
113
  const id = req.params[this.id]
110
114
  if (!id || id.length === 0) {
111
- return res.status(400).end(`'${this.id}' cannot be empty`)
115
+ res.status(400).end(`'${this.id}' cannot be empty`)
116
+ return
112
117
  }
113
118
  if (!userId || userId.length === 0) {
114
- return res.status(400).end(`'${this.userId}' cannot be empty`)
119
+ res.status(400).end(`'${this.userId}' cannot be empty`)
120
+ return
115
121
  }
116
122
  this.service
117
123
  .follow(userId, id)
@@ -125,10 +131,12 @@ export class FollowController {
125
131
  const userId: string = res.locals[this.userId]
126
132
  const id = req.params[this.id]
127
133
  if (!id || id.length === 0) {
128
- return res.status(400).end(`'${this.id}' cannot be empty`)
134
+ res.status(400).end(`'${this.id}' cannot be empty`)
135
+ return
129
136
  }
130
137
  if (!userId || userId.length === 0) {
131
- return res.status(400).end(`'${this.userId}' cannot be empty`)
138
+ res.status(400).end(`'${this.userId}' cannot be empty`)
139
+ return
132
140
  }
133
141
  this.service
134
142
  .unfollow(userId, id)
@@ -172,7 +180,7 @@ export class UserReactionController {
172
180
  this.service
173
181
  .react(id, author, reaction)
174
182
  .then((count) => {
175
- return res.status(200).json(count).end()
183
+ res.status(200).json(count).end()
176
184
  })
177
185
  .catch((err) => handleError(err, res, this.log))
178
186
  }
@@ -195,7 +203,7 @@ export class UserReactionController {
195
203
  this.service
196
204
  .unreact(id, author, reaction)
197
205
  .then((count) => {
198
- return res.status(200).json(count).end()
206
+ res.status(200).json(count).end()
199
207
  })
200
208
  .catch((err) => handleError(err, res, this.log))
201
209
  }
@@ -213,7 +221,7 @@ export class UserReactionController {
213
221
  this.service
214
222
  .checkReaction(id, author)
215
223
  .then((count) => {
216
- return res.status(200).json(count).end()
224
+ res.status(200).json(count).end()
217
225
  })
218
226
  .catch((err) => handleError(err, res, this.log))
219
227
  }
package/src/log.ts CHANGED
@@ -165,11 +165,9 @@ export class MiddlewareController {
165
165
  }
166
166
  config(req: Request, res: Response) {
167
167
  const obj: MiddleLog = req.body
168
- if (!obj || (obj as any) === "") {
169
- return res.status(400).end("The request body cannot be empty")
170
- }
171
168
  if (!this.logger) {
172
- return res.status(503).end("Logger is not available")
169
+ res.status(503).end("Logger is not available")
170
+ return
173
171
  }
174
172
  let changed = false
175
173
  if (obj.log !== undefined) {
@@ -207,9 +205,9 @@ export class MiddlewareController {
207
205
  changed = true
208
206
  }
209
207
  if (changed) {
210
- return res.status(200).json(true).end()
208
+ res.status(200).json(true).end()
211
209
  } else {
212
- return res.status(204).json(false).end()
210
+ res.status(204).json(false).end()
213
211
  }
214
212
  }
215
213
  }
package/src/search.ts CHANGED
@@ -36,6 +36,113 @@ export interface SearchResult<T> {
36
36
  last?: boolean
37
37
  }
38
38
 
39
+ export function getPage<F extends Filter>(req: Request, filter?: F): number {
40
+ if (filter) {
41
+ const v0 = (filter as any)[resources.page]
42
+ if (v0 == undefined) {
43
+ const field = req.query[resources.page]
44
+ const v = field ? field.toString() : undefined
45
+ if (!v || v.length === 0) {
46
+ ;(filter as any)[resources.page] = 1
47
+ return 1
48
+ }
49
+ if (isNaN(v as any)) {
50
+ ;(filter as any)[resources.page] = 1
51
+ return 1
52
+ } else {
53
+ let n = parseFloat(v)
54
+ if (n < 1) {
55
+ n = 1
56
+ }
57
+ ;(filter as any)[resources.page] = n
58
+ return n
59
+ }
60
+ } else if (typeof v0 === "number") {
61
+ if (v0 > 0) {
62
+ return v0
63
+ } else {
64
+ ;(filter as any)[resources.page] = 1
65
+ return 1
66
+ }
67
+ }
68
+ }
69
+ const field = req.query[resources.page]
70
+ const v = field ? field.toString() : undefined
71
+ if (!v || v.length === 0) {
72
+ if (filter) {
73
+ ;(filter as any)[resources.page] = 1
74
+ }
75
+ return 1
76
+ }
77
+ if (isNaN(v as any)) {
78
+ if (filter) {
79
+ ;(filter as any)[resources.page] = 1
80
+ }
81
+ return 1
82
+ }
83
+ let n = parseFloat(v)
84
+ if (n < 1) {
85
+ n = 1
86
+ }
87
+ if (filter) {
88
+ ;(filter as any)[resources.page] = n
89
+ }
90
+ return n
91
+ }
92
+
93
+ export function getLimit<F extends Filter>(req: Request, filter?: F): number {
94
+ if (filter) {
95
+ const v0 = (filter as any)[resources.limit]
96
+ if (v0 == undefined) {
97
+ const field = req.query[resources.limit]
98
+ const v = field ? field.toString() : undefined
99
+ if (!v || v.length === 0) {
100
+ ;(filter as any)[resources.limit] = resources.defaultLimit
101
+ return resources.defaultLimit
102
+ }
103
+ if (isNaN(v as any)) {
104
+ ;(filter as any)[resources.limit] = resources.defaultLimit
105
+ return 1
106
+ } else {
107
+ let n = parseFloat(v)
108
+ if (n < 1) {
109
+ n = resources.defaultLimit
110
+ }
111
+ ;(filter as any)[resources.limit] = n
112
+ return n
113
+ }
114
+ } else if (typeof v0 === "number") {
115
+ if (v0 > 0) {
116
+ return v0
117
+ } else {
118
+ ;(filter as any)[resources.limit] = resources.defaultLimit
119
+ return resources.defaultLimit
120
+ }
121
+ }
122
+ }
123
+ const fieldxxx = req.query[resources.limit]
124
+ const v = fieldxxx ? fieldxxx.toString() : undefined
125
+ if (!v || v.length === 0) {
126
+ if (filter) {
127
+ ;(filter as any)[resources.limit] = resources.defaultLimit
128
+ }
129
+ return resources.defaultLimit
130
+ }
131
+ if (isNaN(v as any)) {
132
+ if (filter) {
133
+ ;(filter as any)[resources.limit] = resources.defaultLimit
134
+ }
135
+ return resources.defaultLimit
136
+ }
137
+ let n = parseFloat(v)
138
+ if (n < 1) {
139
+ n = resources.defaultLimit
140
+ }
141
+ if (filter) {
142
+ ;(filter as any)[resources.limit] = n
143
+ }
144
+ return n
145
+ }
39
146
  export function queryLimit(req: Request): number {
40
147
  return queryNumber(req, resources.limit, resources.defaultLimit)
41
148
  }