core-express 0.1.0 → 0.1.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/lib/http.js ADDED
@@ -0,0 +1,316 @@
1
+ "use strict"
2
+ Object.defineProperty(exports, "__esModule", { value: true })
3
+ var resources_1 = require("./resources")
4
+ Object.defineProperty(Error.prototype, "toJSON", {
5
+ value: function () {
6
+ var alt = {}
7
+ Object.getOwnPropertyNames(this).forEach(function (key) {
8
+ alt[key] = this[key]
9
+ }, this)
10
+ return alt
11
+ },
12
+ configurable: true,
13
+ writable: true,
14
+ })
15
+ function handleError(err, res) {
16
+ if (resources_1.resources.log) {
17
+ resources_1.resources.log(toString(err))
18
+ res.status(500).end("Internal Server Error")
19
+ } else {
20
+ if (resources_1.resources.returnServerError) {
21
+ res.status(500).end(toString(err))
22
+ } else {
23
+ console.error(toString(err))
24
+ res.status(500).end("Internal Server Error")
25
+ }
26
+ }
27
+ }
28
+ exports.handleError = handleError
29
+ exports.error = handleError
30
+ function toString(v) {
31
+ if (typeof v === "string") {
32
+ return v
33
+ } else {
34
+ return JSON.stringify(v)
35
+ }
36
+ }
37
+ exports.toString = toString
38
+ function attr(name) {
39
+ return { name: name, type: "string" }
40
+ }
41
+ exports.attr = attr
42
+ function attrs(keys) {
43
+ var atts = []
44
+ for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
45
+ var str = keys_1[_i]
46
+ var at = { name: str, type: "string" }
47
+ atts.push(at)
48
+ }
49
+ return atts
50
+ }
51
+ exports.attrs = attrs
52
+ function respondModel(obj, res) {
53
+ if (obj) {
54
+ res.status(200).json(obj).end()
55
+ } else {
56
+ res.status(404).json(null).end()
57
+ }
58
+ }
59
+ exports.respondModel = respondModel
60
+ function queryRequiredParams(req, res, name, split) {
61
+ var v = req.query[name]
62
+ if (!v) {
63
+ res.status(400).end("'" + name + "' cannot be empty")
64
+ return undefined
65
+ }
66
+ var v2 = v.toString()
67
+ if (v2.length === 0) {
68
+ res.status(400).end("'" + name + "' cannot be empty")
69
+ return undefined
70
+ }
71
+ if (!split) {
72
+ split = ","
73
+ }
74
+ return v2.split(split)
75
+ }
76
+ exports.queryRequiredParams = queryRequiredParams
77
+ function queryParams(req, name, d, split) {
78
+ var q = req.query[name]
79
+ if (!q) {
80
+ return d
81
+ }
82
+ var v = q.toString()
83
+ if (!v || v.length === 0) {
84
+ return d
85
+ }
86
+ if (!split) {
87
+ split = ","
88
+ }
89
+ return v.split(split)
90
+ }
91
+ exports.queryParams = queryParams
92
+ function queryParam(req, res, name) {
93
+ var v = req.query[name]
94
+ if (!v) {
95
+ res.status(400).end("'" + name + "' cannot be empty")
96
+ return undefined
97
+ } else {
98
+ var v1 = v.toString()
99
+ if (v1.length === 0) {
100
+ res.status(400).end("'" + name + "' cannot be empty")
101
+ return undefined
102
+ } else {
103
+ return v1
104
+ }
105
+ }
106
+ }
107
+ exports.queryParam = queryParam
108
+ function query(req, name, d) {
109
+ var p = req.query[name]
110
+ if (!p || p.toString().length === 0) {
111
+ return d
112
+ }
113
+ return p.toString()
114
+ }
115
+ exports.query = query
116
+ function queryRequiredNumber(req, res, name) {
117
+ var field = req.query[name]
118
+ if (!field) {
119
+ return undefined
120
+ }
121
+ var v = field.toString()
122
+ if (!v || v.length === 0) {
123
+ res.status(400).end("'" + name + "' cannot be empty")
124
+ return undefined
125
+ }
126
+ if (isNaN(v)) {
127
+ res.status(400).end("'" + name + "' is not a valid number")
128
+ return undefined
129
+ }
130
+ var n = parseFloat(v)
131
+ return n
132
+ }
133
+ exports.queryRequiredNumber = queryRequiredNumber
134
+ function queryNumber(req, name, d) {
135
+ var field = req.query[name]
136
+ var v = field ? field.toString() : undefined
137
+ if (!v || v.length === 0) {
138
+ return d
139
+ }
140
+ if (isNaN(v)) {
141
+ return d
142
+ }
143
+ var n = parseFloat(v)
144
+ return n
145
+ }
146
+ exports.queryNumber = queryNumber
147
+ function queryRequiredDate(req, res, name) {
148
+ var field = req.query[name]
149
+ if (!field) {
150
+ return undefined
151
+ }
152
+ var v = field.toString()
153
+ if (!v || v.length === 0) {
154
+ res.status(400).end("'" + name + "' cannot be empty")
155
+ return undefined
156
+ }
157
+ var date = new Date(v)
158
+ if (date.toString() === "Invalid Date") {
159
+ res.status(400).end("'" + name + "' is not a valid date")
160
+ return undefined
161
+ }
162
+ return date
163
+ }
164
+ exports.queryRequiredDate = queryRequiredDate
165
+ function queryDate(req, name, d) {
166
+ var field = req.query[name]
167
+ if (field) {
168
+ var v = field.toString()
169
+ if (!v || v.length === 0) {
170
+ return d
171
+ }
172
+ var date = new Date(v)
173
+ if (date.toString() === "Invalid Date") {
174
+ return d
175
+ }
176
+ return date
177
+ }
178
+ return undefined
179
+ }
180
+ exports.queryDate = queryDate
181
+ function param(req, res, name) {
182
+ var v = req.params[name]
183
+ if (!v || v.length === 0) {
184
+ res.status(400).end("'" + name + "' cannot be empty")
185
+ return undefined
186
+ }
187
+ return v
188
+ }
189
+ exports.param = param
190
+ exports.getParam = param
191
+ function params(req, name, d, split) {
192
+ var v = req.params[name]
193
+ if (!v || v.length === 0) {
194
+ return d
195
+ }
196
+ if (!split) {
197
+ split = ","
198
+ }
199
+ return v.split(split)
200
+ }
201
+ exports.params = params
202
+ exports.getParams = params
203
+ function getRequiredParameters(req, res, name, split) {
204
+ var v = req.params[name]
205
+ if (!v || v.length === 0) {
206
+ res.status(400).end("'" + name + "' cannot be empty")
207
+ return undefined
208
+ }
209
+ if (!split) {
210
+ split = ","
211
+ }
212
+ return v.split(split)
213
+ }
214
+ exports.getRequiredParameters = getRequiredParameters
215
+ function getRequiredNumber(req, res, name) {
216
+ var v = req.params[name]
217
+ if (!v || v.length === 0) {
218
+ res.status(400).end("'" + name + "' cannot be empty")
219
+ return undefined
220
+ }
221
+ if (isNaN(v)) {
222
+ res.status(400).end("'" + name + "' must be a number")
223
+ return undefined
224
+ }
225
+ var n = parseFloat(v)
226
+ return n
227
+ }
228
+ exports.getRequiredNumber = getRequiredNumber
229
+ function getNumber(req, name, d) {
230
+ var v = req.params[name]
231
+ if (!v || v.length === 0) {
232
+ return d
233
+ }
234
+ if (isNaN(v)) {
235
+ return d
236
+ }
237
+ var n = parseFloat(v)
238
+ return n
239
+ }
240
+ exports.getNumber = getNumber
241
+ function getInteger(req, name, d) {
242
+ var v = req.params[name]
243
+ if (!v || v.length === 0) {
244
+ return d
245
+ }
246
+ if (isNaN(v)) {
247
+ return d
248
+ }
249
+ var n = parseFloat(v)
250
+ var s = n.toFixed(0)
251
+ return parseFloat(s)
252
+ }
253
+ exports.getInteger = getInteger
254
+ function getRequiredDate(req, res, name) {
255
+ var v = req.params[name]
256
+ if (!v || v.length === 0) {
257
+ res.status(400).end("'" + name + "' cannot be empty")
258
+ return undefined
259
+ }
260
+ var date = new Date(v)
261
+ if (date.toString() === "Invalid Date") {
262
+ res.status(400).end("'" + name + "' must be a date")
263
+ return undefined
264
+ }
265
+ return date
266
+ }
267
+ exports.getRequiredDate = getRequiredDate
268
+ function getDate(req, name, d) {
269
+ var v = req.params[name]
270
+ if (!v || v.length === 0) {
271
+ return d
272
+ }
273
+ var date = new Date(v)
274
+ if (date.toString() === "Invalid Date") {
275
+ return d
276
+ }
277
+ return date
278
+ }
279
+ exports.getDate = getDate
280
+ var o = "object"
281
+ function minimize(obj) {
282
+ if (!obj || typeof obj !== o) {
283
+ return obj
284
+ }
285
+ var keys = Object.keys(obj)
286
+ for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {
287
+ var key = keys_2[_i]
288
+ var v = obj[key]
289
+ if (v == null) {
290
+ delete obj[key]
291
+ } else if (Array.isArray(v) && v.length > 0) {
292
+ var v1 = v[0]
293
+ if (typeof v1 === o && !(v1 instanceof Date)) {
294
+ for (var _a = 0, v_1 = v; _a < v_1.length; _a++) {
295
+ var item = v_1[_a]
296
+ minimize(item)
297
+ }
298
+ }
299
+ }
300
+ }
301
+ return obj
302
+ }
303
+ exports.minimize = minimize
304
+ function minimizeArray(arrs) {
305
+ if (!arrs) {
306
+ return arrs
307
+ }
308
+ if (arrs.length > 0) {
309
+ for (var _i = 0, arrs_1 = arrs; _i < arrs_1.length; _i++) {
310
+ var obj = arrs_1[_i]
311
+ minimize(obj)
312
+ }
313
+ }
314
+ return arrs
315
+ }
316
+ exports.minimizeArray = minimizeArray