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/README.md +1 -1
- package/lib/GenericController.js +224 -131
- package/lib/GenericSearchController.js +58 -37
- package/lib/HealthController.js +16 -58
- package/lib/LoadController.js +71 -46
- package/lib/LoadSearchController.js +113 -41
- package/lib/LogController.js +89 -0
- package/lib/LowCodeController.js +100 -0
- package/lib/SearchController.js +32 -25
- package/lib/access.js +34 -0
- package/lib/client.js +80 -0
- package/lib/edit.js +99 -84
- package/lib/health.js +157 -76
- package/lib/http.js +316 -0
- package/lib/index.js +488 -16
- package/lib/log.js +242 -0
- package/lib/resources.js +106 -6
- package/lib/search.js +766 -160
- package/lib/view.js +48 -34
- package/package.json +8 -4
- package/src/GenericController.ts +217 -106
- package/src/GenericSearchController.ts +38 -21
- package/src/HealthController.ts +9 -9
- package/src/LoadController.ts +70 -40
- package/src/LoadSearchController.ts +114 -21
- package/src/LogController.ts +137 -0
- package/src/LowCodeController.ts +88 -0
- package/src/SearchController.ts +28 -17
- package/src/access.ts +42 -0
- package/src/client.ts +69 -0
- package/src/edit.ts +93 -61
- package/src/health.ts +27 -28
- package/src/http.ts +295 -0
- package/src/index.ts +464 -13
- package/src/log.ts +245 -0
- package/src/metadata.ts +34 -23
- package/src/resources.ts +143 -4
- package/src/search.ts +782 -198
- package/src/view.ts +44 -30
- package/tsconfig.json +1 -0
- package/lib/response.js +0 -12
- package/src/response.ts +0 -10
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
|