@spinajs/http 2.0.179 → 2.0.181

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 (247) hide show
  1. package/lib/cjs/bootstrap.d.ts +4 -4
  2. package/lib/cjs/bootstrap.js +29 -29
  3. package/lib/cjs/bootstrap.js.map +1 -1
  4. package/lib/cjs/config/http.d.ts +58 -58
  5. package/lib/cjs/config/http.js +86 -86
  6. package/lib/cjs/controllers.d.ts +48 -48
  7. package/lib/cjs/controllers.d.ts.map +1 -1
  8. package/lib/cjs/controllers.js +307 -312
  9. package/lib/cjs/controllers.js.map +1 -1
  10. package/lib/cjs/decorators.d.ts +183 -183
  11. package/lib/cjs/decorators.js +441 -441
  12. package/lib/cjs/hydrators/DateTimeHydrator.d.ts +5 -5
  13. package/lib/cjs/hydrators/DateTimeHydrator.js +36 -36
  14. package/lib/cjs/hydrators/DateTimeHydrator.js.map +1 -1
  15. package/lib/cjs/index.d.ts +9 -9
  16. package/lib/cjs/index.js +25 -25
  17. package/lib/cjs/interfaces.d.ts +569 -550
  18. package/lib/cjs/interfaces.d.ts.map +1 -1
  19. package/lib/cjs/interfaces.js +266 -259
  20. package/lib/cjs/interfaces.js.map +1 -1
  21. package/lib/cjs/middlewares/RealIp.d.ts +8 -8
  22. package/lib/cjs/middlewares/RealIp.js +34 -34
  23. package/lib/cjs/middlewares/RealIp.js.map +1 -1
  24. package/lib/cjs/middlewares/RequestId.d.ts +8 -8
  25. package/lib/cjs/middlewares/RequestId.js +35 -35
  26. package/lib/cjs/middlewares/RequestId.js.map +1 -1
  27. package/lib/cjs/middlewares/ResponseTime.d.ts +10 -10
  28. package/lib/cjs/middlewares/ResponseTime.js +41 -41
  29. package/lib/cjs/middlewares/ResponseTime.js.map +1 -1
  30. package/lib/cjs/response-methods/badRequest.d.ts +12 -12
  31. package/lib/cjs/response-methods/badRequest.js +20 -20
  32. package/lib/cjs/response-methods/conflict.d.ts +12 -12
  33. package/lib/cjs/response-methods/conflict.js +20 -20
  34. package/lib/cjs/response-methods/cookieResponse.d.ts +19 -19
  35. package/lib/cjs/response-methods/cookieResponse.js +73 -73
  36. package/lib/cjs/response-methods/created.d.ts +12 -12
  37. package/lib/cjs/response-methods/created.js +19 -19
  38. package/lib/cjs/response-methods/errorResponse.d.ts +7 -7
  39. package/lib/cjs/response-methods/errorResponse.js +24 -24
  40. package/lib/cjs/response-methods/file.d.ts +26 -26
  41. package/lib/cjs/response-methods/file.d.ts.map +1 -1
  42. package/lib/cjs/response-methods/file.js +112 -133
  43. package/lib/cjs/response-methods/file.js.map +1 -1
  44. package/lib/cjs/response-methods/forbidden.d.ts +12 -12
  45. package/lib/cjs/response-methods/forbidden.js +20 -20
  46. package/lib/cjs/response-methods/index.d.ts +13 -13
  47. package/lib/cjs/response-methods/index.js +29 -29
  48. package/lib/cjs/response-methods/noContent.d.ts +12 -12
  49. package/lib/cjs/response-methods/noContent.js +20 -20
  50. package/lib/cjs/response-methods/notAcceptable.d.ts +13 -13
  51. package/lib/cjs/response-methods/notAcceptable.js +21 -21
  52. package/lib/cjs/response-methods/notAllowed.d.ts +12 -12
  53. package/lib/cjs/response-methods/notAllowed.js +20 -20
  54. package/lib/cjs/response-methods/notFound.d.ts +12 -12
  55. package/lib/cjs/response-methods/notFound.js +20 -20
  56. package/lib/cjs/response-methods/ok.d.ts +12 -12
  57. package/lib/cjs/response-methods/ok.js +19 -19
  58. package/lib/cjs/response-methods/redirect.d.ts +12 -12
  59. package/lib/cjs/response-methods/redirect.js +19 -19
  60. package/lib/cjs/response-methods/serverError.d.ts +12 -12
  61. package/lib/cjs/response-methods/serverError.js +20 -20
  62. package/lib/cjs/response-methods/template.d.ts +15 -15
  63. package/lib/cjs/response-methods/template.js +36 -36
  64. package/lib/cjs/response-methods/unauthorized.d.ts +12 -12
  65. package/lib/cjs/response-methods/unauthorized.js +20 -20
  66. package/lib/cjs/response-methods/validationError.d.ts +12 -12
  67. package/lib/cjs/response-methods/validationError.js +20 -20
  68. package/lib/cjs/responses.d.ts +34 -34
  69. package/lib/cjs/responses.js +173 -173
  70. package/lib/cjs/route-args/ArgAsRequest.d.ts +11 -11
  71. package/lib/cjs/route-args/ArgAsRequest.js +24 -24
  72. package/lib/cjs/route-args/ArgAsRequest.js.map +1 -1
  73. package/lib/cjs/route-args/ArgAsResponse.d.ts +10 -10
  74. package/lib/cjs/route-args/ArgAsResponse.js +24 -24
  75. package/lib/cjs/route-args/ArgAsResponse.js.map +1 -1
  76. package/lib/cjs/route-args/ArgHydrator.d.ts +4 -4
  77. package/lib/cjs/route-args/ArgHydrator.js +6 -6
  78. package/lib/cjs/route-args/FromBody.d.ts +10 -10
  79. package/lib/cjs/route-args/FromBody.js +26 -26
  80. package/lib/cjs/route-args/FromBody.js.map +1 -1
  81. package/lib/cjs/route-args/FromCookie.d.ts +13 -13
  82. package/lib/cjs/route-args/FromCookie.js +72 -72
  83. package/lib/cjs/route-args/FromCookie.js.map +1 -1
  84. package/lib/cjs/route-args/FromDi.d.ts +13 -13
  85. package/lib/cjs/route-args/FromDi.js +35 -35
  86. package/lib/cjs/route-args/FromDi.js.map +1 -1
  87. package/lib/cjs/route-args/FromForm.d.ts +66 -92
  88. package/lib/cjs/route-args/FromForm.d.ts.map +1 -1
  89. package/lib/cjs/route-args/FromForm.js +214 -291
  90. package/lib/cjs/route-args/FromForm.js.map +1 -1
  91. package/lib/cjs/route-args/FromHeaderArg.d.ts +10 -10
  92. package/lib/cjs/route-args/FromHeaderArg.js +25 -25
  93. package/lib/cjs/route-args/FromHeaderArg.js.map +1 -1
  94. package/lib/cjs/route-args/FromParams.d.ts +10 -10
  95. package/lib/cjs/route-args/FromParams.js +27 -27
  96. package/lib/cjs/route-args/FromParams.js.map +1 -1
  97. package/lib/cjs/route-args/FromQuery.d.ts +10 -10
  98. package/lib/cjs/route-args/FromQuery.js +27 -27
  99. package/lib/cjs/route-args/FromQuery.js.map +1 -1
  100. package/lib/cjs/route-args/RequestFields.d.ts +40 -40
  101. package/lib/cjs/route-args/RequestFields.js +110 -110
  102. package/lib/cjs/route-args/RequestFields.js.map +1 -1
  103. package/lib/cjs/route-args/RouteArgs.d.ts +22 -22
  104. package/lib/cjs/route-args/RouteArgs.js +114 -114
  105. package/lib/cjs/route-args/RouteArgs.js.map +1 -1
  106. package/lib/cjs/route-args/index.d.ts +12 -12
  107. package/lib/cjs/route-args/index.js +28 -28
  108. package/lib/cjs/schemas/RouteArgsSchemas.d.ts +36 -36
  109. package/lib/cjs/schemas/RouteArgsSchemas.js +26 -26
  110. package/lib/cjs/server.d.ts +50 -50
  111. package/lib/cjs/server.js +272 -272
  112. package/lib/cjs/server.js.map +1 -1
  113. package/lib/cjs/transformers/PureTransformer.d.ts +9 -9
  114. package/lib/cjs/transformers/PureTransformer.js +27 -27
  115. package/lib/cjs/transformers/PureTransformer.js.map +1 -1
  116. package/lib/cjs/transformers/index.d.ts +1 -1
  117. package/lib/cjs/transformers/index.js +17 -17
  118. package/lib/cjs/uploaders/ImmediateFileUploader.d.ts +19 -0
  119. package/lib/cjs/uploaders/ImmediateFileUploader.d.ts.map +1 -0
  120. package/lib/cjs/uploaders/ImmediateFileUploader.js +69 -0
  121. package/lib/cjs/uploaders/ImmediateFileUploader.js.map +1 -0
  122. package/lib/mjs/bootstrap.d.ts +4 -4
  123. package/lib/mjs/bootstrap.js +26 -26
  124. package/lib/mjs/bootstrap.js.map +1 -1
  125. package/lib/mjs/config/http.d.ts +58 -58
  126. package/lib/mjs/config/http.js +81 -81
  127. package/lib/mjs/controllers.d.ts +48 -48
  128. package/lib/mjs/controllers.d.ts.map +1 -1
  129. package/lib/mjs/controllers.js +276 -281
  130. package/lib/mjs/controllers.js.map +1 -1
  131. package/lib/mjs/decorators.d.ts +183 -183
  132. package/lib/mjs/decorators.js +404 -404
  133. package/lib/mjs/exceptions.d.ts +1 -1
  134. package/lib/mjs/exceptions.js +1 -1
  135. package/lib/mjs/hydrators/DateTimeHydrator.d.ts +5 -5
  136. package/lib/mjs/hydrators/DateTimeHydrator.js +30 -30
  137. package/lib/mjs/hydrators/DateTimeHydrator.js.map +1 -1
  138. package/lib/mjs/index.d.ts +9 -9
  139. package/lib/mjs/index.js +9 -9
  140. package/lib/mjs/interfaces.d.ts +569 -550
  141. package/lib/mjs/interfaces.d.ts.map +1 -1
  142. package/lib/mjs/interfaces.js +257 -251
  143. package/lib/mjs/interfaces.js.map +1 -1
  144. package/lib/mjs/middlewares/RealIp.d.ts +8 -8
  145. package/lib/mjs/middlewares/RealIp.js +31 -31
  146. package/lib/mjs/middlewares/RealIp.js.map +1 -1
  147. package/lib/mjs/middlewares/RequestId.d.ts +8 -8
  148. package/lib/mjs/middlewares/RequestId.js +32 -32
  149. package/lib/mjs/middlewares/RequestId.js.map +1 -1
  150. package/lib/mjs/middlewares/ResponseTime.d.ts +10 -10
  151. package/lib/mjs/middlewares/ResponseTime.js +38 -38
  152. package/lib/mjs/middlewares/ResponseTime.js.map +1 -1
  153. package/lib/mjs/response-methods/badRequest.d.ts +12 -12
  154. package/lib/mjs/response-methods/badRequest.js +16 -16
  155. package/lib/mjs/response-methods/conflict.d.ts +12 -12
  156. package/lib/mjs/response-methods/conflict.js +16 -16
  157. package/lib/mjs/response-methods/cookieResponse.d.ts +19 -19
  158. package/lib/mjs/response-methods/cookieResponse.js +46 -46
  159. package/lib/mjs/response-methods/created.d.ts +12 -12
  160. package/lib/mjs/response-methods/created.js +15 -15
  161. package/lib/mjs/response-methods/errorResponse.d.ts +7 -7
  162. package/lib/mjs/response-methods/errorResponse.js +17 -17
  163. package/lib/mjs/response-methods/file.d.ts +26 -26
  164. package/lib/mjs/response-methods/file.d.ts.map +1 -1
  165. package/lib/mjs/response-methods/file.js +103 -124
  166. package/lib/mjs/response-methods/file.js.map +1 -1
  167. package/lib/mjs/response-methods/forbidden.d.ts +12 -12
  168. package/lib/mjs/response-methods/forbidden.js +16 -16
  169. package/lib/mjs/response-methods/index.d.ts +13 -13
  170. package/lib/mjs/response-methods/index.js +13 -13
  171. package/lib/mjs/response-methods/noContent.d.ts +12 -12
  172. package/lib/mjs/response-methods/noContent.js +16 -16
  173. package/lib/mjs/response-methods/notAcceptable.d.ts +13 -13
  174. package/lib/mjs/response-methods/notAcceptable.js +17 -17
  175. package/lib/mjs/response-methods/notAllowed.d.ts +12 -12
  176. package/lib/mjs/response-methods/notAllowed.js +16 -16
  177. package/lib/mjs/response-methods/notFound.d.ts +12 -12
  178. package/lib/mjs/response-methods/notFound.js +16 -16
  179. package/lib/mjs/response-methods/ok.d.ts +12 -12
  180. package/lib/mjs/response-methods/ok.js +15 -15
  181. package/lib/mjs/response-methods/redirect.d.ts +12 -12
  182. package/lib/mjs/response-methods/redirect.js +15 -15
  183. package/lib/mjs/response-methods/serverError.d.ts +12 -12
  184. package/lib/mjs/response-methods/serverError.js +16 -16
  185. package/lib/mjs/response-methods/template.d.ts +15 -15
  186. package/lib/mjs/response-methods/template.js +29 -29
  187. package/lib/mjs/response-methods/unauthorized.d.ts +12 -12
  188. package/lib/mjs/response-methods/unauthorized.js +16 -16
  189. package/lib/mjs/response-methods/validationError.d.ts +12 -12
  190. package/lib/mjs/response-methods/validationError.js +16 -16
  191. package/lib/mjs/responses.d.ts +34 -34
  192. package/lib/mjs/responses.js +143 -143
  193. package/lib/mjs/route-args/ArgAsRequest.d.ts +11 -11
  194. package/lib/mjs/route-args/ArgAsRequest.js +21 -21
  195. package/lib/mjs/route-args/ArgAsRequest.js.map +1 -1
  196. package/lib/mjs/route-args/ArgAsResponse.d.ts +10 -10
  197. package/lib/mjs/route-args/ArgAsResponse.js +21 -21
  198. package/lib/mjs/route-args/ArgAsResponse.js.map +1 -1
  199. package/lib/mjs/route-args/ArgHydrator.d.ts +4 -4
  200. package/lib/mjs/route-args/ArgHydrator.js +2 -2
  201. package/lib/mjs/route-args/FromBody.d.ts +10 -10
  202. package/lib/mjs/route-args/FromBody.js +23 -23
  203. package/lib/mjs/route-args/FromBody.js.map +1 -1
  204. package/lib/mjs/route-args/FromCookie.d.ts +13 -13
  205. package/lib/mjs/route-args/FromCookie.js +46 -46
  206. package/lib/mjs/route-args/FromCookie.js.map +1 -1
  207. package/lib/mjs/route-args/FromDi.d.ts +13 -13
  208. package/lib/mjs/route-args/FromDi.js +32 -32
  209. package/lib/mjs/route-args/FromDi.js.map +1 -1
  210. package/lib/mjs/route-args/FromForm.d.ts +66 -92
  211. package/lib/mjs/route-args/FromForm.d.ts.map +1 -1
  212. package/lib/mjs/route-args/FromForm.js +210 -284
  213. package/lib/mjs/route-args/FromForm.js.map +1 -1
  214. package/lib/mjs/route-args/FromHeaderArg.d.ts +10 -10
  215. package/lib/mjs/route-args/FromHeaderArg.js +22 -22
  216. package/lib/mjs/route-args/FromHeaderArg.js.map +1 -1
  217. package/lib/mjs/route-args/FromParams.d.ts +10 -10
  218. package/lib/mjs/route-args/FromParams.js +24 -24
  219. package/lib/mjs/route-args/FromParams.js.map +1 -1
  220. package/lib/mjs/route-args/FromQuery.d.ts +10 -10
  221. package/lib/mjs/route-args/FromQuery.js +24 -24
  222. package/lib/mjs/route-args/FromQuery.js.map +1 -1
  223. package/lib/mjs/route-args/RequestFields.d.ts +40 -40
  224. package/lib/mjs/route-args/RequestFields.js +107 -107
  225. package/lib/mjs/route-args/RequestFields.js.map +1 -1
  226. package/lib/mjs/route-args/RouteArgs.d.ts +22 -22
  227. package/lib/mjs/route-args/RouteArgs.js +107 -107
  228. package/lib/mjs/route-args/RouteArgs.js.map +1 -1
  229. package/lib/mjs/route-args/index.d.ts +12 -12
  230. package/lib/mjs/route-args/index.js +12 -12
  231. package/lib/mjs/schemas/RouteArgsSchemas.d.ts +36 -36
  232. package/lib/mjs/schemas/RouteArgsSchemas.js +23 -23
  233. package/lib/mjs/server.d.ts +50 -50
  234. package/lib/mjs/server.js +266 -266
  235. package/lib/mjs/server.js.map +1 -1
  236. package/lib/mjs/transformers/PureTransformer.d.ts +9 -9
  237. package/lib/mjs/transformers/PureTransformer.js +24 -24
  238. package/lib/mjs/transformers/PureTransformer.js.map +1 -1
  239. package/lib/mjs/transformers/index.d.ts +1 -1
  240. package/lib/mjs/transformers/index.js +1 -1
  241. package/lib/mjs/uploaders/ImmediateFileUploader.d.ts +19 -0
  242. package/lib/mjs/uploaders/ImmediateFileUploader.d.ts.map +1 -0
  243. package/lib/mjs/uploaders/ImmediateFileUploader.js +66 -0
  244. package/lib/mjs/uploaders/ImmediateFileUploader.js.map +1 -0
  245. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  246. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  247. package/package.json +17 -17
@@ -1,144 +1,144 @@
1
- import { HTTP_STATUS_CODE, HttpAcceptHeaders, DataTransformer } from './interfaces.js';
2
- import { Configuration } from '@spinajs/configuration';
3
- import { DI } from '@spinajs/di';
4
- import { Log } from '@spinajs/log-common';
5
- import * as randomstring from 'randomstring';
6
- import { Templates } from '@spinajs/templates';
7
- import { ServerError } from './index.js';
8
- /**
9
- * Sends data & sets proper header as json
10
- *
11
- * @param model - data to send
12
- * @param status - status code
13
- */
14
- export function jsonResponse(model, status) {
15
- return (_req, res) => {
16
- res.status(status ? status : HTTP_STATUS_CODE.OK);
17
- if (model) {
18
- res.json(model);
19
- }
20
- else {
21
- res.json();
22
- }
23
- };
24
- }
25
- /**
26
- * Sends data & sets proper header as json
27
- *
28
- * @param model - data to send
29
- * @param status - status code
30
- */
31
- export function textResponse(model, status) {
32
- return (_req, res) => {
33
- res.status(status ? status : HTTP_STATUS_CODE.OK);
34
- if (model) {
35
- res.set('Content-Type', 'text/plain');
36
- res.send(JSON.stringify(model));
37
- }
38
- };
39
- }
40
- /**
41
- * Sends html response & sets proper header. If template is not avaible, handles proper error rendering.
42
- *
43
- * @param file - template file path
44
- * @param model - data passed to template
45
- * @param status - optional status code
46
- */
47
- export function htmlResponse(file, model, status) {
48
- const cfg = DI.get(Configuration);
49
- return (req, res) => {
50
- if (!req.accepts('html')) {
51
- const f = DI.resolve('__file_provider__', ['__fs_http_response_templates__']);
52
- f.download('serverError.pug').then((file) => {
53
- httpResponse({
54
- error: {
55
- message: 'invalid request content type',
56
- code: 400,
57
- },
58
- }, HTTP_STATUS_CODE.BAD_REQUEST, file)(req, res);
59
- });
60
- return;
61
- }
62
- res.set('Content-Type', 'text/html');
63
- _render(file, model, status).catch((err) => {
64
- const log = DI.resolve(Log, ['http']);
65
- log.warn(`Cannot render html file ${file}, error: ${err.message}:${err.stack}`, err);
66
- const fs = DI.resolve('__file_provider__', ['__fs_http_response_templates__']);
67
- fs.download('serverError.pug').then((file) => {
68
- // try to render server error response
69
- _render(file, { error: err }, HTTP_STATUS_CODE.INTERNAL_ERROR).catch((err2) => {
70
- const log = DI.resolve(Log, ['http']);
71
- // final fallback rendering error fails, we render embedded html error page
72
- const ticketNo = randomstring.generate(7);
73
- log.warn(`Cannot render pug file error: ${err2.message}, ticket: ${ticketNo}`, err);
74
- res.status(HTTP_STATUS_CODE.INTERNAL_ERROR);
75
- res.send(cfg.get('http.FatalTemplate').replace('{ticket}', ticketNo));
76
- });
77
- });
78
- });
79
- function _render(f, m, c) {
80
- const templateEngine = DI.get(Templates);
81
- return templateEngine.render(f, m).then((content) => {
82
- res.status(c ? c : HTTP_STATUS_CODE.OK);
83
- res.send(content);
84
- });
85
- }
86
- };
87
- }
88
- /**
89
- * Default response handling. Checks `Accept` header & matches proper response
90
- * For now its supports html & json responses
91
- *
92
- * @param model - data to send
93
- * @param code - status code
94
- * @param template - template to render without extension eg. `views/responses/ok`. It will try to match .pug, .xml or whatever to match response
95
- * to `Accept` header
96
- */
97
- export function httpResponse(model, code, template) {
98
- const cfg = DI.get(Configuration);
99
- const acceptedHeaders = cfg.get('http.AcceptHeaders');
100
- const transformers = DI.resolve(Array.ofType(DataTransformer));
101
- return (req, res) => {
102
- if (req.accepts('html') && (acceptedHeaders & HttpAcceptHeaders.HTML) === HttpAcceptHeaders.HTML) {
103
- const fs = DI.resolve('__file_provider__', ['__fs_http_response_templates__']);
104
- if (!fs) {
105
- throw new ServerError('file provider __fs_http_response_templates__ not set. Pleas set response template file provider for html http default responses !');
106
- }
107
- fs.download(template)
108
- .then((file) => {
109
- htmlResponse(file, model, code)(req, res);
110
- })
111
- .catch((err) => {
112
- const log = DI.resolve(Log, ['http']);
113
- log.warn(`Cannot render html file ${template}, error: ${err.message}:${err.stack}`, err);
114
- fs.download('serverError.pug').then((file) => {
115
- // try to render server error response
116
- htmlResponse(file, { error: err }, HTTP_STATUS_CODE.INTERNAL_ERROR)(req, res);
117
- });
118
- });
119
- }
120
- else if (req.accepts('json') && (acceptedHeaders & HttpAcceptHeaders.JSON) === HttpAcceptHeaders.JSON) {
121
- if (req.headers['x-data-transform']) {
122
- const transformer = transformers.find((t) => t.Type === req.headers['x-data-transform']);
123
- if (transformer) {
124
- jsonResponse(transformer.transform(model, req), code)(req, res);
125
- }
126
- else {
127
- jsonResponse({
128
- error: {
129
- message: "invalid data transformer, remove header 'x-data-transform' to return raw data or set proper data transformer",
130
- code: 400,
131
- },
132
- }, HTTP_STATUS_CODE.BAD_REQUEST)(req, res);
133
- }
134
- }
135
- else {
136
- jsonResponse(model, code)(req, res);
137
- }
138
- }
139
- else {
140
- textResponse(model, code)(req, res);
141
- }
142
- };
143
- }
1
+ import { HTTP_STATUS_CODE, HttpAcceptHeaders, DataTransformer } from './interfaces.js';
2
+ import { Configuration } from '@spinajs/configuration';
3
+ import { DI } from '@spinajs/di';
4
+ import { Log } from '@spinajs/log-common';
5
+ import * as randomstring from 'randomstring';
6
+ import { Templates } from '@spinajs/templates';
7
+ import { ServerError } from './index.js';
8
+ /**
9
+ * Sends data & sets proper header as json
10
+ *
11
+ * @param model - data to send
12
+ * @param status - status code
13
+ */
14
+ export function jsonResponse(model, status) {
15
+ return (_req, res) => {
16
+ res.status(status ? status : HTTP_STATUS_CODE.OK);
17
+ if (model) {
18
+ res.json(model);
19
+ }
20
+ else {
21
+ res.json();
22
+ }
23
+ };
24
+ }
25
+ /**
26
+ * Sends data & sets proper header as json
27
+ *
28
+ * @param model - data to send
29
+ * @param status - status code
30
+ */
31
+ export function textResponse(model, status) {
32
+ return (_req, res) => {
33
+ res.status(status ? status : HTTP_STATUS_CODE.OK);
34
+ if (model) {
35
+ res.set('Content-Type', 'text/plain');
36
+ res.send(JSON.stringify(model));
37
+ }
38
+ };
39
+ }
40
+ /**
41
+ * Sends html response & sets proper header. If template is not avaible, handles proper error rendering.
42
+ *
43
+ * @param file - template file path
44
+ * @param model - data passed to template
45
+ * @param status - optional status code
46
+ */
47
+ export function htmlResponse(file, model, status) {
48
+ const cfg = DI.get(Configuration);
49
+ return (req, res) => {
50
+ if (!req.accepts('html')) {
51
+ const f = DI.resolve('__file_provider__', ['__fs_http_response_templates__']);
52
+ f.download('serverError.pug').then((file) => {
53
+ httpResponse({
54
+ error: {
55
+ message: 'invalid request content type',
56
+ code: 400,
57
+ },
58
+ }, HTTP_STATUS_CODE.BAD_REQUEST, file)(req, res);
59
+ });
60
+ return;
61
+ }
62
+ res.set('Content-Type', 'text/html');
63
+ _render(file, model, status).catch((err) => {
64
+ const log = DI.resolve(Log, ['http']);
65
+ log.warn(`Cannot render html file ${file}, error: ${err.message}:${err.stack}`, err);
66
+ const fs = DI.resolve('__file_provider__', ['__fs_http_response_templates__']);
67
+ fs.download('serverError.pug').then((file) => {
68
+ // try to render server error response
69
+ _render(file, { error: err }, HTTP_STATUS_CODE.INTERNAL_ERROR).catch((err2) => {
70
+ const log = DI.resolve(Log, ['http']);
71
+ // final fallback rendering error fails, we render embedded html error page
72
+ const ticketNo = randomstring.generate(7);
73
+ log.warn(`Cannot render pug file error: ${err2.message}, ticket: ${ticketNo}`, err);
74
+ res.status(HTTP_STATUS_CODE.INTERNAL_ERROR);
75
+ res.send(cfg.get('http.FatalTemplate').replace('{ticket}', ticketNo));
76
+ });
77
+ });
78
+ });
79
+ function _render(f, m, c) {
80
+ const templateEngine = DI.get(Templates);
81
+ return templateEngine.render(f, m).then((content) => {
82
+ res.status(c ? c : HTTP_STATUS_CODE.OK);
83
+ res.send(content);
84
+ });
85
+ }
86
+ };
87
+ }
88
+ /**
89
+ * Default response handling. Checks `Accept` header & matches proper response
90
+ * For now its supports html & json responses
91
+ *
92
+ * @param model - data to send
93
+ * @param code - status code
94
+ * @param template - template to render without extension eg. `views/responses/ok`. It will try to match .pug, .xml or whatever to match response
95
+ * to `Accept` header
96
+ */
97
+ export function httpResponse(model, code, template) {
98
+ const cfg = DI.get(Configuration);
99
+ const acceptedHeaders = cfg.get('http.AcceptHeaders');
100
+ const transformers = DI.resolve(Array.ofType(DataTransformer));
101
+ return (req, res) => {
102
+ if (req.accepts('html') && (acceptedHeaders & HttpAcceptHeaders.HTML) === HttpAcceptHeaders.HTML) {
103
+ const fs = DI.resolve('__file_provider__', ['__fs_http_response_templates__']);
104
+ if (!fs) {
105
+ throw new ServerError('file provider __fs_http_response_templates__ not set. Pleas set response template file provider for html http default responses !');
106
+ }
107
+ fs.download(template)
108
+ .then((file) => {
109
+ htmlResponse(file, model, code)(req, res);
110
+ })
111
+ .catch((err) => {
112
+ const log = DI.resolve(Log, ['http']);
113
+ log.warn(`Cannot render html file ${template}, error: ${err.message}:${err.stack}`, err);
114
+ fs.download('serverError.pug').then((file) => {
115
+ // try to render server error response
116
+ htmlResponse(file, { error: err }, HTTP_STATUS_CODE.INTERNAL_ERROR)(req, res);
117
+ });
118
+ });
119
+ }
120
+ else if (req.accepts('json') && (acceptedHeaders & HttpAcceptHeaders.JSON) === HttpAcceptHeaders.JSON) {
121
+ if (req.headers['x-data-transform']) {
122
+ const transformer = transformers.find((t) => t.Type === req.headers['x-data-transform']);
123
+ if (transformer) {
124
+ jsonResponse(transformer.transform(model, req), code)(req, res);
125
+ }
126
+ else {
127
+ jsonResponse({
128
+ error: {
129
+ message: "invalid data transformer, remove header 'x-data-transform' to return raw data or set proper data transformer",
130
+ code: 400,
131
+ },
132
+ }, HTTP_STATUS_CODE.BAD_REQUEST)(req, res);
133
+ }
134
+ }
135
+ else {
136
+ jsonResponse(model, code)(req, res);
137
+ }
138
+ }
139
+ else {
140
+ textResponse(model, code)(req, res);
141
+ }
142
+ };
143
+ }
144
144
  //# sourceMappingURL=responses.js.map
@@ -1,12 +1,12 @@
1
- /// <reference types="qs" />
2
- import { RouteArgs } from './RouteArgs.js';
3
- import { IRouteParameter, ParameterType, IRouteCall } from '../interfaces.js';
4
- import * as express from 'express';
5
- export declare class ArgAsRequest extends RouteArgs {
6
- get SupportedType(): ParameterType;
7
- extract(callData: IRouteCall, _param: IRouteParameter, req: express.Request): Promise<{
8
- CallData: IRouteCall;
9
- Args: express.Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
10
- }>;
11
- }
1
+ /// <reference types="qs" />
2
+ import { RouteArgs } from './RouteArgs.js';
3
+ import { IRouteParameter, ParameterType, IRouteCall } from '../interfaces.js';
4
+ import * as express from 'express';
5
+ export declare class ArgAsRequest extends RouteArgs {
6
+ get SupportedType(): ParameterType;
7
+ extract(callData: IRouteCall, _param: IRouteParameter, req: express.Request): Promise<{
8
+ CallData: IRouteCall;
9
+ Args: express.Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
10
+ }>;
11
+ }
12
12
  //# sourceMappingURL=ArgAsRequest.d.ts.map
@@ -1,22 +1,22 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { RouteArgs } from './RouteArgs.js';
8
- import { ParameterType } from '../interfaces.js';
9
- import { Injectable } from '@spinajs/di';
10
- let ArgAsRequest = class ArgAsRequest extends RouteArgs {
11
- get SupportedType() {
12
- return ParameterType.Req;
13
- }
14
- async extract(callData, _param, req) {
15
- return { CallData: callData, Args: req };
16
- }
17
- };
18
- ArgAsRequest = __decorate([
19
- Injectable()
20
- ], ArgAsRequest);
21
- export { ArgAsRequest };
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { RouteArgs } from './RouteArgs.js';
8
+ import { ParameterType } from '../interfaces.js';
9
+ import { Injectable } from '@spinajs/di';
10
+ let ArgAsRequest = class ArgAsRequest extends RouteArgs {
11
+ get SupportedType() {
12
+ return ParameterType.Req;
13
+ }
14
+ async extract(callData, _param, req) {
15
+ return { CallData: callData, Args: req };
16
+ }
17
+ };
18
+ ArgAsRequest = __decorate([
19
+ Injectable()
20
+ ], ArgAsRequest);
21
+ export { ArgAsRequest };
22
22
  //# sourceMappingURL=ArgAsRequest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArgAsRequest.js","sourceRoot":"","sources":["../../../src/route-args/ArgAsRequest.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAmB,aAAa,EAAc,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIlC,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,SAAS;IACzC,IAAW,aAAa;QACtB,OAAO,aAAa,CAAC,GAAG,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,MAAuB,EAAE,GAAoB;QACtF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC3C,CAAC;CACF,CAAA;AARY,YAAY;IADxB,UAAU,EAAE;GACA,YAAY,CAQxB;SARY,YAAY"}
1
+ {"version":3,"file":"ArgAsRequest.js","sourceRoot":"","sources":["../../../src/route-args/ArgAsRequest.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAmB,aAAa,EAAc,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIlC,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,SAAS;IACzC,IAAW,aAAa;QACtB,OAAO,aAAa,CAAC,GAAG,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,MAAuB,EAAE,GAAoB;QACtF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC3C,CAAC;CACF,CAAA;AARY,YAAY;IADxB,UAAU,EAAE;GACA,YAAY,CAQxB"}
@@ -1,11 +1,11 @@
1
- import { RouteArgs } from './RouteArgs.js';
2
- import { IRouteParameter, ParameterType, IRouteCall } from '../interfaces.js';
3
- import * as express from 'express';
4
- export declare class ArgAsResponse extends RouteArgs {
5
- get SupportedType(): ParameterType;
6
- extract(callData: IRouteCall, _param: IRouteParameter, _req: express.Request, res: express.Response): Promise<{
7
- CallData: IRouteCall;
8
- Args: express.Response<any, Record<string, any>>;
9
- }>;
10
- }
1
+ import { RouteArgs } from './RouteArgs.js';
2
+ import { IRouteParameter, ParameterType, IRouteCall } from '../interfaces.js';
3
+ import * as express from 'express';
4
+ export declare class ArgAsResponse extends RouteArgs {
5
+ get SupportedType(): ParameterType;
6
+ extract(callData: IRouteCall, _param: IRouteParameter, _req: express.Request, res: express.Response): Promise<{
7
+ CallData: IRouteCall;
8
+ Args: express.Response<any, Record<string, any>>;
9
+ }>;
10
+ }
11
11
  //# sourceMappingURL=ArgAsResponse.d.ts.map
@@ -1,22 +1,22 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { RouteArgs } from './RouteArgs.js';
8
- import { ParameterType } from '../interfaces.js';
9
- import { Injectable } from '@spinajs/di';
10
- let ArgAsResponse = class ArgAsResponse extends RouteArgs {
11
- get SupportedType() {
12
- return ParameterType.Res;
13
- }
14
- async extract(callData, _param, _req, res) {
15
- return { CallData: callData, Args: res };
16
- }
17
- };
18
- ArgAsResponse = __decorate([
19
- Injectable()
20
- ], ArgAsResponse);
21
- export { ArgAsResponse };
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { RouteArgs } from './RouteArgs.js';
8
+ import { ParameterType } from '../interfaces.js';
9
+ import { Injectable } from '@spinajs/di';
10
+ let ArgAsResponse = class ArgAsResponse extends RouteArgs {
11
+ get SupportedType() {
12
+ return ParameterType.Res;
13
+ }
14
+ async extract(callData, _param, _req, res) {
15
+ return { CallData: callData, Args: res };
16
+ }
17
+ };
18
+ ArgAsResponse = __decorate([
19
+ Injectable()
20
+ ], ArgAsResponse);
21
+ export { ArgAsResponse };
22
22
  //# sourceMappingURL=ArgAsResponse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArgAsResponse.js","sourceRoot":"","sources":["../../../src/route-args/ArgAsResponse.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAmB,aAAa,EAAc,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGlC,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,SAAS;IAC1C,IAAW,aAAa;QACtB,OAAO,aAAa,CAAC,GAAG,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,MAAuB,EAAE,IAAqB,EAAE,GAAqB;QAC9G,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC3C,CAAC;CACF,CAAA;AARY,aAAa;IADzB,UAAU,EAAE;GACA,aAAa,CAQzB;SARY,aAAa"}
1
+ {"version":3,"file":"ArgAsResponse.js","sourceRoot":"","sources":["../../../src/route-args/ArgAsResponse.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAmB,aAAa,EAAc,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGlC,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,SAAS;IAC1C,IAAW,aAAa;QACtB,OAAO,aAAa,CAAC,GAAG,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,MAAuB,EAAE,IAAqB,EAAE,GAAqB;QAC9G,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC3C,CAAC;CACF,CAAA;AARY,aAAa;IADzB,UAAU,EAAE;GACA,aAAa,CAQzB"}
@@ -1,5 +1,5 @@
1
- import { IRouteParameter } from '../interfaces.js';
2
- export declare abstract class ArgHydrator {
3
- abstract hydrate(input: any, parameter: IRouteParameter): Promise<any>;
4
- }
1
+ import { IRouteParameter } from '../interfaces.js';
2
+ export declare abstract class ArgHydrator {
3
+ abstract hydrate(input: any, parameter: IRouteParameter): Promise<any>;
4
+ }
5
5
  //# sourceMappingURL=ArgHydrator.d.ts.map
@@ -1,3 +1,3 @@
1
- export class ArgHydrator {
2
- }
1
+ export class ArgHydrator {
2
+ }
3
3
  //# sourceMappingURL=ArgHydrator.js.map
@@ -1,11 +1,11 @@
1
- import { RouteArgs } from './RouteArgs.js';
2
- import { IRouteParameter, ParameterType, IRouteCall, IRoute } from '../interfaces.js';
3
- import * as express from 'express';
4
- export declare class FromBody extends RouteArgs {
5
- get SupportedType(): ParameterType;
6
- extract(callData: IRouteCall, param: IRouteParameter, req: express.Request, _res: express.Response, route: IRoute): Promise<{
7
- CallData: IRouteCall;
8
- Args: any;
9
- }>;
10
- }
1
+ import { RouteArgs } from './RouteArgs.js';
2
+ import { IRouteParameter, ParameterType, IRouteCall, IRoute } from '../interfaces.js';
3
+ import * as express from 'express';
4
+ export declare class FromBody extends RouteArgs {
5
+ get SupportedType(): ParameterType;
6
+ extract(callData: IRouteCall, param: IRouteParameter, req: express.Request, _res: express.Response, route: IRoute): Promise<{
7
+ CallData: IRouteCall;
8
+ Args: any;
9
+ }>;
10
+ }
11
11
  //# sourceMappingURL=FromBody.d.ts.map
@@ -1,24 +1,24 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { RouteArgs } from './RouteArgs.js';
8
- import { ParameterType } from '../interfaces.js';
9
- import { Injectable } from '@spinajs/di';
10
- let FromBody = class FromBody extends RouteArgs {
11
- get SupportedType() {
12
- return ParameterType.FromBody;
13
- }
14
- async extract(callData, param, req, _res, route) {
15
- const arg = req.body[param.Name] ? req.body[param.Name] : [...route.Parameters.values()].filter((p) => p.Type === ParameterType.FromBody).length === 1 ? req.body : null;
16
- let result = await this.tryHydrateParam(arg, param, route);
17
- return { CallData: callData, Args: result };
18
- }
19
- };
20
- FromBody = __decorate([
21
- Injectable()
22
- ], FromBody);
23
- export { FromBody };
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { RouteArgs } from './RouteArgs.js';
8
+ import { ParameterType } from '../interfaces.js';
9
+ import { Injectable } from '@spinajs/di';
10
+ let FromBody = class FromBody extends RouteArgs {
11
+ get SupportedType() {
12
+ return ParameterType.FromBody;
13
+ }
14
+ async extract(callData, param, req, _res, route) {
15
+ const arg = req.body[param.Name] ? req.body[param.Name] : [...route.Parameters.values()].filter((p) => p.Type === ParameterType.FromBody).length === 1 ? req.body : null;
16
+ let result = await this.tryHydrateParam(arg, param, route);
17
+ return { CallData: callData, Args: result };
18
+ }
19
+ };
20
+ FromBody = __decorate([
21
+ Injectable()
22
+ ], FromBody);
23
+ export { FromBody };
24
24
  //# sourceMappingURL=FromBody.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FromBody.js","sourceRoot":"","sources":["../../../src/route-args/FromBody.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAmB,aAAa,EAAsB,MAAM,kBAAkB,CAAC;AAEtF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGlC,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,SAAS;IACrC,IAAW,aAAa;QACtB,OAAO,aAAa,CAAC,QAAQ,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAsB,EAAE,GAAoB,EAAE,IAAsB,EAAE,KAAa;QAC5H,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACzK,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC9C,CAAC;CACF,CAAA;AAVY,QAAQ;IADpB,UAAU,EAAE;GACA,QAAQ,CAUpB;SAVY,QAAQ"}
1
+ {"version":3,"file":"FromBody.js","sourceRoot":"","sources":["../../../src/route-args/FromBody.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAmB,aAAa,EAAsB,MAAM,kBAAkB,CAAC;AAEtF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGlC,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,SAAS;IACrC,IAAW,aAAa;QACtB,OAAO,aAAa,CAAC,QAAQ,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAsB,EAAE,GAAoB,EAAE,IAAsB,EAAE,KAAa;QAC5H,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACzK,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC9C,CAAC;CACF,CAAA;AAVY,QAAQ;IADpB,UAAU,EAAE;GACA,QAAQ,CAUpB"}
@@ -1,14 +1,14 @@
1
- import { RouteArgs } from './RouteArgs.js';
2
- import { IRouteParameter, ParameterType, IRouteCall, IRoute } from '../interfaces.js';
3
- import * as express from 'express';
4
- import { Configuration } from '@spinajs/configuration';
5
- export declare class FromCookie extends RouteArgs {
6
- protected _coockieSecret: string;
7
- constructor(cfg: Configuration);
8
- get SupportedType(): ParameterType;
9
- extract(callData: IRouteCall, param: IRouteParameter, req: express.Request, _res: express.Response, route: IRoute): Promise<{
10
- CallData: IRouteCall;
11
- Args: any;
12
- }>;
13
- }
1
+ import { RouteArgs } from './RouteArgs.js';
2
+ import { IRouteParameter, ParameterType, IRouteCall, IRoute } from '../interfaces.js';
3
+ import * as express from 'express';
4
+ import { Configuration } from '@spinajs/configuration';
5
+ export declare class FromCookie extends RouteArgs {
6
+ protected _coockieSecret: string;
7
+ constructor(cfg: Configuration);
8
+ get SupportedType(): ParameterType;
9
+ extract(callData: IRouteCall, param: IRouteParameter, req: express.Request, _res: express.Response, route: IRoute): Promise<{
10
+ CallData: IRouteCall;
11
+ Args: any;
12
+ }>;
13
+ }
14
14
  //# sourceMappingURL=FromCookie.d.ts.map