@spinajs/http 1.2.115 → 1.2.135

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 (51) hide show
  1. package/lib/controllers.d.ts +5 -1
  2. package/lib/controllers.js +31 -20
  3. package/lib/controllers.js.map +1 -1
  4. package/lib/decorators.d.ts +16 -11
  5. package/lib/decorators.js +75 -37
  6. package/lib/decorators.js.map +1 -1
  7. package/lib/interfaces.d.ts +21 -4
  8. package/lib/interfaces.js +7 -3
  9. package/lib/interfaces.js.map +1 -1
  10. package/lib/middlewares/RequestId.d.ts +10 -0
  11. package/lib/middlewares/RequestId.js +36 -0
  12. package/lib/middlewares/RequestId.js.map +1 -0
  13. package/lib/middlewares/ResponseTime.d.ts +10 -0
  14. package/lib/middlewares/ResponseTime.js +40 -0
  15. package/lib/middlewares/ResponseTime.js.map +1 -0
  16. package/lib/response-methods/badRequest.d.ts +0 -1
  17. package/lib/response-methods/conflict.d.ts +0 -1
  18. package/lib/response-methods/cookieResponse.d.ts +0 -1
  19. package/lib/response-methods/created.d.ts +0 -1
  20. package/lib/response-methods/forbidden.d.ts +0 -1
  21. package/lib/response-methods/noContent.d.ts +0 -1
  22. package/lib/response-methods/notFound.d.ts +0 -1
  23. package/lib/response-methods/ok.d.ts +0 -1
  24. package/lib/response-methods/pug.d.ts +0 -1
  25. package/lib/response-methods/serverError.d.ts +0 -1
  26. package/lib/response-methods/unauthorized.d.ts +0 -1
  27. package/lib/route-args/ArgAsRequest.d.ts +0 -1
  28. package/lib/route-args/FromBody.js +1 -18
  29. package/lib/route-args/FromBody.js.map +1 -1
  30. package/lib/route-args/FromCookie.d.ts +2 -2
  31. package/lib/route-args/FromCookie.js +2 -2
  32. package/lib/route-args/FromCookie.js.map +1 -1
  33. package/lib/route-args/FromHeaderArg.d.ts +2 -2
  34. package/lib/route-args/FromHeaderArg.js +2 -2
  35. package/lib/route-args/FromHeaderArg.js.map +1 -1
  36. package/lib/route-args/FromParams.d.ts +2 -2
  37. package/lib/route-args/FromParams.js +2 -2
  38. package/lib/route-args/FromParams.js.map +1 -1
  39. package/lib/route-args/FromQuery.d.ts +2 -2
  40. package/lib/route-args/FromQuery.js +2 -2
  41. package/lib/route-args/FromQuery.js.map +1 -1
  42. package/lib/route-args/RouteArgs.d.ts +3 -1
  43. package/lib/route-args/RouteArgs.js +55 -11
  44. package/lib/route-args/RouteArgs.js.map +1 -1
  45. package/lib/schemas/RouteArgsSchemas.d.ts +24 -3
  46. package/lib/schemas/RouteArgsSchemas.js +11 -3
  47. package/lib/schemas/RouteArgsSchemas.js.map +1 -1
  48. package/lib/server.d.ts +2 -0
  49. package/lib/server.js +19 -0
  50. package/lib/server.js.map +1 -1
  51. package/package.json +9 -9
@@ -1,10 +1,12 @@
1
- import { IController, IControllerDescriptor } from './interfaces';
1
+ /// <reference types="node" />
2
+ import { IController, IControllerDescriptor, IActionLocalStoregeContext } from './interfaces';
2
3
  import { AsyncModule, IContainer } from '@spinajs/di';
3
4
  import * as express from 'express';
4
5
  import { ClassInfo } from '@spinajs/reflection';
5
6
  import { HttpServer } from './server';
6
7
  import { Log } from '@spinajs/log';
7
8
  import { DataValidator } from '@spinajs/validation';
9
+ import { AsyncLocalStorage } from 'node:async_hooks';
8
10
  export declare abstract class BaseController extends AsyncModule implements IController {
9
11
  /**
10
12
  * Array index getter
@@ -14,6 +16,7 @@ export declare abstract class BaseController extends AsyncModule implements ICon
14
16
  protected _container: IContainer;
15
17
  protected _validator: DataValidator;
16
18
  protected _log: Log;
19
+ protected _actionLocalStorage: AsyncLocalStorage<IActionLocalStoregeContext>;
17
20
  /**
18
21
  * Express router with middleware stack
19
22
  */
@@ -38,5 +41,6 @@ export declare class Controllers extends AsyncModule {
38
41
  protected Log: Log;
39
42
  protected Container: IContainer;
40
43
  protected Server: HttpServer;
44
+ register(controller: ClassInfo<BaseController>): Promise<void>;
41
45
  resolveAsync(): Promise<void>;
42
46
  }
@@ -42,6 +42,7 @@ const reflection_1 = require("@spinajs/reflection");
42
42
  const server_1 = require("./server");
43
43
  const log_1 = require("@spinajs/log");
44
44
  const validation_1 = require("@spinajs/validation");
45
+ const node_async_hooks_1 = require("node:async_hooks");
45
46
  class BaseController extends di_1.AsyncModule {
46
47
  /**
47
48
  * Express router with middleware stack
@@ -66,6 +67,7 @@ class BaseController extends di_1.AsyncModule {
66
67
  async resolveAsync() {
67
68
  const self = this;
68
69
  this._router = express.Router();
70
+ this._actionLocalStorage = new node_async_hooks_1.AsyncLocalStorage();
69
71
  for (const [, route] of this.Descriptor.Routes) {
70
72
  const handlers = [];
71
73
  let path = '';
@@ -93,7 +95,10 @@ class BaseController extends di_1.AsyncModule {
93
95
  const acionWrapper = async (req, res, next) => {
94
96
  try {
95
97
  const args = (await _extractRouteArgs(route, req, res)).concat([req, res, next]);
96
- res.locals.response = await this[route.Method].call(this, ...args);
98
+ const response = await this._actionLocalStorage.run(req.storage, () => {
99
+ return this[route.Method].call(this, ...args);
100
+ });
101
+ res.locals.response = response;
97
102
  next();
98
103
  }
99
104
  catch (err) {
@@ -160,7 +165,6 @@ class BaseController extends di_1.AsyncModule {
160
165
  throw new exceptions_1.UnexpectedServerError('invalid route parameter type for param: ' + param.Name);
161
166
  }
162
167
  const { Args } = await extractor.extract(callData, param, req, res, route);
163
- param.Schema ? self._validator.validate(param.Schema, Args) : self._validator.validate(Args);
164
168
  args[param.Index] = Args;
165
169
  }
166
170
  return args;
@@ -179,8 +183,32 @@ __decorate([
179
183
  (0, log_1.Logger)('http'),
180
184
  __metadata("design:type", log_1.Log)
181
185
  ], BaseController.prototype, "_log", void 0);
186
+ __decorate([
187
+ (0, di_1.Autoinject)(),
188
+ __metadata("design:type", node_async_hooks_1.AsyncLocalStorage)
189
+ ], BaseController.prototype, "_actionLocalStorage", void 0);
182
190
  exports.BaseController = BaseController;
183
191
  class Controllers extends di_1.AsyncModule {
192
+ async register(controller) {
193
+ this.Log.trace(`Loading controller: ${controller.name}`);
194
+ const compiler = new reflection_1.TypescriptCompiler(controller.file.replace('.js', '.d.ts'));
195
+ const members = compiler.getClassMembers(controller.name);
196
+ for (const [name, route] of controller.instance.Descriptor.Routes) {
197
+ if (members.has(name)) {
198
+ const member = members.get(name);
199
+ for (const [index, rParam] of route.Parameters) {
200
+ const parameterInfo = member.parameters[index];
201
+ if (parameterInfo) {
202
+ rParam.Name = parameterInfo.name.text;
203
+ }
204
+ }
205
+ }
206
+ else {
207
+ this.Log.error(`Controller ${controller.name} does not have member ${name} for route ${route.Path}`);
208
+ }
209
+ }
210
+ this.Server.use(controller.instance.Router);
211
+ }
184
212
  async resolveAsync() {
185
213
  /**
186
214
  * globally register controller validator, we use ajv lib
@@ -189,24 +217,7 @@ class Controllers extends di_1.AsyncModule {
189
217
  di_1.DI.register(validation_1.DataValidator).asSelf().singleInstance();
190
218
  // extract parameters info from controllers source code & register in http server
191
219
  for (const controller of await this.Controllers) {
192
- this.Log.trace(`Loading controller: ${controller.name}`);
193
- const compiler = new reflection_1.TypescriptCompiler(controller.file.replace('.js', '.d.ts'));
194
- const members = compiler.getClassMembers(controller.name);
195
- for (const [name, route] of controller.instance.Descriptor.Routes) {
196
- if (members.has(name)) {
197
- const member = members.get(name);
198
- for (const [index, rParam] of route.Parameters) {
199
- const parameterInfo = member.parameters[index];
200
- if (parameterInfo) {
201
- rParam.Name = parameterInfo.name.text;
202
- }
203
- }
204
- }
205
- else {
206
- this.Log.error(`Controller ${controller.name} does not have member ${name} for route ${route.Path}`);
207
- }
208
- }
209
- this.Server.use(controller.instance.Router);
220
+ this.register(controller);
210
221
  }
211
222
  }
212
223
  }
@@ -1 +1 @@
1
- {"version":3,"file":"controllers.js","sourceRoot":"","sources":["../src/controllers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controllers.js","sourceRoot":"","sources":["../src/controllers.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,11 @@ import { ParameterType, IControllerDescriptor, BasePolicy, BaseMiddleware, IRout
3
3
  import { ArgHydrator } from './route-args/ArgHydrator';
4
4
  export declare const CONTROLLED_DESCRIPTOR_SYMBOL: unique symbol;
5
5
  export declare function Route(callback: (controller: IControllerDescriptor, route: IRoute, target: any, propertyKey?: string, indexOrDescriptor?: number | PropertyDescriptor) => void): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
6
+ /**
7
+ * Ugly hack to specify type for route args. Mostly used to define type of array, becouse typescript does not
8
+ * have information about this.
9
+ */
10
+ export declare function Type(type: any): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
6
11
  export declare function Parameter(type: ParameterType | string, schema?: any, options?: any): (_: IControllerDescriptor, route: IRoute, target: any, propertyKey: string, index: number) => void;
7
12
  /**
8
13
  * Tells controller how to fill up incoming parameters in controller actions
@@ -26,14 +31,14 @@ export declare function Query(schema?: any): (target: any, propertyKey?: string
26
31
  *
27
32
  * @param schema - parameter json schema for optional validation
28
33
  */
29
- export declare function Body(schema?: any): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
34
+ export declare function Body(): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
30
35
  /**
31
36
  * Route parameter taken from url parameters eg. route/:id
32
37
  *
33
38
  * @param schema - parameter json schema for optional validation
34
39
  */
35
40
  export declare function Param(schema?: any): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
36
- export declare function FromModel(schema?: any): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
41
+ export declare function FromModel(): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
37
42
  /**
38
43
  * Gets parameter from request header. If not keyname is provided
39
44
  * variable name is used as header key name
@@ -57,21 +62,21 @@ export declare function File(options?: IUploadOptions): (target: any, propertyKe
57
62
  * @param cvsParseOptions - cvs parser options
58
63
  * @param schema - optional schema for data validation
59
64
  */
60
- export declare function CsvFile(options?: IUploadOptions, cvsParseOptions?: any, schema?: any): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
65
+ export declare function CsvFile(options?: IUploadOptions, cvsParseOptions?: any): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
61
66
  /**
62
67
  * Data taken from cvs file that is uploaded. Actions receives parsed data
63
68
  *
64
69
  * @param options - upload options
65
70
  * @param schema - optional schema for data validation
66
71
  */
67
- export declare function JsonFile(options?: IUploadOptions, schema?: any): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
72
+ export declare function JsonFile(options?: IUploadOptions): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
68
73
  /**
69
74
  *
70
75
  * Parameter taken from form data (multipart-form)
71
76
  *
72
77
  * @param options - upload options
73
78
  */
74
- export declare function Form(schema?: any, options?: IFormOptions): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
79
+ export declare function Form(options?: IFormOptions): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
75
80
  /**
76
81
  *
77
82
  * Parameter taken from form data (multipart-form)
@@ -121,31 +126,31 @@ export declare function Cookie(): (target: any, propertyKey?: string | symbol, i
121
126
  * Creates HEAD http request method
122
127
  * @param path - url path to method eg. /foo/bar/:id
123
128
  */
124
- export declare function Head(path?: string): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
129
+ export declare function Head(path?: string, schema?: any): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
125
130
  /**
126
131
  * Creates PATCH http request method
127
132
  * @param path - url path to method eg. /foo/bar/:id
128
133
  */
129
- export declare function Patch(path?: string): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
134
+ export declare function Patch(path?: string, schema?: any): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
130
135
  /**
131
136
  * Creates DELETE http request method
132
137
  * @param path - url path to method eg. /foo/bar/:id
133
138
  * @param routeName - route name visible in api. If undefined, method name is taken
134
139
  */
135
- export declare function Del(path?: string): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
140
+ export declare function Del(path?: string, schema?: any): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
136
141
  /**
137
142
  * Creates PUT http request method
138
143
  * @param path - url path to method eg. /foo/bar/:id
139
144
  */
140
- export declare function Put(path?: string): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
145
+ export declare function Put(path?: string, schema?: any): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
141
146
  /**
142
147
  * Creates GET http request method
143
148
  * @param path - url path to method eg. /foo/bar/:id
144
149
  */
145
- export declare function Get(path?: string): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
150
+ export declare function Get(path?: string, schema?: any): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
146
151
  /**
147
152
  * Creates POST http request method
148
153
  *
149
154
  * @param path - url path to method eg. /foo/bar
150
155
  */
151
- export declare function Post(path?: string): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
156
+ export declare function Post(path?: string, schema?: any): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
package/lib/decorators.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
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;
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.Type = exports.Route = exports.CONTROLLED_DESCRIPTOR_SYMBOL = void 0;
4
4
  const interfaces_1 = require("./interfaces");
5
5
  const RouteArgsSchemas_1 = require("./schemas/RouteArgsSchemas");
6
6
  exports.CONTROLLED_DESCRIPTOR_SYMBOL = Symbol('CONTROLLER_SYMBOL');
@@ -38,6 +38,7 @@ function Route(callback) {
38
38
  Policies: [],
39
39
  Type: interfaces_1.RouteType.UNKNOWN,
40
40
  Options: null,
41
+ Schema: null,
41
42
  };
42
43
  }
43
44
  metadata.Routes.set(propertyKey, route);
@@ -48,31 +49,62 @@ function Route(callback) {
48
49
  });
49
50
  }
50
51
  exports.Route = Route;
52
+ /**
53
+ * Ugly hack to specify type for route args. Mostly used to define type of array, becouse typescript does not
54
+ * have information about this.
55
+ */
56
+ function Type(type) {
57
+ return Route((_, route, _target, _propertyKey, index) => {
58
+ if (route.Parameters.has(index)) {
59
+ route.Parameters.get(index).RuntimeType = type;
60
+ }
61
+ else {
62
+ const param = {
63
+ Index: index,
64
+ Name: '',
65
+ RuntimeType: type,
66
+ RouteParamSchema: '',
67
+ Options: null,
68
+ Type: null,
69
+ };
70
+ route.Parameters.set(index, param);
71
+ }
72
+ });
73
+ }
74
+ exports.Type = Type;
51
75
  function Parameter(type, schema, options) {
52
76
  return (_, route, target, propertyKey, index) => {
53
77
  const rType = Reflect.getMetadata('design:paramtypes', target.prototype || target, propertyKey)[index];
54
78
  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
- }
79
+ switch (rType.name) {
80
+ case 'Number':
81
+ tSchema = RouteArgsSchemas_1.ROUTE_ARG_SCHEMA.Number;
82
+ break;
83
+ case 'String':
84
+ tSchema = RouteArgsSchemas_1.ROUTE_ARG_SCHEMA.String;
85
+ break;
86
+ case 'Boolean':
87
+ tSchema = RouteArgsSchemas_1.ROUTE_ARG_SCHEMA.Boolean;
88
+ }
89
+ if (route.Parameters.has(index)) {
90
+ const p = route.Parameters.get(index);
91
+ p.Type = type;
92
+ p.Options = options;
93
+ p.RouteParamSchema = tSchema;
94
+ p.Schema = schema;
95
+ }
96
+ else {
97
+ const param = {
98
+ Index: index,
99
+ Name: '',
100
+ RuntimeType: rType,
101
+ RouteParamSchema: tSchema,
102
+ Schema: schema,
103
+ Options: options,
104
+ Type: type,
105
+ };
106
+ route.Parameters.set(index, param);
66
107
  }
67
- const param = {
68
- Index: index,
69
- Name: '',
70
- RuntimeType: rType,
71
- Schema: schema !== null && schema !== void 0 ? schema : tSchema,
72
- Options: options,
73
- Type: type,
74
- };
75
- route.Parameters.set(index, param);
76
108
  };
77
109
  }
78
110
  exports.Parameter = Parameter;
@@ -147,8 +179,8 @@ exports.Query = Query;
147
179
  *
148
180
  * @param schema - parameter json schema for optional validation
149
181
  */
150
- function Body(schema) {
151
- return Route(Parameter(interfaces_1.ParameterType.FromBody, schema));
182
+ function Body() {
183
+ return Route(Parameter(interfaces_1.ParameterType.FromBody, null));
152
184
  }
153
185
  exports.Body = Body;
154
186
  /**
@@ -160,8 +192,8 @@ function Param(schema) {
160
192
  return Route(Parameter(interfaces_1.ParameterType.FromParams, schema));
161
193
  }
162
194
  exports.Param = Param;
163
- function FromModel(schema) {
164
- return Route(Parameter(interfaces_1.ParameterType.FromModel, schema));
195
+ function FromModel() {
196
+ return Route(Parameter(interfaces_1.ParameterType.FromModel, null));
165
197
  }
166
198
  exports.FromModel = FromModel;
167
199
  /**
@@ -193,8 +225,8 @@ exports.File = File;
193
225
  * @param cvsParseOptions - cvs parser options
194
226
  * @param schema - optional schema for data validation
195
227
  */
196
- function CsvFile(options, cvsParseOptions, schema) {
197
- return Route(Parameter(interfaces_1.ParameterType.FromCSV, schema, {
228
+ function CsvFile(options, cvsParseOptions) {
229
+ return Route(Parameter(interfaces_1.ParameterType.FromCSV, null, {
198
230
  uploadOptions: options,
199
231
  cvsOptions: cvsParseOptions,
200
232
  }));
@@ -206,8 +238,8 @@ exports.CsvFile = CsvFile;
206
238
  * @param options - upload options
207
239
  * @param schema - optional schema for data validation
208
240
  */
209
- function JsonFile(options, schema) {
210
- return Route(Parameter(interfaces_1.ParameterType.FromJSONFile, schema, options));
241
+ function JsonFile(options) {
242
+ return Route(Parameter(interfaces_1.ParameterType.FromJSONFile, null, options));
211
243
  }
212
244
  exports.JsonFile = JsonFile;
213
245
  /**
@@ -216,8 +248,8 @@ exports.JsonFile = JsonFile;
216
248
  *
217
249
  * @param options - upload options
218
250
  */
219
- function Form(schema, options) {
220
- return Route(Parameter(interfaces_1.ParameterType.FromForm, schema, options));
251
+ function Form(options) {
252
+ return Route(Parameter(interfaces_1.ParameterType.FromForm, options));
221
253
  }
222
254
  exports.Form = Form;
223
255
  /**
@@ -292,11 +324,12 @@ exports.Cookie = Cookie;
292
324
  * Creates HEAD http request method
293
325
  * @param path - url path to method eg. /foo/bar/:id
294
326
  */
295
- function Head(path) {
327
+ function Head(path, schema) {
296
328
  return Route((_, route) => {
297
329
  route.Type = interfaces_1.RouteType.HEAD;
298
330
  route.InternalType = interfaces_1.RouteType.HEAD;
299
331
  route.Path = path;
332
+ route.Schema = schema;
300
333
  });
301
334
  }
302
335
  exports.Head = Head;
@@ -304,11 +337,12 @@ exports.Head = Head;
304
337
  * Creates PATCH http request method
305
338
  * @param path - url path to method eg. /foo/bar/:id
306
339
  */
307
- function Patch(path) {
340
+ function Patch(path, schema) {
308
341
  return Route((_, route) => {
309
342
  route.Type = interfaces_1.RouteType.PATCH;
310
343
  route.InternalType = interfaces_1.RouteType.PATCH;
311
344
  route.Path = path;
345
+ route.Schema = schema;
312
346
  });
313
347
  }
314
348
  exports.Patch = Patch;
@@ -317,11 +351,12 @@ exports.Patch = Patch;
317
351
  * @param path - url path to method eg. /foo/bar/:id
318
352
  * @param routeName - route name visible in api. If undefined, method name is taken
319
353
  */
320
- function Del(path) {
354
+ function Del(path, schema) {
321
355
  return Route((_, route) => {
322
356
  route.Type = interfaces_1.RouteType.DELETE;
323
357
  route.InternalType = interfaces_1.RouteType.DELETE;
324
358
  route.Path = path;
359
+ route.Schema = schema;
325
360
  });
326
361
  }
327
362
  exports.Del = Del;
@@ -329,11 +364,12 @@ exports.Del = Del;
329
364
  * Creates PUT http request method
330
365
  * @param path - url path to method eg. /foo/bar/:id
331
366
  */
332
- function Put(path) {
367
+ function Put(path, schema) {
333
368
  return Route((_, route) => {
334
369
  route.Type = interfaces_1.RouteType.PUT;
335
370
  route.InternalType = interfaces_1.RouteType.PUT;
336
371
  route.Path = path;
372
+ route.Schema = schema;
337
373
  });
338
374
  }
339
375
  exports.Put = Put;
@@ -341,11 +377,12 @@ exports.Put = Put;
341
377
  * Creates GET http request method
342
378
  * @param path - url path to method eg. /foo/bar/:id
343
379
  */
344
- function Get(path) {
380
+ function Get(path, schema) {
345
381
  return Route((_, route) => {
346
382
  route.Type = interfaces_1.RouteType.GET;
347
383
  route.InternalType = interfaces_1.RouteType.GET;
348
384
  route.Path = path;
385
+ route.Schema = schema;
349
386
  });
350
387
  }
351
388
  exports.Get = Get;
@@ -354,11 +391,12 @@ exports.Get = Get;
354
391
  *
355
392
  * @param path - url path to method eg. /foo/bar
356
393
  */
357
- function Post(path) {
394
+ function Post(path, schema) {
358
395
  return Route((_, route) => {
359
396
  route.Type = interfaces_1.RouteType.POST;
360
397
  route.InternalType = interfaces_1.RouteType.POST;
361
398
  route.Path = path;
399
+ route.Schema = schema;
362
400
  });
363
401
  }
364
402
  exports.Post = Post;
@@ -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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"}
@@ -1,5 +1,5 @@
1
1
  import * as express from 'express';
2
- import { Constructor } from '@spinajs/di';
2
+ import { Constructor, AsyncModule } from '@spinajs/di';
3
3
  import { Configuration } from '@spinajs/configuration';
4
4
  /**
5
5
  * Accept header enum
@@ -46,6 +46,18 @@ export interface IUploadedFile {
46
46
  LastModifiedDate?: Date;
47
47
  Hash?: string;
48
48
  }
49
+ export interface Request extends express.Request {
50
+ storage: IActionLocalStoregeContext;
51
+ }
52
+ export interface IActionLocalStoregeContext {
53
+ requestId: string;
54
+ responseStart: Date;
55
+ }
56
+ export declare abstract class ServerMiddleware extends AsyncModule {
57
+ Order: number;
58
+ abstract before(): (req: express.Request, res: express.Response, next: express.NextFunction) => void | null;
59
+ abstract after(): (req: express.Request, res: express.Response, next: express.NextFunction) => void | null;
60
+ }
49
61
  /**
50
62
  * HTTP response statuses
51
63
  */
@@ -204,8 +216,8 @@ export declare enum ParameterType {
204
216
  /**
205
217
  * Req from express
206
218
  */
207
- Req = "Req",
208
- Res = "Res"
219
+ Req = "ArgAsRequest",
220
+ Res = "ArgAsResponse"
209
221
  }
210
222
  export interface IFormOptions {
211
223
  multiples: boolean;
@@ -260,7 +272,11 @@ export interface IRouteParameter {
260
272
  */
261
273
  Type: ParameterType | string;
262
274
  /**
263
- * Schema for validation
275
+ * Schema for validation parameter ( raw value eg. to check if matches string / number constrain)
276
+ */
277
+ RouteParamSchema?: any;
278
+ /**
279
+ * Schema for paramater
264
280
  */
265
281
  Schema?: any;
266
282
  /**
@@ -318,6 +334,7 @@ export interface IRoute {
318
334
  * Additional route options eg. file size etc.
319
335
  */
320
336
  Options: any;
337
+ Schema: any;
321
338
  }
322
339
  export interface IMiddlewareDescriptor {
323
340
  Type: Constructor<BaseMiddleware>;
package/lib/interfaces.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DataTransformer = exports.BasePolicy = exports.BaseMiddleware = exports.ParameterType = exports.UuidVersion = 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.ServerMiddleware = exports.HttpAcceptHeaders = void 0;
4
+ const di_1 = require("@spinajs/di");
4
5
  /**
5
6
  * Accept header enum
6
7
  */
@@ -23,6 +24,9 @@ var HttpAcceptHeaders;
23
24
  */
24
25
  HttpAcceptHeaders[HttpAcceptHeaders["ALL"] = 7] = "ALL";
25
26
  })(HttpAcceptHeaders = exports.HttpAcceptHeaders || (exports.HttpAcceptHeaders = {}));
27
+ class ServerMiddleware extends di_1.AsyncModule {
28
+ }
29
+ exports.ServerMiddleware = ServerMiddleware;
26
30
  /**
27
31
  * HTTP response statuses
28
32
  */
@@ -185,9 +189,9 @@ var ParameterType;
185
189
  /**
186
190
  * Req from express
187
191
  */
188
- ParameterType["Req"] = "Req";
192
+ ParameterType["Req"] = "ArgAsRequest";
189
193
  // Res from express
190
- ParameterType["Res"] = "Res";
194
+ ParameterType["Res"] = "ArgAsResponse";
191
195
  })(ParameterType = exports.ParameterType || (exports.ParameterType = {}));
192
196
  /**
193
197
  * Middlewares are classes that can change request object or perform specific task before & after route execution
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;AAIA;;GAEG;AACH,IAAY,iBAoBX;AApBD,WAAY,iBAAiB;IAC3B;;OAEG;IACH,yDAAQ,CAAA;IAER;;OAEG;IACH,yDAAQ,CAAA;IAER;;OAEG;IACH,uDAAO,CAAA;IAEP;;OAEG;IACH,uDAAe,CAAA;AACjB,CAAC,EApBW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAoB5B;AA6BD;;GAEG;AACH,IAAY,gBAwEX;AAxED,WAAY,gBAAgB;IAC1B;;OAEG;IACH,qDAAQ,CAAA;IAER;;OAEG;IACH,+DAAa,CAAA;IAEb;;OAEG;IACH,iEAAc,CAAA;IAEd;;OAEG;IACH,qEAAgB,CAAA;IAEhB;;;;OAIG;IACH,+EAAqB,CAAA;IAErB;;OAEG;IACH,yEAAkB,CAAA;IAElB;;OAEG;IACH,uEAAiB,CAAA;IAEjB;;OAEG;IACH,yEAAkB,CAAA;IAElB;;OAEG;IACH,mEAAe,CAAA;IAEf;;OAEG;IACH,mEAAe,CAAA;IAEf;;OAEG;IACH,6EAAoB,CAAA;IAEpB;;OAEG;IACH,iEAAc,CAAA;IAEd;;OAEG;IACH,6EAAoB,CAAA;IAEpB;;OAEG;IACH,+EAAqB,CAAA;AACvB,CAAC,EAxEW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAwE3B;AAED;;GAEG;AACH,IAAY,SAqCX;AArCD,WAAY,SAAS;IACnB;;OAEG;IACH,0BAAa,CAAA;IAEb;;OAEG;IACH,wBAAW,CAAA;IAEX;;OAEG;IACH,wBAAW,CAAA;IAEX;;OAEG;IACH,8BAAiB,CAAA;IAEjB;;OAEG;IACH,4BAAe,CAAA;IAEf;;OAEG;IACH,0BAAa,CAAA;IAEb;;OAEG;IACH,0BAAa,CAAA;IAEb,gCAAmB,CAAA;AACrB,CAAC,EArCW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAqCpB;AAED,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,yCAAE,CAAA;IACF,yCAAE,CAAA;IACF,yCAAE,CAAA;IACF,yCAAE,CAAA;AACJ,CAAC,EALW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAKtB;AAED;;GAEG;AACH,IAAY,aAoEX;AApED,WAAY,aAAa;IACvB;;OAEG;IACH,kCAAiB,CAAA;IAEjB;;OAEG;IACH,wCAAuB,CAAA;IAEvB;;OAEG;IACH,sCAAqB,CAAA;IAErB;;OAEG;IACH,0CAAyB,CAAA;IAEzB;;OAEG;IACH,sCAAqB,CAAA;IAErB;;OAEG;IACH,sCAAqB,CAAA;IAErB;;OAEG;IACH,oCAAmB,CAAA;IAEnB;;OAEG;IACH,8CAA6B,CAAA;IAE7B;;OAEG;IACH,4CAA2B,CAAA;IAE3B;;OAEG;IACH,wCAAuB,CAAA;IAEvB;;OAEG;IACH,0CAAyB,CAAA;IAEzB;;OAEG;IACH,0CAAyB,CAAA;IAEzB;;OAEG;IACH,4BAAW,CAAA;IAEX,mBAAmB;IACnB,4BAAW,CAAA;AACb,CAAC,EApEW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAoExB;AAmKD;;;GAGG;AACH,MAAsB,cAAc;CAenC;AAfD,wCAeC;AAWD;;;;GAIG;AACH,MAAsB,UAAU;CAgB/B;AAhBD,gCAgBC;AA2BD;;;;;;;GAOG;AACH,MAAsB,eAAe;CASpC;AATD,0CASC"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;AACA,oCAAuD;AAGvD;;GAEG;AACH,IAAY,iBAoBX;AApBD,WAAY,iBAAiB;IAC3B;;OAEG;IACH,yDAAQ,CAAA;IAER;;OAEG;IACH,yDAAQ,CAAA;IAER;;OAEG;IACH,uDAAO,CAAA;IAEP;;OAEG;IACH,uDAAe,CAAA;AACjB,CAAC,EApBW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAoB5B;AAsCD,MAAsB,gBAAiB,SAAQ,gBAAW;CAKzD;AALD,4CAKC;AAED;;GAEG;AACH,IAAY,gBAwEX;AAxED,WAAY,gBAAgB;IAC1B;;OAEG;IACH,qDAAQ,CAAA;IAER;;OAEG;IACH,+DAAa,CAAA;IAEb;;OAEG;IACH,iEAAc,CAAA;IAEd;;OAEG;IACH,qEAAgB,CAAA;IAEhB;;;;OAIG;IACH,+EAAqB,CAAA;IAErB;;OAEG;IACH,yEAAkB,CAAA;IAElB;;OAEG;IACH,uEAAiB,CAAA;IAEjB;;OAEG;IACH,yEAAkB,CAAA;IAElB;;OAEG;IACH,mEAAe,CAAA;IAEf;;OAEG;IACH,mEAAe,CAAA;IAEf;;OAEG;IACH,6EAAoB,CAAA;IAEpB;;OAEG;IACH,iEAAc,CAAA;IAEd;;OAEG;IACH,6EAAoB,CAAA;IAEpB;;OAEG;IACH,+EAAqB,CAAA;AACvB,CAAC,EAxEW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAwE3B;AAED;;GAEG;AACH,IAAY,SAqCX;AArCD,WAAY,SAAS;IACnB;;OAEG;IACH,0BAAa,CAAA;IAEb;;OAEG;IACH,wBAAW,CAAA;IAEX;;OAEG;IACH,wBAAW,CAAA;IAEX;;OAEG;IACH,8BAAiB,CAAA;IAEjB;;OAEG;IACH,4BAAe,CAAA;IAEf;;OAEG;IACH,0BAAa,CAAA;IAEb;;OAEG;IACH,0BAAa,CAAA;IAEb,gCAAmB,CAAA;AACrB,CAAC,EArCW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAqCpB;AAED,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,yCAAE,CAAA;IACF,yCAAE,CAAA;IACF,yCAAE,CAAA;IACF,yCAAE,CAAA;AACJ,CAAC,EALW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAKtB;AAED;;GAEG;AACH,IAAY,aAoEX;AApED,WAAY,aAAa;IACvB;;OAEG;IACH,kCAAiB,CAAA;IAEjB;;OAEG;IACH,wCAAuB,CAAA;IAEvB;;OAEG;IACH,sCAAqB,CAAA;IAErB;;OAEG;IACH,0CAAyB,CAAA;IAEzB;;OAEG;IACH,sCAAqB,CAAA;IAErB;;OAEG;IACH,sCAAqB,CAAA;IAErB;;OAEG;IACH,oCAAmB,CAAA;IAEnB;;OAEG;IACH,8CAA6B,CAAA;IAE7B;;OAEG;IACH,4CAA2B,CAAA;IAE3B;;OAEG;IACH,wCAAuB,CAAA;IAEvB;;OAEG;IACH,0CAAyB,CAAA;IAEzB;;OAEG;IACH,0CAAyB,CAAA;IAEzB;;OAEG;IACH,qCAAoB,CAAA;IAEpB,mBAAmB;IACnB,sCAAqB,CAAA;AACvB,CAAC,EApEW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAoExB;AA0KD;;;GAGG;AACH,MAAsB,cAAc;CAenC;AAfD,wCAeC;AAWD;;;;GAIG;AACH,MAAsB,UAAU;CAgB/B;AAhBD,gCAgBC;AA2BD;;;;;;;GAOG;AACH,MAAsB,eAAe;CASpC;AATD,0CASC"}
@@ -0,0 +1,10 @@
1
+ import { Request, Response, NextFunction } from 'express';
2
+ import { ParamsDictionary } from 'express-serve-static-core';
3
+ import { ParsedQs } from 'qs';
4
+ import { ServerMiddleware, Request as sRequest } from '../interfaces';
5
+ import * as express from 'express';
6
+ export declare class RequestId extends ServerMiddleware {
7
+ constructor();
8
+ after(): (_req: sRequest, _res: express.Response, _next: express.NextFunction) => void;
9
+ before(): (req: Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>, res: Response<any, Record<string, any>>, next: NextFunction) => void;
10
+ }