@spinajs/http 1.0.14 → 1.2.108

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 (139) hide show
  1. package/README.md +11 -0
  2. package/lib/config/http.js +17 -17
  3. package/lib/config/http.js.map +1 -1
  4. package/lib/controllers.d.ts +6 -4
  5. package/lib/controllers.js +53 -184
  6. package/lib/controllers.js.map +1 -1
  7. package/lib/decorators.d.ts +51 -24
  8. package/lib/decorators.js +99 -40
  9. package/lib/decorators.js.map +1 -1
  10. package/lib/exceptions.d.ts +0 -0
  11. package/lib/exceptions.js +1 -0
  12. package/lib/exceptions.js.map +1 -0
  13. package/lib/http.d.ts +0 -0
  14. package/lib/http.js +1 -0
  15. package/lib/http.js.map +1 -0
  16. package/lib/hydrators/datetime.d.ts +8 -0
  17. package/lib/hydrators/datetime.js +63 -0
  18. package/lib/hydrators/datetime.js.map +1 -0
  19. package/lib/index.d.ts +1 -1
  20. package/lib/index.js +8 -3
  21. package/lib/index.js.map +1 -1
  22. package/lib/interfaces.d.ts +45 -16
  23. package/lib/interfaces.js +31 -12
  24. package/lib/interfaces.js.map +1 -1
  25. package/lib/response-methods/badRequest.d.ts +3 -2
  26. package/lib/response-methods/badRequest.js +1 -1
  27. package/lib/response-methods/badRequest.js.map +1 -1
  28. package/lib/response-methods/conflict.d.ts +3 -2
  29. package/lib/response-methods/conflict.js +1 -1
  30. package/lib/response-methods/conflict.js.map +1 -1
  31. package/lib/response-methods/cookieResponse.d.ts +3 -2
  32. package/lib/response-methods/cookieResponse.js +9 -5
  33. package/lib/response-methods/cookieResponse.js.map +1 -1
  34. package/lib/response-methods/created.d.ts +3 -2
  35. package/lib/response-methods/created.js +1 -1
  36. package/lib/response-methods/created.js.map +1 -1
  37. package/lib/response-methods/file.d.ts +16 -2
  38. package/lib/response-methods/file.js +67 -5
  39. package/lib/response-methods/file.js.map +1 -1
  40. package/lib/response-methods/forbidden.d.ts +3 -2
  41. package/lib/response-methods/forbidden.js +1 -1
  42. package/lib/response-methods/forbidden.js.map +1 -1
  43. package/lib/response-methods/index.js +6 -2
  44. package/lib/response-methods/index.js.map +1 -1
  45. package/lib/response-methods/noContent.d.ts +3 -2
  46. package/lib/response-methods/noContent.js +1 -1
  47. package/lib/response-methods/noContent.js.map +1 -1
  48. package/lib/response-methods/notFound.d.ts +3 -2
  49. package/lib/response-methods/notFound.js +1 -1
  50. package/lib/response-methods/notFound.js.map +1 -1
  51. package/lib/response-methods/ok.d.ts +3 -2
  52. package/lib/response-methods/ok.js +1 -1
  53. package/lib/response-methods/ok.js.map +1 -1
  54. package/lib/response-methods/pug.d.ts +3 -2
  55. package/lib/response-methods/pug.js +1 -1
  56. package/lib/response-methods/pug.js.map +1 -1
  57. package/lib/response-methods/redirect.d.ts +2 -2
  58. package/lib/response-methods/redirect.js +2 -4
  59. package/lib/response-methods/redirect.js.map +1 -1
  60. package/lib/response-methods/serverError.d.ts +3 -2
  61. package/lib/response-methods/serverError.js +1 -1
  62. package/lib/response-methods/serverError.js.map +1 -1
  63. package/lib/response-methods/unauthorized.d.ts +3 -2
  64. package/lib/response-methods/unauthorized.js +1 -1
  65. package/lib/response-methods/unauthorized.js.map +1 -1
  66. package/lib/responses.d.ts +1 -1
  67. package/lib/responses.js +28 -11
  68. package/lib/responses.js.map +1 -1
  69. package/lib/route-args/ArgAsRequest.d.ts +11 -0
  70. package/lib/{transformers/PureFormatter.js → route-args/ArgAsRequest.js} +13 -12
  71. package/lib/route-args/ArgAsRequest.js.map +1 -0
  72. package/lib/route-args/ArgAsResponse.d.ts +10 -0
  73. package/lib/{dto/limit-dto.js → route-args/ArgAsResponse.js} +16 -18
  74. package/lib/route-args/ArgAsResponse.js.map +1 -0
  75. package/lib/route-args/ArgHydrator.d.ts +3 -0
  76. package/lib/route-args/ArgHydrator.js +7 -0
  77. package/lib/route-args/ArgHydrator.js.map +1 -0
  78. package/lib/route-args/FromBody.d.ts +10 -0
  79. package/lib/route-args/FromBody.js +44 -0
  80. package/lib/route-args/FromBody.js.map +1 -0
  81. package/lib/route-args/FromCoockie.d.ts +13 -0
  82. package/lib/route-args/FromCoockie.js +71 -0
  83. package/lib/route-args/FromCoockie.js.map +1 -0
  84. package/lib/route-args/FromCookie.d.ts +13 -0
  85. package/lib/route-args/FromCookie.js +74 -0
  86. package/lib/route-args/FromCookie.js.map +1 -0
  87. package/lib/route-args/FromDi.d.ts +14 -0
  88. package/lib/route-args/FromDi.js +35 -0
  89. package/lib/route-args/FromDi.js.map +1 -0
  90. package/lib/route-args/FromForm.d.ts +82 -0
  91. package/lib/route-args/FromForm.js +259 -0
  92. package/lib/route-args/FromForm.js.map +1 -0
  93. package/lib/route-args/FromHeaderArg.d.ts +12 -0
  94. package/lib/route-args/FromHeaderArg.js +30 -0
  95. package/lib/route-args/FromHeaderArg.js.map +1 -0
  96. package/lib/route-args/FromParams.d.ts +10 -0
  97. package/lib/route-args/FromParams.js +25 -0
  98. package/lib/route-args/FromParams.js.map +1 -0
  99. package/lib/route-args/FromQuery.d.ts +10 -0
  100. package/lib/{dto/order-dto.js → route-args/FromQuery.js} +16 -18
  101. package/lib/route-args/FromQuery.js.map +1 -0
  102. package/lib/route-args/RouteArgs.d.ts +19 -0
  103. package/lib/route-args/RouteArgs.js +64 -0
  104. package/lib/route-args/RouteArgs.js.map +1 -0
  105. package/lib/route-args/index.d.ts +11 -0
  106. package/lib/route-args/index.js +28 -0
  107. package/lib/route-args/index.js.map +1 -0
  108. package/lib/schemas/RouteArgsSchemas.d.ts +15 -0
  109. package/lib/schemas/RouteArgsSchemas.js +19 -0
  110. package/lib/schemas/RouteArgsSchemas.js.map +1 -0
  111. package/lib/server.d.ts +3 -2
  112. package/lib/server.js +30 -14
  113. package/lib/server.js.map +1 -1
  114. package/lib/transformers/PureTransformer.d.ts +1 -1
  115. package/lib/transformers/PureTransformer.js +2 -2
  116. package/lib/transformers/PureTransformer.js.map +1 -1
  117. package/package.json +27 -54
  118. package/lib/dto/index.d.ts +0 -2
  119. package/lib/dto/index.js +0 -15
  120. package/lib/dto/index.js.map +0 -1
  121. package/lib/dto/limit-dto.d.ts +0 -32
  122. package/lib/dto/limit-dto.js.map +0 -1
  123. package/lib/dto/order-dto.d.ts +0 -32
  124. package/lib/dto/order-dto.js.map +0 -1
  125. package/lib/schemas.d.ts +0 -24
  126. package/lib/schemas.js +0 -96
  127. package/lib/schemas.js.map +0 -1
  128. package/lib/static/favicon.ico +0 -0
  129. package/lib/static/style.css +0 -15
  130. package/lib/transformers/PureFormatter.d.ts +0 -7
  131. package/lib/transformers/PureFormatter.js.map +0 -1
  132. package/lib/views/responses/badRequest.pug +0 -13
  133. package/lib/views/responses/conflict.pug +0 -13
  134. package/lib/views/responses/forbidden.pug +0 -13
  135. package/lib/views/responses/noContent.pug +0 -13
  136. package/lib/views/responses/notFound.pug +0 -13
  137. package/lib/views/responses/ok.pug +0 -12
  138. package/lib/views/responses/serverError.pug +0 -13
  139. package/lib/views/responses/unauthorized.pug +0 -13
package/lib/decorators.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Schema = exports.Post = exports.Get = exports.Put = exports.Del = exports.Patch = exports.Head = exports.Cookie = exports.Model = exports.Res = exports.Req = exports.UuidPkey = exports.IncPkey = exports.FormField = exports.Form = exports.Upload = exports.FromModel = exports.Param = exports.Body = exports.Query = exports.Inject = exports.BasePath = exports.Middleware = exports.Policy = exports.SCHEMA_SYMBOL = exports.CONTROLLED_DESCRIPTOR_SYMBOL = void 0;
3
+ exports.Post = exports.Get = exports.Put = exports.Del = exports.Patch = exports.Head = exports.Cookie = exports.Model = exports.Res = exports.Req = exports.Uuid = exports.PKey = exports.FormField = exports.Form = exports.JsonFile = exports.CsvFile = exports.File = exports.Header = exports.FromModel = exports.Param = exports.Body = exports.Query = exports.FromDI = exports.BasePath = exports.Middleware = exports.Policy = exports.Hydrator = exports.Parameter = exports.Route = exports.CONTROLLED_DESCRIPTOR_SYMBOL = void 0;
4
4
  const interfaces_1 = require("./interfaces");
5
+ const RouteArgsSchemas_1 = require("./schemas/RouteArgsSchemas");
5
6
  exports.CONTROLLED_DESCRIPTOR_SYMBOL = Symbol('CONTROLLER_SYMBOL');
6
- exports.SCHEMA_SYMBOL = Symbol('SCHEMA_SYMBOL');
7
7
  function Controller(callback) {
8
8
  return (target, propertyKey, indexOrDescriptor) => {
9
9
  let metadata = Reflect.getMetadata(exports.CONTROLLED_DESCRIPTOR_SYMBOL, target.prototype || target);
@@ -47,19 +47,52 @@ function Route(callback) {
47
47
  }
48
48
  });
49
49
  }
50
+ exports.Route = Route;
50
51
  function Parameter(type, schema, options) {
51
52
  return (_, route, target, propertyKey, index) => {
53
+ const rType = Reflect.getMetadata('design:paramtypes', target.prototype || target, propertyKey)[index];
54
+ let tSchema = null;
55
+ if (!schema) {
56
+ switch (rType.name) {
57
+ case 'Number':
58
+ tSchema = RouteArgsSchemas_1.ROUTE_ARG_SCHEMA.Number;
59
+ break;
60
+ case 'String':
61
+ tSchema = RouteArgsSchemas_1.ROUTE_ARG_SCHEMA.String;
62
+ break;
63
+ case 'Boolean':
64
+ tSchema = RouteArgsSchemas_1.ROUTE_ARG_SCHEMA.Boolean;
65
+ }
66
+ }
52
67
  const param = {
53
68
  Index: index,
54
69
  Name: '',
55
- RuntimeType: Reflect.getMetadata('design:paramtypes', target.prototype || target, propertyKey)[index],
56
- Schema: schema,
70
+ RuntimeType: rType,
71
+ Schema: schema !== null && schema !== void 0 ? schema : tSchema,
57
72
  Options: options,
58
73
  Type: type,
59
74
  };
60
75
  route.Parameters.set(index, param);
61
76
  };
62
77
  }
78
+ exports.Parameter = Parameter;
79
+ /**
80
+ * Tells controller how to fill up incoming parameters in controller actions
81
+ *
82
+ * @param hydrator - hydrator class that will fill up incoming argument
83
+ * @param options - additional options passed to hydrator
84
+ */
85
+ function Hydrator(hydrator, ...options) {
86
+ return (target) => {
87
+ if (!Reflect.getMetadata('custom:arg_hydrator', target)) {
88
+ Reflect.defineMetadata('custom:arg_hydrator', {
89
+ hydrator,
90
+ options,
91
+ }, target);
92
+ }
93
+ };
94
+ }
95
+ exports.Hydrator = Hydrator;
63
96
  function Policy(policy, ...options) {
64
97
  return Route((controller, route, _, _1, _2) => {
65
98
  const pDesc = {
@@ -96,14 +129,14 @@ function BasePath(path) {
96
129
  });
97
130
  }
98
131
  exports.BasePath = BasePath;
99
- function Inject() {
132
+ function FromDI() {
100
133
  return Route(Parameter(interfaces_1.ParameterType.FromDi));
101
134
  }
102
- exports.Inject = Inject;
135
+ exports.FromDI = FromDI;
103
136
  /**
104
137
  * Route parameter taken from query string eg. route?id=1
105
138
  *
106
- * @param schema parameter json schema for optional validation
139
+ * @param schema - parameter json schema for optional validation
107
140
  */
108
141
  function Query(schema) {
109
142
  return Route(Parameter(interfaces_1.ParameterType.FromQuery, schema));
@@ -112,7 +145,7 @@ exports.Query = Query;
112
145
  /**
113
146
  * Route parameter taken from message body (POST)
114
147
  *
115
- * @param schema parameter json schema for optional validation
148
+ * @param schema - parameter json schema for optional validation
116
149
  */
117
150
  function Body(schema) {
118
151
  return Route(Parameter(interfaces_1.ParameterType.FromBody, schema));
@@ -121,7 +154,7 @@ exports.Body = Body;
121
154
  /**
122
155
  * Route parameter taken from url parameters eg. route/:id
123
156
  *
124
- * @param schema parameter json schema for optional validation
157
+ * @param schema - parameter json schema for optional validation
125
158
  */
126
159
  function Param(schema) {
127
160
  return Route(Parameter(interfaces_1.ParameterType.FromParams, schema));
@@ -131,34 +164,70 @@ function FromModel(schema) {
131
164
  return Route(Parameter(interfaces_1.ParameterType.FromModel, schema));
132
165
  }
133
166
  exports.FromModel = FromModel;
167
+ /**
168
+ * Gets parameter from request header. If not keyname is provided
169
+ * variable name is used as header key name
170
+ *
171
+ * @param keyName - header key name ( optional )
172
+ * @param schema - schema for validation ( optional )
173
+ * @returns
174
+ */
175
+ function Header(keyName, schema) {
176
+ return Route(Parameter(interfaces_1.ParameterType.FromHeader, schema, { key: keyName }));
177
+ }
178
+ exports.Header = Header;
134
179
  /**
135
180
  *
136
181
  * Parameter as file
137
182
  *
138
- * @param options upload options
183
+ * @param options - upload options
139
184
  */
140
- function Upload(options) {
185
+ function File(options) {
141
186
  return Route(Parameter(interfaces_1.ParameterType.FromFile, null, options));
142
187
  }
143
- exports.Upload = Upload;
188
+ exports.File = File;
189
+ /**
190
+ * Data taken from cvs file that is uploaded. Actions receives parsed data
191
+ *
192
+ * @param options - upload options
193
+ * @param cvsParseOptions - cvs parser options
194
+ * @param schema - optional schema for data validation
195
+ */
196
+ function CsvFile(options, cvsParseOptions, schema) {
197
+ return Route(Parameter(interfaces_1.ParameterType.FromCSV, schema, {
198
+ uploadOptions: options,
199
+ cvsOptions: cvsParseOptions,
200
+ }));
201
+ }
202
+ exports.CsvFile = CsvFile;
203
+ /**
204
+ * Data taken from cvs file that is uploaded. Actions receives parsed data
205
+ *
206
+ * @param options - upload options
207
+ * @param schema - optional schema for data validation
208
+ */
209
+ function JsonFile(options, schema) {
210
+ return Route(Parameter(interfaces_1.ParameterType.FromJSONFile, schema, options));
211
+ }
212
+ exports.JsonFile = JsonFile;
144
213
  /**
145
214
  *
146
215
  * Parameter taken from form data (multipart-form)
147
216
  *
148
- * @param options upload options
217
+ * @param options - upload options
149
218
  */
150
- function Form(schema) {
151
- return Route(Parameter(interfaces_1.ParameterType.FromForm, schema));
219
+ function Form(schema, options) {
220
+ return Route(Parameter(interfaces_1.ParameterType.FromForm, schema, options));
152
221
  }
153
222
  exports.Form = Form;
154
223
  /**
155
224
  *
156
225
  * Parameter taken from form data (multipart-form)
157
226
  *
158
- * @param options upload options
227
+ * @param options - upload options
159
228
  */
160
- function FormField() {
161
- return Route(Parameter(interfaces_1.ParameterType.FormField, null));
229
+ function FormField(schema, options) {
230
+ return Route(Parameter(interfaces_1.ParameterType.FormField, schema, options));
162
231
  }
163
232
  exports.FormField = FormField;
164
233
  /**
@@ -166,19 +235,21 @@ exports.FormField = FormField;
166
235
  * Shortcut for parameter as autoincrement primary key ( number greater than 0)
167
236
  *
168
237
  */
169
- function IncPkey() {
170
- return Route(Parameter(interfaces_1.ParameterType.FromParams, { type: 'number', minimum: 0 }));
238
+ function PKey(type) {
239
+ return Route(Parameter(type ? type : interfaces_1.ParameterType.FromParams, { type: 'number', minimum: 0 }));
171
240
  }
172
- exports.IncPkey = IncPkey;
241
+ exports.PKey = PKey;
173
242
  /**
174
243
  *
175
244
  * Shortcut for parameter as uuid primary key ( string with 32 length )
176
245
  *
177
246
  */
178
- function UuidPkey() {
179
- return Route(Parameter(interfaces_1.ParameterType.FromParams, { type: 'string', minLength: 32, maxLength: 32 }));
247
+ function Uuid(type, version) {
248
+ return Route(Parameter(type ? type : interfaces_1.ParameterType.FromParams, { type: 'string', minLength: 36, maxLength: 36, pattern: '^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$' }, {
249
+ version: version !== null && version !== void 0 ? version : interfaces_1.UuidVersion.v4,
250
+ }));
180
251
  }
181
- exports.UuidPkey = UuidPkey;
252
+ exports.Uuid = Uuid;
182
253
  /**
183
254
  *
184
255
  * Express request
@@ -201,7 +272,7 @@ exports.Res = Res;
201
272
  *
202
273
  * Parameter taken from model
203
274
  *
204
- * @param options upload options
275
+ * @param options - upload options
205
276
  */
206
277
  function Model(model) {
207
278
  return Route(Parameter(interfaces_1.ParameterType.FromModel, null, { type: model }));
@@ -209,9 +280,9 @@ function Model(model) {
209
280
  exports.Model = Model;
210
281
  /**
211
282
  *
212
- * Parameter taken from model
283
+ * Parameter taken from coockie
213
284
  *
214
- * @param options upload options
285
+ * @param options - upload options
215
286
  */
216
287
  function Cookie() {
217
288
  return Route(Parameter(interfaces_1.ParameterType.FromCookie, { type: 'string' }));
@@ -285,22 +356,10 @@ exports.Get = Get;
285
356
  */
286
357
  function Post(path) {
287
358
  return Route((_, route) => {
288
- route.Type = interfaces_1.RouteType.GET;
359
+ route.Type = interfaces_1.RouteType.POST;
289
360
  route.InternalType = interfaces_1.RouteType.POST;
290
361
  route.Path = path;
291
362
  });
292
363
  }
293
364
  exports.Post = Post;
294
- /**
295
- *
296
- * Add schema for object eg. model or dto
297
- *
298
- * @param schema schema for object
299
- */
300
- function Schema(schema) {
301
- return (target) => {
302
- Reflect.defineMetadata(exports.SCHEMA_SYMBOL, schema, target);
303
- };
304
- }
305
- exports.Schema = Schema;
306
365
  //# sourceMappingURL=decorators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"}
File without changes
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=exceptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../src/exceptions.ts"],"names":[],"mappings":""}
package/lib/http.d.ts ADDED
File without changes
package/lib/http.js ADDED
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/config/http.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ export declare namespace DateTime {
2
+ class FromUnix {
3
+ }
4
+ class FromHTTP {
5
+ }
6
+ class FromISO {
7
+ }
8
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DateTime = void 0;
13
+ const validation_1 = require("@spinajs/validation");
14
+ const lodash_1 = __importDefault(require("lodash"));
15
+ const luxon_1 = require("luxon");
16
+ const decorators_1 = require("../decorators");
17
+ const ArgHydrator_1 = require("../route-args/ArgHydrator");
18
+ var DateTime;
19
+ (function (DateTime) {
20
+ class DateFromUnixHydrator extends ArgHydrator_1.ArgHydrator {
21
+ async hydrate(input) {
22
+ return luxon_1.DateTime.fromSeconds(lodash_1.default.isString(input) ? Number(input) : input);
23
+ }
24
+ }
25
+ class DateFromIsoHydrator extends ArgHydrator_1.ArgHydrator {
26
+ async hydrate(input) {
27
+ return luxon_1.DateTime.fromISO(input);
28
+ }
29
+ }
30
+ class DateFromHttpHydrator extends ArgHydrator_1.ArgHydrator {
31
+ async hydrate(input) {
32
+ return luxon_1.DateTime.fromHTTP(input.startsWith('Date:') ? input.substring(5).trim() : input.trim());
33
+ }
34
+ }
35
+ let FromUnix = class FromUnix {
36
+ };
37
+ FromUnix = __decorate([
38
+ (0, validation_1.Schema)({
39
+ type: 'number',
40
+ minimum: 0,
41
+ maximum: 2147483647,
42
+ }),
43
+ (0, decorators_1.Hydrator)(DateFromUnixHydrator)
44
+ ], FromUnix);
45
+ DateTime.FromUnix = FromUnix;
46
+ let FromHTTP = class FromHTTP {
47
+ };
48
+ FromHTTP = __decorate([
49
+ (0, decorators_1.Hydrator)(DateFromHttpHydrator)
50
+ ], FromHTTP);
51
+ DateTime.FromHTTP = FromHTTP;
52
+ let FromISO = class FromISO {
53
+ };
54
+ FromISO = __decorate([
55
+ (0, validation_1.Schema)({
56
+ type: 'string',
57
+ format: 'iso-date-time',
58
+ }),
59
+ (0, decorators_1.Hydrator)(DateFromIsoHydrator)
60
+ ], FromISO);
61
+ DateTime.FromISO = FromISO;
62
+ })(DateTime = exports.DateTime || (exports.DateTime = {}));
63
+ //# sourceMappingURL=datetime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datetime.js","sourceRoot":"","sources":["../../src/hydrators/datetime.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA6C;AAC7C,oDAAuB;AACvB,iCAA8C;AAC9C,8CAAyC;AACzC,2DAAwD;AAExD,IAAiB,QAAQ,CAoCxB;AApCD,WAAiB,QAAQ;IACvB,MAAM,oBAAqB,SAAQ,yBAAW;QACrC,KAAK,CAAC,OAAO,CAAC,KAAU;YAC7B,OAAO,gBAAS,CAAC,WAAW,CAAC,gBAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC1E,CAAC;KACF;IAED,MAAM,mBAAoB,SAAQ,yBAAW;QACpC,KAAK,CAAC,OAAO,CAAC,KAAU;YAC7B,OAAO,gBAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;KACF;IAED,MAAM,oBAAqB,SAAQ,yBAAW;QACrC,KAAK,CAAC,OAAO,CAAC,KAAU;YAC7B,OAAO,gBAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAClG,CAAC;KACF;IAQD,IAAa,QAAQ,GAArB,MAAa,QAAQ;KAAG,CAAA;IAAX,QAAQ;QANpB,IAAA,mBAAM,EAAC;YACN,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,UAAU;SACpB,CAAC;QACD,IAAA,qBAAQ,EAAC,oBAAoB,CAAC;OAClB,QAAQ,CAAG;IAAX,iBAAQ,WAAG,CAAA;IAGxB,IAAa,QAAQ,GAArB,MAAa,QAAQ;KAAG,CAAA;IAAX,QAAQ;QADpB,IAAA,qBAAQ,EAAC,oBAAoB,CAAC;OAClB,QAAQ,CAAG;IAAX,iBAAQ,WAAG,CAAA;IAOxB,IAAa,OAAO,GAApB,MAAa,OAAO;KAAG,CAAA;IAAV,OAAO;QALnB,IAAA,mBAAM,EAAC;YACN,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,eAAe;SACxB,CAAC;QACD,IAAA,qBAAQ,EAAC,mBAAmB,CAAC;OACjB,OAAO,CAAG;IAAV,gBAAO,UAAG,CAAA;AACzB,CAAC,EApCgB,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAoCxB"}
package/lib/index.d.ts CHANGED
@@ -2,6 +2,6 @@ export * from './interfaces';
2
2
  export * from './response-methods';
3
3
  export * from './decorators';
4
4
  export * from './responses';
5
+ export * from './route-args';
5
6
  export * from './controllers';
6
7
  export * from './server';
7
- export * from './dto';
package/lib/index.js CHANGED
@@ -1,20 +1,25 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
8
12
  }));
9
13
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
15
  };
12
16
  Object.defineProperty(exports, "__esModule", { value: true });
13
17
  __exportStar(require("./interfaces"), exports);
14
18
  __exportStar(require("./response-methods"), exports);
19
+ //export * from './hydrators/datetime';
15
20
  __exportStar(require("./decorators"), exports);
16
21
  __exportStar(require("./responses"), exports);
22
+ __exportStar(require("./route-args"), exports);
17
23
  __exportStar(require("./controllers"), exports);
18
24
  __exportStar(require("./server"), exports);
19
- __exportStar(require("./dto"), exports);
20
25
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAA6B;AAC7B,qDAAmC;AACnC,+CAA6B;AAC7B,8CAA4B;AAC5B,gDAA8B;AAC9B,2CAAyB;AACzB,wCAAsB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,qDAAmC;AACnC,uCAAuC;AACvC,+CAA6B;AAC7B,8CAA4B;AAC5B,+CAA6B;AAC7B,gDAA8B;AAC9B,2CAAyB"}
@@ -143,6 +143,12 @@ export declare enum RouteType {
143
143
  FILE = "file",
144
144
  UNKNOWN = "unknown"
145
145
  }
146
+ export declare enum UuidVersion {
147
+ v1 = 0,
148
+ v3 = 1,
149
+ v4 = 2,
150
+ v5 = 3
151
+ }
146
152
  /**
147
153
  * Avaible route parameters type
148
154
  */
@@ -150,44 +156,59 @@ export declare enum ParameterType {
150
156
  /**
151
157
  * Parameter is injected from DI container & resolved
152
158
  */
153
- FromDi = 0,
159
+ FromDi = "FromDi",
154
160
  /**
155
161
  * Parameter value is taken from query string eg. `?name=flavio`
156
162
  */
157
- FromQuery = 1,
163
+ FromQuery = "FromQuery",
158
164
  /**
159
165
  * From message body, eg. POST json object
160
166
  */
161
- FromBody = 2,
167
+ FromBody = "FromBody",
162
168
  /**
163
169
  * From url params eg: `/:id`
164
170
  */
165
- FromParams = 3,
171
+ FromParams = "FromParams",
166
172
  /**
167
173
  * From form file field
168
174
  */
169
- FromFile = 4,
175
+ FromFile = "FromFile",
170
176
  /**
171
177
  * From form
172
178
  */
173
- FromForm = 5,
179
+ FromForm = "FromForm",
180
+ /**
181
+ * From cvs file
182
+ */
183
+ FromCSV = "FromCSV",
184
+ /**
185
+ * From JSON file
186
+ */
187
+ FromJSONFile = "FromJSONFile",
174
188
  /**
175
189
  * From form field
176
190
  */
177
- FormField = 6,
191
+ FormField = "FromFormField",
178
192
  /**
179
193
  * From model object
180
194
  */
181
- FromModel = 7,
195
+ FromModel = "FromModel",
182
196
  /**
183
197
  * Data from coockie
184
198
  */
185
- FromCookie = 8,
199
+ FromCookie = "FromCookie",
200
+ /**
201
+ * From http header
202
+ */
203
+ FromHeader = "FromHeader",
186
204
  /**
187
205
  * Req from express
188
206
  */
189
- Req = 9,
190
- Res = 10
207
+ Req = "Req",
208
+ Res = "Res"
209
+ }
210
+ export interface IFormOptions {
211
+ multiples: boolean;
191
212
  }
192
213
  export interface IFormOptions {
193
214
  /**
@@ -218,8 +239,8 @@ export interface IUploadOptions {
218
239
  multiples?: boolean;
219
240
  enabledPlugins?: string[];
220
241
  /**
221
- * default 200 * 1024 * 1024 (200mb); limit the size of uploaded file.
222
- */
242
+ * default 200 * 1024 * 1024 (200mb); limit the size of uploaded file.
243
+ */
223
244
  maxFileSize?: number;
224
245
  /**
225
246
  * default false; to include the extensions of the original files or not
@@ -237,7 +258,7 @@ export interface IRouteParameter {
237
258
  /**
238
259
  * Is value taken from query string, url params or message body
239
260
  */
240
- Type: ParameterType;
261
+ Type: ParameterType | string;
241
262
  /**
242
263
  * Schema for validation
243
264
  */
@@ -255,6 +276,14 @@ export interface IRouteParameter {
255
276
  */
256
277
  Name: string;
257
278
  }
279
+ /**
280
+ * Route action call spefici data. Used to pass data / arguments when parsing
281
+ * action parameters for specific call. Eg. to parse form data, and extract it
282
+ * as different arguments.
283
+ */
284
+ export interface IRouteCall {
285
+ Payload: any;
286
+ }
258
287
  export interface IRoute {
259
288
  /**
260
289
  * url path eg. /foo/bar/:id
@@ -385,11 +414,11 @@ export interface IControllerDescriptor {
385
414
  * to easily transform data for some client
386
415
  * eg. plain array to format that datatables.net can easily read
387
416
  */
388
- export declare abstract class DataTransformer<T, U> {
417
+ export declare abstract class DataTransformer<T = any, U = any> {
389
418
  /**
390
419
  * Transforms data from one format to another
391
420
  *
392
- * @param data input data
421
+ * @param data - input data
393
422
  */
394
423
  abstract transform(data: T, request: express.Request): U;
395
424
  abstract get Type(): string;
package/lib/interfaces.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DataTransformer = exports.BasePolicy = exports.BaseMiddleware = exports.ParameterType = exports.RouteType = exports.HTTP_STATUS_CODE = exports.HttpAcceptHeaders = void 0;
3
+ exports.DataTransformer = exports.BasePolicy = exports.BaseMiddleware = exports.ParameterType = exports.UuidVersion = exports.RouteType = exports.HTTP_STATUS_CODE = exports.HttpAcceptHeaders = void 0;
4
4
  /**
5
5
  * Accept header enum
6
6
  */
@@ -122,6 +122,13 @@ var RouteType;
122
122
  RouteType["FILE"] = "file";
123
123
  RouteType["UNKNOWN"] = "unknown";
124
124
  })(RouteType = exports.RouteType || (exports.RouteType = {}));
125
+ var UuidVersion;
126
+ (function (UuidVersion) {
127
+ UuidVersion[UuidVersion["v1"] = 0] = "v1";
128
+ UuidVersion[UuidVersion["v3"] = 1] = "v3";
129
+ UuidVersion[UuidVersion["v4"] = 2] = "v4";
130
+ UuidVersion[UuidVersion["v5"] = 3] = "v5";
131
+ })(UuidVersion = exports.UuidVersion || (exports.UuidVersion = {}));
125
132
  /**
126
133
  * Avaible route parameters type
127
134
  */
@@ -130,45 +137,57 @@ var ParameterType;
130
137
  /**
131
138
  * Parameter is injected from DI container & resolved
132
139
  */
133
- ParameterType[ParameterType["FromDi"] = 0] = "FromDi";
140
+ ParameterType["FromDi"] = "FromDi";
134
141
  /**
135
142
  * Parameter value is taken from query string eg. `?name=flavio`
136
143
  */
137
- ParameterType[ParameterType["FromQuery"] = 1] = "FromQuery";
144
+ ParameterType["FromQuery"] = "FromQuery";
138
145
  /**
139
146
  * From message body, eg. POST json object
140
147
  */
141
- ParameterType[ParameterType["FromBody"] = 2] = "FromBody";
148
+ ParameterType["FromBody"] = "FromBody";
142
149
  /**
143
150
  * From url params eg: `/:id`
144
151
  */
145
- ParameterType[ParameterType["FromParams"] = 3] = "FromParams";
152
+ ParameterType["FromParams"] = "FromParams";
146
153
  /**
147
154
  * From form file field
148
155
  */
149
- ParameterType[ParameterType["FromFile"] = 4] = "FromFile";
156
+ ParameterType["FromFile"] = "FromFile";
150
157
  /**
151
158
  * From form
152
159
  */
153
- ParameterType[ParameterType["FromForm"] = 5] = "FromForm";
160
+ ParameterType["FromForm"] = "FromForm";
161
+ /**
162
+ * From cvs file
163
+ */
164
+ ParameterType["FromCSV"] = "FromCSV";
165
+ /**
166
+ * From JSON file
167
+ */
168
+ ParameterType["FromJSONFile"] = "FromJSONFile";
154
169
  /**
155
170
  * From form field
156
171
  */
157
- ParameterType[ParameterType["FormField"] = 6] = "FormField";
172
+ ParameterType["FormField"] = "FromFormField";
158
173
  /**
159
174
  * From model object
160
175
  */
161
- ParameterType[ParameterType["FromModel"] = 7] = "FromModel";
176
+ ParameterType["FromModel"] = "FromModel";
162
177
  /**
163
178
  * Data from coockie
164
179
  */
165
- ParameterType[ParameterType["FromCookie"] = 8] = "FromCookie";
180
+ ParameterType["FromCookie"] = "FromCookie";
181
+ /**
182
+ * From http header
183
+ */
184
+ ParameterType["FromHeader"] = "FromHeader";
166
185
  /**
167
186
  * Req from express
168
187
  */
169
- ParameterType[ParameterType["Req"] = 9] = "Req";
188
+ ParameterType["Req"] = "Req";
170
189
  // Res from express
171
- ParameterType[ParameterType["Res"] = 10] = "Res";
190
+ ParameterType["Res"] = "Res";
172
191
  })(ParameterType = exports.ParameterType || (exports.ParameterType = {}));
173
192
  /**
174
193
  * Middlewares are classes that can change request object or perform specific task before & after route execution