@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.
- package/README.md +11 -0
- package/lib/config/http.js +17 -17
- package/lib/config/http.js.map +1 -1
- package/lib/controllers.d.ts +6 -4
- package/lib/controllers.js +53 -184
- package/lib/controllers.js.map +1 -1
- package/lib/decorators.d.ts +51 -24
- package/lib/decorators.js +99 -40
- package/lib/decorators.js.map +1 -1
- package/lib/exceptions.d.ts +0 -0
- package/lib/exceptions.js +1 -0
- package/lib/exceptions.js.map +1 -0
- package/lib/http.d.ts +0 -0
- package/lib/http.js +1 -0
- package/lib/http.js.map +1 -0
- package/lib/hydrators/datetime.d.ts +8 -0
- package/lib/hydrators/datetime.js +63 -0
- package/lib/hydrators/datetime.js.map +1 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +8 -3
- package/lib/index.js.map +1 -1
- package/lib/interfaces.d.ts +45 -16
- package/lib/interfaces.js +31 -12
- package/lib/interfaces.js.map +1 -1
- package/lib/response-methods/badRequest.d.ts +3 -2
- package/lib/response-methods/badRequest.js +1 -1
- package/lib/response-methods/badRequest.js.map +1 -1
- package/lib/response-methods/conflict.d.ts +3 -2
- package/lib/response-methods/conflict.js +1 -1
- package/lib/response-methods/conflict.js.map +1 -1
- package/lib/response-methods/cookieResponse.d.ts +3 -2
- package/lib/response-methods/cookieResponse.js +9 -5
- package/lib/response-methods/cookieResponse.js.map +1 -1
- package/lib/response-methods/created.d.ts +3 -2
- package/lib/response-methods/created.js +1 -1
- package/lib/response-methods/created.js.map +1 -1
- package/lib/response-methods/file.d.ts +16 -2
- package/lib/response-methods/file.js +67 -5
- package/lib/response-methods/file.js.map +1 -1
- package/lib/response-methods/forbidden.d.ts +3 -2
- package/lib/response-methods/forbidden.js +1 -1
- package/lib/response-methods/forbidden.js.map +1 -1
- package/lib/response-methods/index.js +6 -2
- package/lib/response-methods/index.js.map +1 -1
- package/lib/response-methods/noContent.d.ts +3 -2
- package/lib/response-methods/noContent.js +1 -1
- package/lib/response-methods/noContent.js.map +1 -1
- package/lib/response-methods/notFound.d.ts +3 -2
- package/lib/response-methods/notFound.js +1 -1
- package/lib/response-methods/notFound.js.map +1 -1
- package/lib/response-methods/ok.d.ts +3 -2
- package/lib/response-methods/ok.js +1 -1
- package/lib/response-methods/ok.js.map +1 -1
- package/lib/response-methods/pug.d.ts +3 -2
- package/lib/response-methods/pug.js +1 -1
- package/lib/response-methods/pug.js.map +1 -1
- package/lib/response-methods/redirect.d.ts +2 -2
- package/lib/response-methods/redirect.js +2 -4
- package/lib/response-methods/redirect.js.map +1 -1
- package/lib/response-methods/serverError.d.ts +3 -2
- package/lib/response-methods/serverError.js +1 -1
- package/lib/response-methods/serverError.js.map +1 -1
- package/lib/response-methods/unauthorized.d.ts +3 -2
- package/lib/response-methods/unauthorized.js +1 -1
- package/lib/response-methods/unauthorized.js.map +1 -1
- package/lib/responses.d.ts +1 -1
- package/lib/responses.js +28 -11
- package/lib/responses.js.map +1 -1
- package/lib/route-args/ArgAsRequest.d.ts +11 -0
- package/lib/{transformers/PureFormatter.js → route-args/ArgAsRequest.js} +13 -12
- package/lib/route-args/ArgAsRequest.js.map +1 -0
- package/lib/route-args/ArgAsResponse.d.ts +10 -0
- package/lib/{dto/limit-dto.js → route-args/ArgAsResponse.js} +16 -18
- package/lib/route-args/ArgAsResponse.js.map +1 -0
- package/lib/route-args/ArgHydrator.d.ts +3 -0
- package/lib/route-args/ArgHydrator.js +7 -0
- package/lib/route-args/ArgHydrator.js.map +1 -0
- package/lib/route-args/FromBody.d.ts +10 -0
- package/lib/route-args/FromBody.js +44 -0
- package/lib/route-args/FromBody.js.map +1 -0
- package/lib/route-args/FromCoockie.d.ts +13 -0
- package/lib/route-args/FromCoockie.js +71 -0
- package/lib/route-args/FromCoockie.js.map +1 -0
- package/lib/route-args/FromCookie.d.ts +13 -0
- package/lib/route-args/FromCookie.js +74 -0
- package/lib/route-args/FromCookie.js.map +1 -0
- package/lib/route-args/FromDi.d.ts +14 -0
- package/lib/route-args/FromDi.js +35 -0
- package/lib/route-args/FromDi.js.map +1 -0
- package/lib/route-args/FromForm.d.ts +82 -0
- package/lib/route-args/FromForm.js +259 -0
- package/lib/route-args/FromForm.js.map +1 -0
- package/lib/route-args/FromHeaderArg.d.ts +12 -0
- package/lib/route-args/FromHeaderArg.js +30 -0
- package/lib/route-args/FromHeaderArg.js.map +1 -0
- package/lib/route-args/FromParams.d.ts +10 -0
- package/lib/route-args/FromParams.js +25 -0
- package/lib/route-args/FromParams.js.map +1 -0
- package/lib/route-args/FromQuery.d.ts +10 -0
- package/lib/{dto/order-dto.js → route-args/FromQuery.js} +16 -18
- package/lib/route-args/FromQuery.js.map +1 -0
- package/lib/route-args/RouteArgs.d.ts +19 -0
- package/lib/route-args/RouteArgs.js +64 -0
- package/lib/route-args/RouteArgs.js.map +1 -0
- package/lib/route-args/index.d.ts +11 -0
- package/lib/route-args/index.js +28 -0
- package/lib/route-args/index.js.map +1 -0
- package/lib/schemas/RouteArgsSchemas.d.ts +15 -0
- package/lib/schemas/RouteArgsSchemas.js +19 -0
- package/lib/schemas/RouteArgsSchemas.js.map +1 -0
- package/lib/server.d.ts +3 -2
- package/lib/server.js +30 -14
- package/lib/server.js.map +1 -1
- package/lib/transformers/PureTransformer.d.ts +1 -1
- package/lib/transformers/PureTransformer.js +2 -2
- package/lib/transformers/PureTransformer.js.map +1 -1
- package/package.json +27 -54
- package/lib/dto/index.d.ts +0 -2
- package/lib/dto/index.js +0 -15
- package/lib/dto/index.js.map +0 -1
- package/lib/dto/limit-dto.d.ts +0 -32
- package/lib/dto/limit-dto.js.map +0 -1
- package/lib/dto/order-dto.d.ts +0 -32
- package/lib/dto/order-dto.js.map +0 -1
- package/lib/schemas.d.ts +0 -24
- package/lib/schemas.js +0 -96
- package/lib/schemas.js.map +0 -1
- package/lib/static/favicon.ico +0 -0
- package/lib/static/style.css +0 -15
- package/lib/transformers/PureFormatter.d.ts +0 -7
- package/lib/transformers/PureFormatter.js.map +0 -1
- package/lib/views/responses/badRequest.pug +0 -13
- package/lib/views/responses/conflict.pug +0 -13
- package/lib/views/responses/forbidden.pug +0 -13
- package/lib/views/responses/noContent.pug +0 -13
- package/lib/views/responses/notFound.pug +0 -13
- package/lib/views/responses/ok.pug +0 -12
- package/lib/views/responses/serverError.pug +0 -13
- package/lib/views/responses/unauthorized.pug +0 -13
package/README.md
ADDED
package/lib/config/http.js
CHANGED
|
@@ -9,9 +9,9 @@ const cors = require('cors');
|
|
|
9
9
|
const path_1 = require("path");
|
|
10
10
|
const interfaces_1 = require("../interfaces");
|
|
11
11
|
function dir(path) {
|
|
12
|
-
return path_1.resolve(path_1.normalize(path_1.join(__dirname, path)));
|
|
12
|
+
return (0, path_1.resolve)((0, path_1.normalize)((0, path_1.join)(__dirname, path)));
|
|
13
13
|
}
|
|
14
|
-
const corsPath = path_1.resolve(path_1.normalize(path_1.join(process.cwd(), 'cors.json')));
|
|
14
|
+
const corsPath = (0, path_1.resolve)((0, path_1.normalize)((0, path_1.join)(process.cwd(), 'cors.json')));
|
|
15
15
|
const origins = require(corsPath);
|
|
16
16
|
const corsOptions = {
|
|
17
17
|
origin(origin, callback) {
|
|
@@ -19,7 +19,7 @@ const corsOptions = {
|
|
|
19
19
|
callback(null, true);
|
|
20
20
|
}
|
|
21
21
|
else {
|
|
22
|
-
callback(new Error(
|
|
22
|
+
callback(new Error('cors not allowed'));
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
25
|
credentials: true,
|
|
@@ -84,20 +84,20 @@ module.exports = {
|
|
|
84
84
|
* Last resort fatal error fallback template, embedded in code
|
|
85
85
|
* in case if we cannot render any static files
|
|
86
86
|
*/
|
|
87
|
-
FatalTemplate: `<html>
|
|
88
|
-
<head>
|
|
89
|
-
|
|
90
|
-
</head>
|
|
91
|
-
<body>
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
</body>
|
|
100
|
-
</html>`,
|
|
87
|
+
FatalTemplate: `<html>
|
|
88
|
+
<head>
|
|
89
|
+
<title>Oooops !</title>
|
|
90
|
+
</head>
|
|
91
|
+
<body>
|
|
92
|
+
<h1>HTTP 500 - Internal Server Error</h1>
|
|
93
|
+
<div>Looks like we're having some server issues.</div>
|
|
94
|
+
<hr />
|
|
95
|
+
<div>
|
|
96
|
+
Go back to the previous page and try again. If you think something is broken, report a problem with fallowing ticket number:
|
|
97
|
+
</div>
|
|
98
|
+
<h3> Ticket no. {ticket}</h3>
|
|
99
|
+
</body>
|
|
100
|
+
</html>`,
|
|
101
101
|
},
|
|
102
102
|
};
|
|
103
103
|
//# sourceMappingURL=http.js.map
|
package/lib/config/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/config/http.ts"],"names":[],"mappings":";;AAAA,kCAAkC;AAClC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACnC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAC9C,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAE7B,+BAAgD;AAChD,8CAAkD;AAElD,SAAS,GAAG,CAAC,IAAY;IACvB,OAAO,cAAO,
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/config/http.ts"],"names":[],"mappings":";;AAAA,kCAAkC;AAClC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACnC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAC9C,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAE7B,+BAAgD;AAChD,8CAAkD;AAElD,SAAS,GAAG,CAAC,IAAY;IACvB,OAAO,IAAA,cAAO,EAAC,IAAA,gBAAS,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,QAAQ,GAAG,IAAA,cAAO,EAAC,IAAA,gBAAS,EAAC,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AACtE,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAElC,MAAM,WAAW,GAAG;IAClB,MAAM,CAAC,MAAW,EAAE,QAAa;QAC/B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;YACtE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACtB;aAAM;YACL,QAAQ,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;SACzC;IACH,CAAC;IACD,WAAW,EAAE,IAAI;CAClB,CAAC;AAEF,MAAM,CAAC,OAAO,GAAG;IACf,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,OAAO,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC9B,KAAK,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC1B,WAAW,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;SACvC;KACF;IACD,MAAM,EAAE;QACN,MAAM,EAAE,aAAa;QACrB,OAAO,EAAE;YACP,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,IAAI;SACf;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI;QACV,WAAW,EAAE;YACX,MAAM,EAAE;YACR,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,KAAK;aACb,CAAC;YACF,OAAO,CAAC,UAAU,CAAC;gBACjB,QAAQ,EAAE,IAAI;aACf,CAAC;YACF,YAAY,EAAE;YACd,WAAW,EAAE;YACb,IAAI,CAAC,WAAW,CAAC;SAClB;QAED;;WAEG;QACH,KAAK,EAAE;YACL,OAAO,EAAE,IAAI,GAAG,IAAI;YAEpB,qFAAqF;YACrF,QAAQ,EAAE,GAAG,CAAC,oBAAoB,CAAC;SACpC;QAED;;WAEG;QACH,MAAM,EAAE;YACN;gBACE;;mBAEG;gBACH,KAAK,EAAE,SAAS;gBAEhB;;mBAEG;gBACH,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC;aACxB;SACF;QAED;;WAEG;QACH,aAAa,EAAE,8BAAiB,CAAC,IAAI,GAAG,8BAAiB,CAAC,IAAI;QAE9D;;;WAGG;QACH,aAAa,EAAE;;;;;;;;;;;;;4BAaS;KACzB;CACF,CAAC"}
|
package/lib/controllers.d.ts
CHANGED
|
@@ -4,14 +4,16 @@ import * as express from 'express';
|
|
|
4
4
|
import { ClassInfo } from '@spinajs/reflection';
|
|
5
5
|
import { HttpServer } from './server';
|
|
6
6
|
import { Log } from '@spinajs/log';
|
|
7
|
+
import { DataValidator } from '@spinajs/validation';
|
|
7
8
|
export declare abstract class BaseController extends AsyncModule implements IController {
|
|
8
9
|
/**
|
|
9
10
|
* Array index getter
|
|
10
11
|
*/
|
|
11
12
|
[action: string]: any;
|
|
12
13
|
protected _router: express.Router;
|
|
13
|
-
protected
|
|
14
|
-
protected
|
|
14
|
+
protected _container: IContainer;
|
|
15
|
+
protected _validator: DataValidator;
|
|
16
|
+
protected _log: Log;
|
|
15
17
|
/**
|
|
16
18
|
* Express router with middleware stack
|
|
17
19
|
*/
|
|
@@ -26,7 +28,7 @@ export declare abstract class BaseController extends AsyncModule implements ICon
|
|
|
26
28
|
* It can be defined via `@BasePath` decorator, defaults to controller name without `Controller` part.
|
|
27
29
|
*/
|
|
28
30
|
get BasePath(): string;
|
|
29
|
-
resolveAsync(
|
|
31
|
+
resolveAsync(): Promise<void>;
|
|
30
32
|
}
|
|
31
33
|
export declare class Controllers extends AsyncModule {
|
|
32
34
|
/**
|
|
@@ -36,5 +38,5 @@ export declare class Controllers extends AsyncModule {
|
|
|
36
38
|
protected Log: Log;
|
|
37
39
|
protected Container: IContainer;
|
|
38
40
|
protected Server: HttpServer;
|
|
39
|
-
resolveAsync(
|
|
41
|
+
resolveAsync(): Promise<void>;
|
|
40
42
|
}
|
package/lib/controllers.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
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.
|
|
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];
|
|
@@ -20,7 +24,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
20
24
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
21
25
|
if (mod && mod.__esModule) return mod;
|
|
22
26
|
var result = {};
|
|
23
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
27
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
24
28
|
__setModuleDefault(result, mod);
|
|
25
29
|
return result;
|
|
26
30
|
};
|
|
@@ -37,11 +41,7 @@ const exceptions_1 = require("@spinajs/exceptions");
|
|
|
37
41
|
const reflection_1 = require("@spinajs/reflection");
|
|
38
42
|
const server_1 = require("./server");
|
|
39
43
|
const log_1 = require("@spinajs/log");
|
|
40
|
-
const
|
|
41
|
-
const cs = __importStar(require("cookie-signature"));
|
|
42
|
-
const configuration_1 = require("@spinajs/configuration");
|
|
43
|
-
const schemas_1 = require("./schemas");
|
|
44
|
-
const lodash_1 = require("lodash");
|
|
44
|
+
const validation_1 = require("@spinajs/validation");
|
|
45
45
|
class BaseController extends di_1.AsyncModule {
|
|
46
46
|
/**
|
|
47
47
|
* Express router with middleware stack
|
|
@@ -63,13 +63,11 @@ class BaseController extends di_1.AsyncModule {
|
|
|
63
63
|
get BasePath() {
|
|
64
64
|
return this.Descriptor.BasePath ? this.Descriptor.BasePath : this.constructor.name.toLowerCase();
|
|
65
65
|
}
|
|
66
|
-
async resolveAsync(
|
|
66
|
+
async resolveAsync() {
|
|
67
67
|
const self = this;
|
|
68
|
-
this.Container = container;
|
|
69
68
|
this._router = express.Router();
|
|
70
69
|
for (const [, route] of this.Descriptor.Routes) {
|
|
71
70
|
const handlers = [];
|
|
72
|
-
const action = this[route.Method];
|
|
73
71
|
let path = '';
|
|
74
72
|
if (route.Path) {
|
|
75
73
|
if (route.Path === '/') {
|
|
@@ -83,18 +81,19 @@ class BaseController extends di_1.AsyncModule {
|
|
|
83
81
|
path = `/${this.BasePath}/${route.Method}`;
|
|
84
82
|
}
|
|
85
83
|
const middlewares = await Promise.all(this.Descriptor.Middlewares.concat(route.Middlewares || []).map((m) => {
|
|
86
|
-
return self.
|
|
84
|
+
return self._container.resolve(m.Type, m.Options);
|
|
87
85
|
}));
|
|
88
86
|
const policies = await Promise.all(this.Descriptor.Policies.concat(route.Policies || []).map((m) => {
|
|
89
|
-
return self.
|
|
87
|
+
return self._container.resolve(m.Type, m.Options);
|
|
90
88
|
}));
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
handlers.push(...
|
|
89
|
+
const enabledMiddlewares = middlewares.filter((m) => m.isEnabled(route, this));
|
|
90
|
+
this._log.trace(`Registering route ${route.Type.toUpperCase()} ${this.constructor.name}::${route.Method} at ${path}`);
|
|
91
|
+
handlers.push(...policies.filter((p) => p.isEnabled(route, this)).map((p) => _invokePolicyAction(p, p.execute.bind(p), route)));
|
|
92
|
+
handlers.push(...enabledMiddlewares.map((m) => _invokeAction(m, m.onBeforeAction.bind(m))));
|
|
94
93
|
const acionWrapper = async (req, res, next) => {
|
|
95
94
|
try {
|
|
96
95
|
const args = (await _extractRouteArgs(route, req, res)).concat([req, res, next]);
|
|
97
|
-
res.locals.response = await
|
|
96
|
+
res.locals.response = await this[route.Method].call(this, ...args);
|
|
98
97
|
next();
|
|
99
98
|
}
|
|
100
99
|
catch (err) {
|
|
@@ -106,7 +105,7 @@ class BaseController extends di_1.AsyncModule {
|
|
|
106
105
|
writable: true,
|
|
107
106
|
});
|
|
108
107
|
handlers.push(acionWrapper);
|
|
109
|
-
handlers.push(...
|
|
108
|
+
handlers.push(...enabledMiddlewares.map((m) => _invokeAction(m, m.onAfterAction.bind(m))));
|
|
110
109
|
// register to express router
|
|
111
110
|
this._router[route.InternalType](path, handlers);
|
|
112
111
|
}
|
|
@@ -131,7 +130,7 @@ class BaseController extends di_1.AsyncModule {
|
|
|
131
130
|
action(req, route, self)
|
|
132
131
|
.then(next)
|
|
133
132
|
.catch((err) => {
|
|
134
|
-
self.
|
|
133
|
+
self._log.trace(`route ${self.constructor.name}:${route.Method} ${self.BasePath}${route.Path} error ${err}, policy: ${source.constructor.name}`);
|
|
135
134
|
next(err);
|
|
136
135
|
});
|
|
137
136
|
};
|
|
@@ -143,185 +142,51 @@ class BaseController extends di_1.AsyncModule {
|
|
|
143
142
|
}
|
|
144
143
|
async function _extractRouteArgs(route, req, res) {
|
|
145
144
|
const args = new Array(route.Parameters.size);
|
|
146
|
-
let
|
|
145
|
+
let callData = {
|
|
146
|
+
Payload: {},
|
|
147
|
+
};
|
|
148
|
+
const argsCache = new Map();
|
|
149
|
+
let formCache = null;
|
|
147
150
|
for (const [, param] of route.Parameters) {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
case interfaces_1.ParameterType.FromParams:
|
|
154
|
-
source = req.params;
|
|
155
|
-
break;
|
|
156
|
-
case interfaces_1.ParameterType.FromQuery:
|
|
157
|
-
source = req.query;
|
|
158
|
-
break;
|
|
159
|
-
case interfaces_1.ParameterType.FromCookie:
|
|
160
|
-
source = req.cookies;
|
|
161
|
-
break;
|
|
162
|
-
case interfaces_1.ParameterType.FromModel:
|
|
163
|
-
source = await _extractModel(param.Options, param.RuntimeType, req);
|
|
164
|
-
break;
|
|
165
|
-
case interfaces_1.ParameterType.FromDi:
|
|
166
|
-
source = await _inject(param.RuntimeType, param.Options);
|
|
167
|
-
break;
|
|
168
|
-
case interfaces_1.ParameterType.FormField:
|
|
169
|
-
case interfaces_1.ParameterType.FromFile:
|
|
170
|
-
case interfaces_1.ParameterType.FromForm:
|
|
171
|
-
source = await _extractMultipart(param.Options, req, param.Type);
|
|
172
|
-
break;
|
|
173
|
-
case interfaces_1.ParameterType.Res:
|
|
174
|
-
args[param.Index] = res;
|
|
175
|
-
continue;
|
|
176
|
-
case interfaces_1.ParameterType.Req:
|
|
177
|
-
args[param.Index] = req;
|
|
178
|
-
continue;
|
|
179
|
-
}
|
|
180
|
-
// if parameter have name defined load it up
|
|
181
|
-
if (param.Name) {
|
|
182
|
-
// form fields goes to one
|
|
183
|
-
if (param.Type === interfaces_1.ParameterType.FromCookie) {
|
|
184
|
-
const secret = di_1.DI.get(configuration_1.Configuration).get('http.cookie.secret');
|
|
185
|
-
const val = source[param.Name];
|
|
186
|
-
if (!val) {
|
|
187
|
-
args[param.Index] = null;
|
|
188
|
-
}
|
|
189
|
-
else {
|
|
190
|
-
args[param.Index] = cs.unsign(val, secret);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
else if (param.Type === interfaces_1.ParameterType.FromFile) {
|
|
194
|
-
// map from formidable to our object
|
|
195
|
-
// of type IUploadedFile
|
|
196
|
-
const sourceFile = source[param.Name];
|
|
197
|
-
args[param.Index] = {
|
|
198
|
-
Size: sourceFile.size,
|
|
199
|
-
Path: sourceFile.path,
|
|
200
|
-
Name: sourceFile.name,
|
|
201
|
-
Type: sourceFile.type,
|
|
202
|
-
LastModifiedDate: sourceFile.lastModifiedDate,
|
|
203
|
-
Hash: sourceFile.hash
|
|
204
|
-
};
|
|
205
|
-
}
|
|
206
|
-
else if (param.Type === interfaces_1.ParameterType.FromForm || param.Type === interfaces_1.ParameterType.FromModel) {
|
|
207
|
-
args[param.Index] = source;
|
|
208
|
-
}
|
|
209
|
-
else {
|
|
210
|
-
args[param.Index] = source[param.Name];
|
|
151
|
+
if (!argsCache.has(param.Type)) {
|
|
152
|
+
const fArg = await di_1.DI.resolve(param.Type, formCache ? [formCache.Data] : []);
|
|
153
|
+
argsCache.set(param.Type, fArg);
|
|
154
|
+
if (!formCache && (param.Type === interfaces_1.ParameterType.FormField || param.Type === interfaces_1.ParameterType.FromCSV || param.Type === interfaces_1.ParameterType.FromJSONFile || param.Type === interfaces_1.ParameterType.FromForm || param.Type === interfaces_1.ParameterType.FromFile)) {
|
|
155
|
+
formCache = fArg;
|
|
211
156
|
}
|
|
212
157
|
}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
}
|
|
217
|
-
const dtoSchema = Reflect.getMetadata(decorators_1.SCHEMA_SYMBOL, param.RuntimeType);
|
|
218
|
-
let schema = dtoSchema !== null && dtoSchema !== void 0 ? dtoSchema : param.Schema;
|
|
219
|
-
// try gues schema if one of basic type
|
|
220
|
-
if (!schema) {
|
|
221
|
-
switch (param.RuntimeType.name) {
|
|
222
|
-
case "Number":
|
|
223
|
-
schema = {
|
|
224
|
-
type: "number"
|
|
225
|
-
};
|
|
226
|
-
break;
|
|
227
|
-
case "String":
|
|
228
|
-
schema = {
|
|
229
|
-
type: "string",
|
|
230
|
-
maxLength: 512
|
|
231
|
-
};
|
|
232
|
-
break;
|
|
233
|
-
case "Boolean":
|
|
234
|
-
schema = {
|
|
235
|
-
type: "boolean"
|
|
236
|
-
};
|
|
237
|
-
break;
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
// query params are always sent as strings, even numbers,
|
|
241
|
-
// we must try to parse them as integers / booleans first
|
|
242
|
-
if (param.RuntimeType.name === 'Number') {
|
|
243
|
-
args[param.Index] = Number(args[param.Index]);
|
|
244
|
-
}
|
|
245
|
-
if (param.RuntimeType.name === 'Boolean' && typeof args[param.Index] === "string") {
|
|
246
|
-
args[param.Index] = args[param.Index] === "true" ? true : false;
|
|
247
|
-
}
|
|
248
|
-
if (schema) {
|
|
249
|
-
const validator = await self.Container.resolve(schemas_1.DataValidator);
|
|
250
|
-
if (!validator) {
|
|
251
|
-
throw new exceptions_1.UnexpectedServerError('validation service is not avaible');
|
|
252
|
-
}
|
|
253
|
-
const result = validator.validate(schema, args[param.Index]);
|
|
254
|
-
if (!result.valid) {
|
|
255
|
-
if (schema.required || schema.required === undefined) {
|
|
256
|
-
throw new exceptions_1.ValidationFailed(`parameter validation error ${param.Name}`, {
|
|
257
|
-
param: param.Name,
|
|
258
|
-
errors: result.errors,
|
|
259
|
-
});
|
|
260
|
-
}
|
|
261
|
-
}
|
|
158
|
+
const extractor = argsCache.get(param.Type);
|
|
159
|
+
if (!extractor) {
|
|
160
|
+
throw new exceptions_1.UnexpectedServerError('invalid route parameter type for param: ' + param.Name);
|
|
262
161
|
}
|
|
162
|
+
const { Args } = await extractor.extract(callData, param, req, res, route);
|
|
163
|
+
param.Schema ? self._validator.validate(param.Schema, Args) : self._validator.validate(Args);
|
|
164
|
+
args[param.Index] = Args;
|
|
263
165
|
}
|
|
264
166
|
return args;
|
|
265
|
-
async function _inject(type, options) {
|
|
266
|
-
return await self.Container.resolve(type, options);
|
|
267
|
-
}
|
|
268
|
-
async function _extractModel(options, type, req) {
|
|
269
|
-
var _a, _b, _c;
|
|
270
|
-
if (type.find === undefined) {
|
|
271
|
-
throw new exceptions_1.NotSupported(`${type.name} does not support method find, make sure its model type`);
|
|
272
|
-
}
|
|
273
|
-
const key = (_a = options.KeyName) !== null && _a !== void 0 ? _a : 'Id';
|
|
274
|
-
const pkVal = (_c = (_b = req.params[key]) !== null && _b !== void 0 ? _b : req.query[key]) !== null && _c !== void 0 ? _c : req.body[key];
|
|
275
|
-
if (!pkVal) {
|
|
276
|
-
throw new exceptions_1.BadRequest(`key value invalid`);
|
|
277
|
-
}
|
|
278
|
-
return await type.find.call(null, [pkVal]);
|
|
279
|
-
}
|
|
280
|
-
async function _extractMultipart(options, req, type) {
|
|
281
|
-
if (!multipartsCache) {
|
|
282
|
-
multipartsCache = await _parse();
|
|
283
|
-
}
|
|
284
|
-
switch (type) {
|
|
285
|
-
case interfaces_1.ParameterType.FromFile:
|
|
286
|
-
return multipartsCache.files;
|
|
287
|
-
case interfaces_1.ParameterType.FromForm:
|
|
288
|
-
case interfaces_1.ParameterType.FormField:
|
|
289
|
-
return multipartsCache.fields;
|
|
290
|
-
}
|
|
291
|
-
async function _parse() {
|
|
292
|
-
const formOptions = options;
|
|
293
|
-
if (options && options.uploadDir && lodash_1.isFunction(options.uploadDir)) {
|
|
294
|
-
const cfg = di_1.DI.resolve(configuration_1.Configuration);
|
|
295
|
-
formOptions.uploadDir = await options.uploadDir(cfg);
|
|
296
|
-
}
|
|
297
|
-
const form = new formidable_1.IncomingForm(formOptions);
|
|
298
|
-
return new Promise((res, rej) => {
|
|
299
|
-
form.parse(req, (err, fields, files) => {
|
|
300
|
-
if (err) {
|
|
301
|
-
rej(err);
|
|
302
|
-
return;
|
|
303
|
-
}
|
|
304
|
-
res({ fields, files });
|
|
305
|
-
});
|
|
306
|
-
});
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
167
|
}
|
|
310
168
|
}
|
|
311
169
|
}
|
|
312
170
|
__decorate([
|
|
313
|
-
|
|
171
|
+
(0, di_1.Autoinject)(di_1.Container),
|
|
314
172
|
__metadata("design:type", Object)
|
|
315
|
-
], BaseController.prototype, "
|
|
173
|
+
], BaseController.prototype, "_container", void 0);
|
|
174
|
+
__decorate([
|
|
175
|
+
(0, di_1.Autoinject)(),
|
|
176
|
+
__metadata("design:type", validation_1.DataValidator)
|
|
177
|
+
], BaseController.prototype, "_validator", void 0);
|
|
178
|
+
__decorate([
|
|
179
|
+
(0, log_1.Logger)('http'),
|
|
180
|
+
__metadata("design:type", log_1.Log)
|
|
181
|
+
], BaseController.prototype, "_log", void 0);
|
|
316
182
|
exports.BaseController = BaseController;
|
|
317
183
|
class Controllers extends di_1.AsyncModule {
|
|
318
|
-
async resolveAsync(
|
|
319
|
-
this.Container = container;
|
|
184
|
+
async resolveAsync() {
|
|
320
185
|
/**
|
|
321
186
|
* globally register controller validator, we use ajv lib
|
|
322
187
|
* we use factory func register as singlegon
|
|
323
188
|
*/
|
|
324
|
-
di_1.DI.register(
|
|
189
|
+
di_1.DI.register(validation_1.DataValidator).asSelf().singleInstance();
|
|
325
190
|
// extract parameters info from controllers source code & register in http server
|
|
326
191
|
for (const controller of await this.Controllers) {
|
|
327
192
|
this.Log.trace(`Loading controller: ${controller.name}`);
|
|
@@ -346,15 +211,19 @@ class Controllers extends di_1.AsyncModule {
|
|
|
346
211
|
}
|
|
347
212
|
}
|
|
348
213
|
__decorate([
|
|
349
|
-
reflection_1.ResolveFromFiles('/**/!(*.d).{ts,js}', 'system.dirs.controllers'),
|
|
214
|
+
(0, reflection_1.ResolveFromFiles)('/**/!(*.d).{ts,js}', 'system.dirs.controllers'),
|
|
350
215
|
__metadata("design:type", Promise)
|
|
351
216
|
], Controllers.prototype, "Controllers", void 0);
|
|
352
217
|
__decorate([
|
|
353
|
-
log_1.Logger(
|
|
354
|
-
__metadata("design:type",
|
|
218
|
+
(0, log_1.Logger)('http'),
|
|
219
|
+
__metadata("design:type", log_1.Log)
|
|
355
220
|
], Controllers.prototype, "Log", void 0);
|
|
356
221
|
__decorate([
|
|
357
|
-
di_1.Autoinject(),
|
|
222
|
+
(0, di_1.Autoinject)(di_1.Container),
|
|
223
|
+
__metadata("design:type", Object)
|
|
224
|
+
], Controllers.prototype, "Container", void 0);
|
|
225
|
+
__decorate([
|
|
226
|
+
(0, di_1.Autoinject)(),
|
|
358
227
|
__metadata("design:type", server_1.HttpServer)
|
|
359
228
|
], Controllers.prototype, "Server", void 0);
|
|
360
229
|
exports.Controllers = Controllers;
|
package/lib/controllers.js.map
CHANGED
|
@@ -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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"}
|
package/lib/decorators.d.ts
CHANGED
|
@@ -1,62 +1,96 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Constructor } from '@spinajs/di';
|
|
2
|
+
import { ParameterType, IControllerDescriptor, BasePolicy, BaseMiddleware, IRoute, IUploadOptions, UuidVersion, IFormOptions } from './interfaces';
|
|
3
|
+
import { ArgHydrator } from './route-args/ArgHydrator';
|
|
2
4
|
export declare const CONTROLLED_DESCRIPTOR_SYMBOL: unique symbol;
|
|
3
|
-
export declare
|
|
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
|
+
export declare function Parameter(type: ParameterType | string, schema?: any, options?: any): (_: IControllerDescriptor, route: IRoute, target: any, propertyKey: string, index: number) => void;
|
|
7
|
+
/**
|
|
8
|
+
* Tells controller how to fill up incoming parameters in controller actions
|
|
9
|
+
*
|
|
10
|
+
* @param hydrator - hydrator class that will fill up incoming argument
|
|
11
|
+
* @param options - additional options passed to hydrator
|
|
12
|
+
*/
|
|
13
|
+
export declare function Hydrator(hydrator: Constructor<ArgHydrator>, ...options: any[]): (target: any) => void;
|
|
4
14
|
export declare function Policy(policy: Constructor<BasePolicy>, ...options: any[]): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
5
15
|
export declare function Middleware(policy: Constructor<BaseMiddleware>, ...options: any[]): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
6
16
|
export declare function BasePath(path: string): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
7
|
-
export declare function
|
|
17
|
+
export declare function FromDI(): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
8
18
|
/**
|
|
9
19
|
* Route parameter taken from query string eg. route?id=1
|
|
10
20
|
*
|
|
11
|
-
* @param schema parameter json schema for optional validation
|
|
21
|
+
* @param schema - parameter json schema for optional validation
|
|
12
22
|
*/
|
|
13
23
|
export declare function Query(schema?: any): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
14
24
|
/**
|
|
15
25
|
* Route parameter taken from message body (POST)
|
|
16
26
|
*
|
|
17
|
-
* @param schema parameter json schema for optional validation
|
|
27
|
+
* @param schema - parameter json schema for optional validation
|
|
18
28
|
*/
|
|
19
29
|
export declare function Body(schema?: any): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
20
30
|
/**
|
|
21
31
|
* Route parameter taken from url parameters eg. route/:id
|
|
22
32
|
*
|
|
23
|
-
* @param schema parameter json schema for optional validation
|
|
33
|
+
* @param schema - parameter json schema for optional validation
|
|
24
34
|
*/
|
|
25
35
|
export declare function Param(schema?: any): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
26
36
|
export declare function FromModel(schema?: any): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
37
|
+
/**
|
|
38
|
+
* Gets parameter from request header. If not keyname is provided
|
|
39
|
+
* variable name is used as header key name
|
|
40
|
+
*
|
|
41
|
+
* @param keyName - header key name ( optional )
|
|
42
|
+
* @param schema - schema for validation ( optional )
|
|
43
|
+
* @returns
|
|
44
|
+
*/
|
|
45
|
+
export declare function Header(keyName?: string, schema?: any): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
27
46
|
/**
|
|
28
47
|
*
|
|
29
48
|
* Parameter as file
|
|
30
49
|
*
|
|
31
|
-
* @param options upload options
|
|
50
|
+
* @param options - upload options
|
|
51
|
+
*/
|
|
52
|
+
export declare function File(options?: IUploadOptions): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
53
|
+
/**
|
|
54
|
+
* Data taken from cvs file that is uploaded. Actions receives parsed data
|
|
55
|
+
*
|
|
56
|
+
* @param options - upload options
|
|
57
|
+
* @param cvsParseOptions - cvs parser options
|
|
58
|
+
* @param schema - optional schema for data validation
|
|
32
59
|
*/
|
|
33
|
-
export declare function
|
|
60
|
+
export declare function CsvFile(options?: IUploadOptions, cvsParseOptions?: any, schema?: any): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
61
|
+
/**
|
|
62
|
+
* Data taken from cvs file that is uploaded. Actions receives parsed data
|
|
63
|
+
*
|
|
64
|
+
* @param options - upload options
|
|
65
|
+
* @param schema - optional schema for data validation
|
|
66
|
+
*/
|
|
67
|
+
export declare function JsonFile(options?: IUploadOptions, schema?: any): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
34
68
|
/**
|
|
35
69
|
*
|
|
36
70
|
* Parameter taken from form data (multipart-form)
|
|
37
71
|
*
|
|
38
|
-
* @param options upload options
|
|
72
|
+
* @param options - upload options
|
|
39
73
|
*/
|
|
40
|
-
export declare function Form(schema?: any): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
74
|
+
export declare function Form(schema?: any, options?: IFormOptions): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
41
75
|
/**
|
|
42
76
|
*
|
|
43
77
|
* Parameter taken from form data (multipart-form)
|
|
44
78
|
*
|
|
45
|
-
* @param options upload options
|
|
79
|
+
* @param options - upload options
|
|
46
80
|
*/
|
|
47
|
-
export declare function FormField(): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
81
|
+
export declare function FormField(schema?: any, options?: IFormOptions): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
48
82
|
/**
|
|
49
83
|
*
|
|
50
84
|
* Shortcut for parameter as autoincrement primary key ( number greater than 0)
|
|
51
85
|
*
|
|
52
86
|
*/
|
|
53
|
-
export declare function
|
|
87
|
+
export declare function PKey(type?: ParameterType): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
54
88
|
/**
|
|
55
89
|
*
|
|
56
90
|
* Shortcut for parameter as uuid primary key ( string with 32 length )
|
|
57
91
|
*
|
|
58
92
|
*/
|
|
59
|
-
export declare function
|
|
93
|
+
export declare function Uuid(type?: ParameterType, version?: UuidVersion): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
60
94
|
/**
|
|
61
95
|
*
|
|
62
96
|
* Express request
|
|
@@ -73,14 +107,14 @@ export declare function Res(): (target: any, propertyKey?: string | symbol, inde
|
|
|
73
107
|
*
|
|
74
108
|
* Parameter taken from model
|
|
75
109
|
*
|
|
76
|
-
* @param options upload options
|
|
110
|
+
* @param options - upload options
|
|
77
111
|
*/
|
|
78
112
|
export declare function Model(model: Constructor<any>): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
79
113
|
/**
|
|
80
114
|
*
|
|
81
|
-
* Parameter taken from
|
|
115
|
+
* Parameter taken from coockie
|
|
82
116
|
*
|
|
83
|
-
* @param options upload options
|
|
117
|
+
* @param options - upload options
|
|
84
118
|
*/
|
|
85
119
|
export declare function Cookie(): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
86
120
|
/**
|
|
@@ -115,10 +149,3 @@ export declare function Get(path?: string): (target: any, propertyKey?: string |
|
|
|
115
149
|
* @param path - url path to method eg. /foo/bar
|
|
116
150
|
*/
|
|
117
151
|
export declare function Post(path?: string): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
118
|
-
/**
|
|
119
|
-
*
|
|
120
|
-
* Add schema for object eg. model or dto
|
|
121
|
-
*
|
|
122
|
-
* @param schema schema for object
|
|
123
|
-
*/
|
|
124
|
-
export declare function Schema(schema: any): (target: any) => void;
|