bootpress 6.0.0 → 6.0.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.
Files changed (3) hide show
  1. package/index.d.ts +4 -2
  2. package/index.js +40 -9
  3. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -17,13 +17,14 @@ declare function Restify(target: any, key: string, desc: PropertyDescriptor): Pr
17
17
 
18
18
  declare function PassBody(serviceFunction: RequestHandler | RequsetHandlerWithArgs): RequestHandler
19
19
  declare function PassBodyAs(type: ValidTypeKeys | JsSchema | ArraySchema ): (serviceFunction: RequestHandler | RequsetHandlerWithArgs) => RequestHandler
20
- declare function PassRequest(serviceFunction: RequestHandler | RequsetHandlerWithArgs): RequestHandler
21
20
  declare function PassAllParams(serviceFunction: RequestHandler | RequsetHandlerWithArgs): RequestHandler
22
21
  declare function PassAllQueries(serviceFunction: RequestHandler | RequsetHandlerWithArgs): RequestHandler
23
22
  declare function PassAllCookies(serviceFunction: RequestHandler | RequsetHandlerWithArgs): RequestHandler
24
23
  declare function PassParams(...paramNames: string[]): (serviceFunction: RequestHandler | RequsetHandlerWithArgs) => RequestHandler
25
24
  declare function PassQueries(...queryNames: string[]): (serviceFunction: RequestHandler | RequsetHandlerWithArgs) => RequestHandler
26
25
  declare function PassCookies(...cookieNames: string[]): (serviceFunction: RequestHandler | RequsetHandlerWithArgs) => RequestHandler
26
+ declare function PassRequest(serviceFunction: RequestHandler | RequsetHandlerWithArgs): RequestHandler
27
+ declare function PassResponse(serviceFunction: RequestHandler | RequsetHandlerWithArgs): RequestHandler
27
28
 
28
29
  export {
29
30
  RestService,
@@ -37,5 +38,6 @@ export {
37
38
  PassAllCookies,
38
39
  PassBody,
39
40
  PassBodyAs,
40
- PassRequest
41
+ PassRequest,
42
+ PassResponse
41
43
  }
package/index.js CHANGED
@@ -8,6 +8,14 @@ const protectedProperties = [
8
8
  "toLocaleString"
9
9
  ]
10
10
 
11
+ function reply(res, status, data) {
12
+ if (typeof data == "object") {
13
+ res.status(status).json(data);
14
+ } else {
15
+ res.status(status).send(data);
16
+ }
17
+ }
18
+
11
19
  function RestService(service) {
12
20
  if (typeof service == "function") {
13
21
  try {
@@ -36,9 +44,9 @@ function RestService(service) {
36
44
  } else if (result === null) {
37
45
  throw new HttpError(200, "Your method is executed but it returned null. At least a value is expected to be returned.");
38
46
  }
39
- res.status(result.status || 200).json(result.data || result);
47
+ reply(res, result.status || 200, result.data || result)
40
48
  } catch (e) {
41
- res.status(e.status || 500).send(e.message || e);
49
+ reply(res, e.status || 500, e.message || e);
42
50
  }
43
51
  }),
44
52
  configurable: keyvalue[1].configurable,
@@ -58,10 +66,10 @@ function RestMethod(callback) {
58
66
  return (req, res) => {
59
67
  try {
60
68
  const result = callback();
61
- res.status(result.status || 200).json(result.data || result);
69
+ reply(res, result.status || 200, result.data || result);
62
70
  return result;
63
71
  } catch (e) {
64
- res.status(e.status || 500).json(e.message || e);
72
+ reply(res, e.status || 500, e.message || e)
65
73
  }
66
74
  }
67
75
  }
@@ -74,10 +82,10 @@ function Restify(target, key, desc) {
74
82
  return (req, res) => {
75
83
  try {
76
84
  const result = oldFunc(...args);
77
- res.status(result.status || 200).json(result.data || result);
85
+ reply(res, result.status || 200, result.data || result);
78
86
  return result;
79
87
  } catch (e) {
80
- res.status(e.status || 500).json(e.message || e);
88
+ reply(res, e.status || 500, e.message || e);
81
89
  }
82
90
  }
83
91
  }).bind(target)
@@ -163,9 +171,20 @@ function PassBodyAs(type) {
163
171
  return (...args) => {
164
172
  if (isRequstHandlerArgs(args)) {
165
173
  const req = args.at(-3); const res = args.at(-2);
166
- return actualHandler(as(req.body, type))(req, res);
174
+ try {
175
+ return actualHandler(as(req.body, type))(req, res);
176
+ } catch (e) {
177
+ reply(res, e.status || 500, e.message || e);
178
+ }
179
+
167
180
  } else {
168
- return (req, res) => actualHandler(...args, as(req.body, type))(req, res);
181
+ return (req, res) => {
182
+ try{
183
+ return actualHandler(...args, as(req.body, type))(req, res);
184
+ }catch(e){
185
+ reply(res, e.status || 500, e.message || e)
186
+ }
187
+ }
169
188
  }
170
189
  }
171
190
  }
@@ -182,6 +201,17 @@ function PassRequest(actualHandler) {
182
201
  }
183
202
  }
184
203
 
204
+ function PassResponse(actualHandler) {
205
+ return (...args) => {
206
+ if (isRequstHandlerArgs(args)) {
207
+ const req = args.at(-3); const res = args.at(-2);
208
+ return actualHandler(res)(req, res);
209
+ } else {
210
+ return (req, res) => actualHandler(...args, res)(req, res)
211
+ }
212
+ }
213
+ }
214
+
185
215
  function PassAllCookies(actualHandler) {
186
216
  return (...args) => {
187
217
  if (isRequstHandlerArgs(args)) {
@@ -219,5 +249,6 @@ module.exports = {
219
249
  PassCookies,
220
250
  PassBody,
221
251
  PassBodyAs,
222
- PassRequest
252
+ PassRequest,
253
+ PassResponse
223
254
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bootpress",
3
- "version": "6.0.0",
3
+ "version": "6.0.1",
4
4
  "description": "REST service methods for express",
5
5
  "main": "index.js",
6
6
  "repository": {