@nestia/core 1.2.2 → 1.2.4
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 +3 -2
- package/lib/decorators/EncryptedBody.js +2 -6
- package/lib/decorators/EncryptedBody.js.map +1 -1
- package/lib/decorators/PlainBody.js +3 -4
- package/lib/decorators/PlainBody.js.map +1 -1
- package/lib/decorators/TypedBody.js +2 -6
- package/lib/decorators/TypedBody.js.map +1 -1
- package/lib/decorators/TypedParam.d.ts +1 -1
- package/lib/decorators/TypedParam.js +12 -5
- package/lib/decorators/TypedParam.js.map +1 -1
- package/lib/decorators/TypedQuery.js +2 -3
- package/lib/decorators/TypedQuery.js.map +1 -1
- package/lib/decorators/internal/route_error.d.ts +2 -1
- package/lib/decorators/internal/route_error.js +4 -2
- package/lib/decorators/internal/route_error.js.map +1 -1
- package/lib/programmers/TypedParamProgrammer.js +1 -1
- package/lib/programmers/TypedParamProgrammer.js.map +1 -1
- package/package.json +78 -78
- package/src/decorators/EncryptedBody.ts +3 -10
- package/src/decorators/PlainBody.ts +5 -8
- package/src/decorators/TypedBody.ts +3 -10
- package/src/decorators/TypedParam.ts +19 -17
- package/src/decorators/TypedQuery.ts +8 -11
- package/src/decorators/internal/route_error.ts +8 -2
- package/src/programmers/TypedParamProgrammer.ts +2 -1
- package/lib/decorators/internal/send_bad_request.d.ts +0 -2
- package/lib/decorators/internal/send_bad_request.js +0 -13
- package/lib/decorators/internal/send_bad_request.js.map +0 -1
- package/src/decorators/internal/send_bad_request.ts +0 -12
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
Nestia is a set of helper libraries for NestJS, supporting below features:
|
|
11
11
|
|
|
12
12
|
- `@nestia/core`: super-fast decorators
|
|
13
|
-
- `@nestia/sdk
|
|
13
|
+
- `@nestia/sdk`:
|
|
14
14
|
- SDK generator for clients
|
|
15
15
|
- Swagger generator evolved than ever
|
|
16
16
|
- Automatic E2E test functions generator
|
|
@@ -48,12 +48,13 @@ Check out the document in the [website](https://nestia.io/docs/):
|
|
|
48
48
|
- [Setup](https://nestia.io/docs/setup/)
|
|
49
49
|
|
|
50
50
|
### 📖 Features
|
|
51
|
+
- [Pure TypeScript](https://nestia.io/docs/pure)
|
|
51
52
|
- Core Library
|
|
52
53
|
- [TypedRoute](https://nestia.io/docs/core/TypedRoute/)
|
|
53
54
|
- [TypedBody](https://nestia.io/docs/core/TypedBody/)
|
|
54
55
|
- [TypedParam](https://nestia.io/docs/core/TypedParam/)
|
|
55
56
|
- [TypedQuery](https://nestia.io/docs/core/TypedRoute/)
|
|
56
57
|
- Generators
|
|
57
|
-
- [SDK Library](https://nestia.io/docs/sdk/sdk/)
|
|
58
58
|
- [Swagger Documents](https://nestia.io/docs/sdk/swagger/)
|
|
59
|
+
- [SDK Library](https://nestia.io/docs/sdk/sdk/)
|
|
59
60
|
- [E2E Functions](https://nestia.io/docs/sdk/e2e/)
|
|
@@ -44,7 +44,6 @@ var Singleton_1 = require("../utils/Singleton");
|
|
|
44
44
|
var EncryptedConstant_1 = require("./internal/EncryptedConstant");
|
|
45
45
|
var get_text_body_1 = require("./internal/get_text_body");
|
|
46
46
|
var headers_to_object_1 = require("./internal/headers_to_object");
|
|
47
|
-
var send_bad_request_1 = require("./internal/send_bad_request");
|
|
48
47
|
var validate_request_body_1 = require("./internal/validate_request_body");
|
|
49
48
|
/**
|
|
50
49
|
* Encrypted body decorator.
|
|
@@ -79,7 +78,7 @@ function EncryptedBody(validator) {
|
|
|
79
78
|
.switchToHttp()
|
|
80
79
|
.getRequest();
|
|
81
80
|
if (isTextPlain(request.headers["content-type"]) === false)
|
|
82
|
-
|
|
81
|
+
throw new common_1.BadRequestException("Request body type is not \"text/plain\".");
|
|
83
82
|
param = Reflect.getMetadata(EncryptedConstant_1.ENCRYPTION_METADATA_KEY, context.getClass());
|
|
84
83
|
if (!param)
|
|
85
84
|
throw new Error("Error on nestia.core.EncryptedBody(): no encryption password is given.");
|
|
@@ -95,10 +94,7 @@ function EncryptedBody(validator) {
|
|
|
95
94
|
data = JSON.parse(decrypt(body, password.key, password.iv));
|
|
96
95
|
error = checker(data);
|
|
97
96
|
if (error !== null)
|
|
98
|
-
|
|
99
|
-
return [2 /*return*/, (0, send_bad_request_1.send_bad_request)(context)(error)];
|
|
100
|
-
else
|
|
101
|
-
throw error;
|
|
97
|
+
throw error;
|
|
102
98
|
return [2 /*return*/, data];
|
|
103
99
|
}
|
|
104
100
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EncryptedBody.js","sourceRoot":"","sources":["../../src/decorators/EncryptedBody.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAgE;AAChE,
|
|
1
|
+
{"version":3,"file":"EncryptedBody.js","sourceRoot":"","sources":["../../src/decorators/EncryptedBody.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAgE;AAChE,yCAIwB;AAIxB,+BAA6C;AAG7C,gDAA+C;AAC/C,kEAAuE;AACvE,0DAAyD;AACzD,kEAAiE;AACjE,0EAAyE;AAEzE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,aAAa,CACzB,SAAoC;IAEpC,IAAM,OAAO,GAAG,IAAA,6CAAqB,EAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC;IAClE,OAAO,IAAA,6BAAoB,EAAC,SAAe,aAAa,CACpD,QAAa,EACb,OAAyB;;;;;;wBAEnB,OAAO,GAAqC,OAAO;6BACpD,YAAY,EAAE;6BACd,UAAU,EAAE,CAAC;wBAClB,IAAI,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,KAAK,KAAK;4BACtD,MAAM,IAAI,4BAAmB,CACzB,0CAAwC,CAC3C,CAAC;wBAEA,KAAK,GAGO,OAAO,CAAC,WAAW,CACjC,2CAAuB,EACvB,OAAO,CAAC,QAAQ,EAAE,CACrB,CAAC;wBACF,IAAI,CAAC,KAAK;4BACN,MAAM,IAAI,KAAK,CACX,wEAAwE,CAC3E,CAAC;wBAGA,OAAO,GAAsC,IAAI,qBAAS,CAAC;4BAC7D,OAAA,IAAA,qCAAiB,EAAC,OAAO,CAAC,OAAO,CAAC;wBAAlC,CAAkC,CACrC,CAAC;wBACmB,qBAAM,IAAA,6BAAa,EAAC,OAAO,CAAC,EAAA;;wBAA3C,IAAI,GAAW,SAA4B;wBAC3C,QAAQ,GACV,OAAO,KAAK,KAAK,UAAU;4BACvB,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,MAAA,EAAE,EAAE,KAAK,CAAC;4BAChD,CAAC,CAAC,KAAK,CAAC;wBAGV,IAAI,GAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;wBACjE,KAAK,GAAiB,OAAO,CAAC,IAAI,CAAC,CAAC;wBAC1C,IAAI,KAAK,KAAK,IAAI;4BAAE,MAAM,KAAK,CAAC;wBAChC,sBAAO,IAAI,EAAC;;;;KACf,CAAC,EAAE,CAAC;AACT,CAAC;AA5CD,sCA4CC;AACD,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,UAAE,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,cAAM,CAAC,CAAC;AACrC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,gBAAQ,CAAC,CAAC;AAEvC;;GAEG;AACH,IAAM,OAAO,GAAG,UAAC,IAAY,EAAE,GAAW,EAAE,EAAU;IAClD,IAAI;QACA,OAAO,kBAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;KAC1C;IAAC,OAAO,GAAG,EAAE;QACV,IAAI,GAAG,YAAY,KAAK;YACpB,MAAM,IAAI,4BAAmB,CACzB,qFAAqF,CACxF,CAAC;;YACD,MAAM,GAAG,CAAC;KAClB;AACL,CAAC,CAAC;AAEF,IAAM,WAAW,GAAG,UAAC,IAAa;IAC9B,OAAA,IAAI,KAAK,SAAS;QAClB,IAAI;aACC,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,IAAI,EAAE,EAAV,CAAU,CAAC;aACxB,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,KAAK,YAAY,EAApB,CAAoB,CAAC;AAJxC,CAIwC,CAAC"}
|
|
@@ -39,7 +39,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
exports.PlainBody = void 0;
|
|
40
40
|
var common_1 = require("@nestjs/common");
|
|
41
41
|
var get_text_body_1 = require("./internal/get_text_body");
|
|
42
|
-
var send_bad_request_1 = require("./internal/send_bad_request");
|
|
43
42
|
/**
|
|
44
43
|
* Plain body decorator.
|
|
45
44
|
*
|
|
@@ -68,9 +67,9 @@ exports.PlainBody = (0, common_1.createParamDecorator)(function PlainBody(_data,
|
|
|
68
67
|
request = context
|
|
69
68
|
.switchToHttp()
|
|
70
69
|
.getRequest();
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
70
|
+
if (!isTextPlain(request.headers["content-type"]))
|
|
71
|
+
throw new common_1.BadRequestException("Request body type is not \"text/plain\".");
|
|
72
|
+
return [2 /*return*/, (0, get_text_body_1.get_text_body)(request)];
|
|
74
73
|
});
|
|
75
74
|
});
|
|
76
75
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlainBody.js","sourceRoot":"","sources":["../../src/decorators/PlainBody.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAIwB;AAIxB,0DAAyD;
|
|
1
|
+
{"version":3,"file":"PlainBody.js","sourceRoot":"","sources":["../../src/decorators/PlainBody.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAIwB;AAIxB,0DAAyD;AAEzD;;;;;;;;;;;;;;;;;;;;GAoBG;AACU,QAAA,SAAS,GAA6B,IAAA,6BAAoB,EACnE,SAAe,SAAS,CAAC,KAAU,EAAE,OAAyB;;;;YACpD,OAAO,GAAqC,OAAO;iBACpD,YAAY,EAAE;iBACd,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBAC7C,MAAM,IAAI,4BAAmB,CACzB,0CAAwC,CAC3C,CAAC;YACN,sBAAO,IAAA,6BAAa,EAAC,OAAO,CAAC,EAAC;;;CACjC,CACJ,CAAC;AAEF,IAAM,WAAW,GAAG,UAAC,IAAa;IAC9B,OAAA,IAAI,KAAK,SAAS;QAClB,IAAI;aACC,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,IAAI,EAAE,EAAV,CAAU,CAAC;aACxB,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,KAAK,YAAY,EAApB,CAAoB,CAAC;AAJxC,CAIwC,CAAC"}
|
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.TypedBody = void 0;
|
|
4
4
|
var common_1 = require("@nestjs/common");
|
|
5
5
|
var typia_1 = require("typia");
|
|
6
|
-
var send_bad_request_1 = require("./internal/send_bad_request");
|
|
7
6
|
var validate_request_body_1 = require("./internal/validate_request_body");
|
|
8
7
|
/**
|
|
9
8
|
* Type safe body decorator.
|
|
@@ -26,13 +25,10 @@ function TypedBody(validator) {
|
|
|
26
25
|
.switchToHttp()
|
|
27
26
|
.getRequest();
|
|
28
27
|
if (isApplicationJson(request.headers["content-type"]) === false)
|
|
29
|
-
|
|
28
|
+
throw new common_1.BadRequestException("Request body type is not \"application/json\".");
|
|
30
29
|
var error = checker(request.body);
|
|
31
30
|
if (error !== null)
|
|
32
|
-
|
|
33
|
-
return (0, send_bad_request_1.send_bad_request)(context)(error);
|
|
34
|
-
else
|
|
35
|
-
throw error;
|
|
31
|
+
throw error;
|
|
36
32
|
return request.body;
|
|
37
33
|
})();
|
|
38
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedBody.js","sourceRoot":"","sources":["../../src/decorators/TypedBody.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"TypedBody.js","sourceRoot":"","sources":["../../src/decorators/TypedBody.ts"],"names":[],"mappings":";;;AAAA,yCAIwB;AAIxB,+BAA6C;AAG7C,0EAAyE;AAEzE;;;;;;;;;;;;;GAaG;AACH,SAAgB,SAAS,CACrB,SAAoC;IAEpC,IAAM,OAAO,GAAG,IAAA,6CAAqB,EAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC;IAC9D,OAAO,IAAA,6BAAoB,EAAC,SAAS,SAAS,CAC1C,QAAa,EACb,OAAyB;QAEzB,IAAM,OAAO,GAAqC,OAAO;aACpD,YAAY,EAAE;aACd,UAAU,EAAE,CAAC;QAClB,IAAI,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,KAAK,KAAK;YAC5D,MAAM,IAAI,4BAAmB,CACzB,gDAA8C,CACjD,CAAC;QAEN,IAAM,KAAK,GAAiB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,KAAK,KAAK,IAAI;YAAE,MAAM,KAAK,CAAC;QAChC,OAAO,OAAO,CAAC,IAAI,CAAC;IACxB,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AApBD,8BAoBC;AAED,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,UAAE,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,cAAM,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,gBAAQ,CAAC,CAAC;AAEnC,IAAM,iBAAiB,GAAG,UAAC,IAAa;IACpC,OAAA,IAAI,KAAK,SAAS;QAClB,IAAI;aACC,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,IAAI,EAAE,EAAV,CAAU,CAAC;aACxB,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,KAAK,kBAAkB,EAA1B,CAA0B,CAAC;AAJ9C,CAI8C,CAAC"}
|
|
@@ -28,4 +28,4 @@
|
|
|
28
28
|
*
|
|
29
29
|
* @author Jeongho Nam - https://github.com/samchon
|
|
30
30
|
*/
|
|
31
|
-
export declare function TypedParam(name: string, type?: "boolean" | "number" | "string" | "uuid", nullable?: false | true): ParameterDecorator;
|
|
31
|
+
export declare function TypedParam(name: string, type?: "boolean" | "number" | "string" | "uuid" | "date", nullable?: false | true): ParameterDecorator;
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TypedParam = void 0;
|
|
4
4
|
var common_1 = require("@nestjs/common");
|
|
5
|
-
var send_bad_request_1 = require("./internal/send_bad_request");
|
|
6
5
|
/**
|
|
7
6
|
* Type safe URL parameter decorator.
|
|
8
7
|
*
|
|
@@ -35,7 +34,9 @@ var send_bad_request_1 = require("./internal/send_bad_request");
|
|
|
35
34
|
*/
|
|
36
35
|
function TypedParam(name, type, nullable) {
|
|
37
36
|
function TypedParam(_a, context) {
|
|
38
|
-
var request = context
|
|
37
|
+
var request = context
|
|
38
|
+
.switchToHttp()
|
|
39
|
+
.getRequest();
|
|
39
40
|
var str = request.params[name];
|
|
40
41
|
if (nullable === true && str === "null")
|
|
41
42
|
return null;
|
|
@@ -45,17 +46,22 @@ function TypedParam(name, type, nullable) {
|
|
|
45
46
|
else if (str === "false" || str === "0")
|
|
46
47
|
return false;
|
|
47
48
|
else
|
|
48
|
-
|
|
49
|
+
throw new common_1.BadRequestException("Value of the URL parameter '".concat(name, "' is not a boolean."));
|
|
49
50
|
}
|
|
50
51
|
else if (type === "number") {
|
|
51
52
|
var value = Number(str);
|
|
52
53
|
if (isNaN(value))
|
|
53
|
-
|
|
54
|
+
throw new common_1.BadRequestException("Value of the URL parameter \"".concat(name, "\" is not a number."));
|
|
54
55
|
return value;
|
|
55
56
|
}
|
|
56
57
|
else if (type === "uuid") {
|
|
57
58
|
if (UUID_PATTERN.test(str) === false)
|
|
58
|
-
|
|
59
|
+
throw new common_1.BadRequestException("Value of the URL parameter \"".concat(name, "\" is not a valid UUID."));
|
|
60
|
+
return str;
|
|
61
|
+
}
|
|
62
|
+
else if (type === "date") {
|
|
63
|
+
if (DATE_PATTERN.test(str) === false)
|
|
64
|
+
throw new common_1.BadRequestException("Value of the URL parameter \"".concat(name, "\" is not a valid date."));
|
|
59
65
|
return str;
|
|
60
66
|
}
|
|
61
67
|
else
|
|
@@ -67,4 +73,5 @@ function TypedParam(name, type, nullable) {
|
|
|
67
73
|
}
|
|
68
74
|
exports.TypedParam = TypedParam;
|
|
69
75
|
var UUID_PATTERN = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
|
|
76
|
+
var DATE_PATTERN = /^\d{4}-\d{2}-\d{2}$/;
|
|
70
77
|
//# sourceMappingURL=TypedParam.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedParam.js","sourceRoot":"","sources":["../../src/decorators/TypedParam.ts"],"names":[],"mappings":";;;AAAA,yCAIwB;
|
|
1
|
+
{"version":3,"file":"TypedParam.js","sourceRoot":"","sources":["../../src/decorators/TypedParam.ts"],"names":[],"mappings":";;;AAAA,yCAIwB;AAIxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,SAAgB,UAAU,CACtB,IAAY,EACZ,IAAwD,EACxD,QAAuB;IAEvB,SAAS,UAAU,CAAC,EAAO,EAAE,OAAyB;QAClD,IAAM,OAAO,GAAqC,OAAO;aACpD,YAAY,EAAE;aACd,UAAU,EAAE,CAAC;QAClB,IAAM,GAAG,GAAY,OAAO,CAAC,MAAc,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,QAAQ,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;aAChD,IAAI,IAAI,KAAK,SAAS,EAAE;YACzB,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAC;iBAC1C,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,GAAG;gBAAE,OAAO,KAAK,CAAC;;gBAElD,MAAM,IAAI,4BAAmB,CACzB,sCAA+B,IAAI,wBAAqB,CAC3D,CAAC;SACT;aAAM,IAAI,IAAI,KAAK,QAAQ,EAAE;YAC1B,IAAM,KAAK,GAAW,MAAM,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,KAAK,CAAC,KAAK,CAAC;gBACZ,MAAM,IAAI,4BAAmB,CACzB,uCAA+B,IAAI,wBAAoB,CAC1D,CAAC;YACN,OAAO,KAAK,CAAC;SAChB;aAAM,IAAI,IAAI,KAAK,MAAM,EAAE;YACxB,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK;gBAChC,MAAM,IAAI,4BAAmB,CACzB,uCAA+B,IAAI,4BAAwB,CAC9D,CAAC;YACN,OAAO,GAAG,CAAC;SACd;aAAM,IAAI,IAAI,KAAK,MAAM,EAAE;YACxB,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK;gBAChC,MAAM,IAAI,4BAAmB,CACzB,uCAA+B,IAAI,4BAAwB,CAC9D,CAAC;YACN,OAAO,GAAG,CAAC;SACd;;YAAM,OAAO,GAAG,CAAC;IACtB,CAAC;IACA,UAAkB,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;IACzC,UAAkB,CAAC,IAAI,GAAG,IAAI,CAAC;IAChC,OAAO,IAAA,6BAAoB,EAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC;AA3CD,gCA2CC;AAED,IAAM,YAAY,GACd,qHAAqH,CAAC;AAC1H,IAAM,YAAY,GAAG,qBAAqB,CAAC"}
|
|
@@ -27,7 +27,6 @@ exports.TypedQuery = void 0;
|
|
|
27
27
|
var common_1 = require("@nestjs/common");
|
|
28
28
|
var typia_1 = __importStar(require("typia"));
|
|
29
29
|
var TransformError_1 = require("./internal/TransformError");
|
|
30
|
-
var send_bad_request_1 = require("./internal/send_bad_request");
|
|
31
30
|
/**
|
|
32
31
|
* Type safe URL query decorator.
|
|
33
32
|
*
|
|
@@ -57,13 +56,13 @@ function TypedQuery(decoder) {
|
|
|
57
56
|
var $io0 = function (input) { return "string" === typeof input.method && (undefined === input.path || "string" === typeof input.path) && "string" === typeof input.expected && true && "string" === typeof input.name && "string" === typeof input.message && (undefined === input.stack || "string" === typeof input.stack); };
|
|
58
57
|
return "object" === typeof input && null !== input && $io0(input);
|
|
59
58
|
})(exp))
|
|
60
|
-
|
|
59
|
+
throw new common_1.BadRequestException({
|
|
61
60
|
path: exp.path,
|
|
62
61
|
reason: exp.message,
|
|
63
62
|
expected: exp.expected,
|
|
64
63
|
value: exp.value,
|
|
65
64
|
message: "Request query parameters are not following the promised type.",
|
|
66
|
-
})
|
|
65
|
+
});
|
|
67
66
|
throw exp;
|
|
68
67
|
}
|
|
69
68
|
})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedQuery.js","sourceRoot":"","sources":["../../src/decorators/TypedQuery.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAIwB;AAIxB,6CAAsD;AAEtD,4DAA2D;
|
|
1
|
+
{"version":3,"file":"TypedQuery.js","sourceRoot":"","sources":["../../src/decorators/TypedQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import express from "express";
|
|
2
|
-
|
|
2
|
+
import type { FastifyRequest } from "fastify";
|
|
3
|
+
export declare function route_error(request: express.Request | FastifyRequest, error: any): import("rxjs").Observable<never>;
|
|
@@ -32,6 +32,7 @@ var common_1 = require("@nestjs/common");
|
|
|
32
32
|
var rxjs_1 = require("rxjs");
|
|
33
33
|
var ExceptionManager_1 = require("../../utils/ExceptionManager");
|
|
34
34
|
function route_error(request, error) {
|
|
35
|
+
var _a;
|
|
35
36
|
error = (function () {
|
|
36
37
|
var e_1, _a;
|
|
37
38
|
// HTTP-ERROR
|
|
@@ -57,9 +58,10 @@ function route_error(request, error) {
|
|
|
57
58
|
})();
|
|
58
59
|
try {
|
|
59
60
|
error.method = request.method;
|
|
60
|
-
error.path =
|
|
61
|
+
error.path =
|
|
62
|
+
(_a = request.path) !== null && _a !== void 0 ? _a : request.routerPath;
|
|
61
63
|
}
|
|
62
|
-
catch (
|
|
64
|
+
catch (_b) { }
|
|
63
65
|
setTimeout(function () {
|
|
64
66
|
var e_2, _a;
|
|
65
67
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route_error.js","sourceRoot":"","sources":["../../../src/decorators/internal/route_error.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA+C;
|
|
1
|
+
{"version":3,"file":"route_error.js","sourceRoot":"","sources":["../../../src/decorators/internal/route_error.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA+C;AAG/C,6BAAkC;AAElC,iEAAgE;AAEhE,SAAgB,WAAW,CACvB,OAAyC,EACzC,KAAU;;IAEV,KAAK,GAAG,CAAC;;QACL,aAAa;QACb,IAAI,KAAK,YAAY,sBAAa;YAAE,OAAO,KAAK,CAAC;;YAEjD,0BAA0B;YAC1B,KAAiC,IAAA,KAAA,SAAA,mCAAgB,CAAC,MAAM,CAAA,gBAAA;gBAA7C,IAAA,KAAA,mBAAkB,EAAjB,OAAO,QAAA,EAAE,OAAO,QAAA;gBACxB,IAAI,KAAK,YAAY,OAAO;oBAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;aAAA;;;;;;;;;QAExD,uBAAuB;QACvB,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC,EAAE,CAAC;IAEL,IAAI;QACA,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,KAAK,CAAC,IAAI;YACN,MAAC,OAA2B,CAAC,IAAI,mCAChC,OAA0B,CAAC,UAAU,CAAC;KAC9C;IAAC,WAAM,GAAE;IAEV,UAAU,CAAC;;;YACP,KAAuB,IAAA,KAAA,SAAA,mCAAgB,CAAC,SAAS,CAAA,gBAAA,4BAAE;gBAA9C,IAAM,QAAQ,WAAA;gBACf,IAAI;oBACA,IAAM,GAAG,GAAuB,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAChD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,UAAU;wBAC1D,GAAG,CAAC,KAAK,CAAC,cAAO,CAAC,CAAC,CAAC;iBAC3B;gBAAC,WAAM,GAAE;aACb;;;;;;;;;IACL,CAAC,EAAE,CAAC,CAAC,CAAC;IACN,OAAO,IAAA,iBAAU,EAAC,cAAM,OAAA,KAAK,EAAL,CAAK,CAAC,CAAC;AACnC,CAAC;AAjCD,kCAiCC"}
|
|
@@ -102,7 +102,7 @@ var error = function (message) {
|
|
|
102
102
|
var equals = function (atomic, p) {
|
|
103
103
|
var name = p.getName();
|
|
104
104
|
if (atomic === "string")
|
|
105
|
-
return name === "\"string\"" || name === "\"uuid\"";
|
|
105
|
+
return name === "\"string\"" || name === "\"uuid\"" || name === "\"date\"";
|
|
106
106
|
return "\"".concat(atomic, "\"") === name;
|
|
107
107
|
};
|
|
108
108
|
//# sourceMappingURL=TypedParamProgrammer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedParamProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedParamProgrammer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TypedParamProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedParamProgrammer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,79 +1,79 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@nestia/core",
|
|
3
|
-
"version": "1.2.
|
|
4
|
-
"description": "Super-fast validation decorators of NestJS",
|
|
5
|
-
"main": "lib/index.js",
|
|
6
|
-
"typings": "lib/index.d.ts",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"build": "rimraf lib && tsc",
|
|
9
|
-
"dev": "npm run build -- --watch",
|
|
10
|
-
"eslint": "eslint ./**/*.ts",
|
|
11
|
-
"eslint:fix": "eslint ./**/*.ts --fix",
|
|
12
|
-
"package:latest": "npm run build && npm publish --access public",
|
|
13
|
-
"package:next": "npm run package:latest -- --tag next",
|
|
14
|
-
"prettier": "prettier ./**/*.ts --write",
|
|
15
|
-
"prepare": "ts-patch install"
|
|
16
|
-
},
|
|
17
|
-
"repository": {
|
|
18
|
-
"type": "git",
|
|
19
|
-
"url": "https://github.com/samchon/nestia"
|
|
20
|
-
},
|
|
21
|
-
"keywords": [
|
|
22
|
-
"nestjs",
|
|
23
|
-
"nestia",
|
|
24
|
-
"typia",
|
|
25
|
-
"validator",
|
|
26
|
-
"decorator",
|
|
27
|
-
"class-validator",
|
|
28
|
-
"class-transformer"
|
|
29
|
-
],
|
|
30
|
-
"author": "Jeongho Nam",
|
|
31
|
-
"license": "MIT",
|
|
32
|
-
"bugs": {
|
|
33
|
-
"url": "https://github.com/samchon/nestia/issues"
|
|
34
|
-
},
|
|
35
|
-
"homepage": "https://
|
|
36
|
-
"dependencies": {
|
|
37
|
-
"@nestia/fetcher": "^1.2.1",
|
|
38
|
-
"@nestjs/common": ">= 7.0.1",
|
|
39
|
-
"@nestjs/core": ">= 7.0.1",
|
|
40
|
-
"@nestjs/platform-express": ">= 7.0.1",
|
|
41
|
-
"@nestjs/platform-fastify": ">= 7.0.1",
|
|
42
|
-
"detect-ts-node": "^1.0.5",
|
|
43
|
-
"glob": "^7.2.0",
|
|
44
|
-
"raw-body": ">= 2.0.0",
|
|
45
|
-
"reflect-metadata": ">= 0.1.12",
|
|
46
|
-
"rxjs": ">= 6.0.0",
|
|
47
|
-
"typia": "^3.8.
|
|
48
|
-
},
|
|
49
|
-
"peerDependencies": {
|
|
50
|
-
"typescript": ">= 4.5.2"
|
|
51
|
-
},
|
|
52
|
-
"devDependencies": {
|
|
53
|
-
"@trivago/prettier-plugin-sort-imports": "^4.0.0",
|
|
54
|
-
"@types/express": "^4.17.15",
|
|
55
|
-
"@types/glob": "^7.2.0",
|
|
56
|
-
"@types/inquirer": "^9.0.3",
|
|
57
|
-
"@typescript-eslint/eslint-plugin": "^5.46.1",
|
|
58
|
-
"@typescript-eslint/parser": "^5.46.1",
|
|
59
|
-
"commander": "^10.0.0",
|
|
60
|
-
"comment-json": "^4.2.3",
|
|
61
|
-
"eslint-plugin-deprecation": "^1.4.1",
|
|
62
|
-
"git-last-commit": "^1.0.1",
|
|
63
|
-
"inquirer": "^8.2.5",
|
|
64
|
-
"prettier": "^2.8.7",
|
|
65
|
-
"rimraf": "^3.0.2",
|
|
66
|
-
"ts-node": "^10.9.1",
|
|
67
|
-
"ts-patch": "^2.1.0",
|
|
68
|
-
"tstl": "^2.5.13",
|
|
69
|
-
"typescript": "^4.9.5",
|
|
70
|
-
"typescript-transform-paths": "^3.4.6"
|
|
71
|
-
},
|
|
72
|
-
"files": [
|
|
73
|
-
"README.md",
|
|
74
|
-
"LICENSE",
|
|
75
|
-
"package.json",
|
|
76
|
-
"lib",
|
|
77
|
-
"src"
|
|
78
|
-
]
|
|
1
|
+
{
|
|
2
|
+
"name": "@nestia/core",
|
|
3
|
+
"version": "1.2.4",
|
|
4
|
+
"description": "Super-fast validation decorators of NestJS",
|
|
5
|
+
"main": "lib/index.js",
|
|
6
|
+
"typings": "lib/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "rimraf lib && tsc",
|
|
9
|
+
"dev": "npm run build -- --watch",
|
|
10
|
+
"eslint": "eslint ./**/*.ts",
|
|
11
|
+
"eslint:fix": "eslint ./**/*.ts --fix",
|
|
12
|
+
"package:latest": "npm run build && npm publish --access public",
|
|
13
|
+
"package:next": "npm run package:latest -- --tag next",
|
|
14
|
+
"prettier": "prettier ./**/*.ts --write",
|
|
15
|
+
"prepare": "ts-patch install"
|
|
16
|
+
},
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "https://github.com/samchon/nestia"
|
|
20
|
+
},
|
|
21
|
+
"keywords": [
|
|
22
|
+
"nestjs",
|
|
23
|
+
"nestia",
|
|
24
|
+
"typia",
|
|
25
|
+
"validator",
|
|
26
|
+
"decorator",
|
|
27
|
+
"class-validator",
|
|
28
|
+
"class-transformer"
|
|
29
|
+
],
|
|
30
|
+
"author": "Jeongho Nam",
|
|
31
|
+
"license": "MIT",
|
|
32
|
+
"bugs": {
|
|
33
|
+
"url": "https://github.com/samchon/nestia/issues"
|
|
34
|
+
},
|
|
35
|
+
"homepage": "https://nestia.io",
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@nestia/fetcher": "^1.2.1",
|
|
38
|
+
"@nestjs/common": ">= 7.0.1",
|
|
39
|
+
"@nestjs/core": ">= 7.0.1",
|
|
40
|
+
"@nestjs/platform-express": ">= 7.0.1",
|
|
41
|
+
"@nestjs/platform-fastify": ">= 7.0.1",
|
|
42
|
+
"detect-ts-node": "^1.0.5",
|
|
43
|
+
"glob": "^7.2.0",
|
|
44
|
+
"raw-body": ">= 2.0.0",
|
|
45
|
+
"reflect-metadata": ">= 0.1.12",
|
|
46
|
+
"rxjs": ">= 6.0.0",
|
|
47
|
+
"typia": "^3.8.9"
|
|
48
|
+
},
|
|
49
|
+
"peerDependencies": {
|
|
50
|
+
"typescript": ">= 4.5.2"
|
|
51
|
+
},
|
|
52
|
+
"devDependencies": {
|
|
53
|
+
"@trivago/prettier-plugin-sort-imports": "^4.0.0",
|
|
54
|
+
"@types/express": "^4.17.15",
|
|
55
|
+
"@types/glob": "^7.2.0",
|
|
56
|
+
"@types/inquirer": "^9.0.3",
|
|
57
|
+
"@typescript-eslint/eslint-plugin": "^5.46.1",
|
|
58
|
+
"@typescript-eslint/parser": "^5.46.1",
|
|
59
|
+
"commander": "^10.0.0",
|
|
60
|
+
"comment-json": "^4.2.3",
|
|
61
|
+
"eslint-plugin-deprecation": "^1.4.1",
|
|
62
|
+
"git-last-commit": "^1.0.1",
|
|
63
|
+
"inquirer": "^8.2.5",
|
|
64
|
+
"prettier": "^2.8.7",
|
|
65
|
+
"rimraf": "^3.0.2",
|
|
66
|
+
"ts-node": "^10.9.1",
|
|
67
|
+
"ts-patch": "^2.1.0",
|
|
68
|
+
"tstl": "^2.5.13",
|
|
69
|
+
"typescript": "^4.9.5",
|
|
70
|
+
"typescript-transform-paths": "^3.4.6"
|
|
71
|
+
},
|
|
72
|
+
"files": [
|
|
73
|
+
"README.md",
|
|
74
|
+
"LICENSE",
|
|
75
|
+
"package.json",
|
|
76
|
+
"lib",
|
|
77
|
+
"src"
|
|
78
|
+
]
|
|
79
79
|
}
|
|
@@ -2,7 +2,6 @@ import { AesPkcs5, IEncryptionPassword } from "@nestia/fetcher";
|
|
|
2
2
|
import {
|
|
3
3
|
BadRequestException,
|
|
4
4
|
ExecutionContext,
|
|
5
|
-
HttpException,
|
|
6
5
|
createParamDecorator,
|
|
7
6
|
} from "@nestjs/common";
|
|
8
7
|
import type express from "express";
|
|
@@ -15,7 +14,6 @@ import { Singleton } from "../utils/Singleton";
|
|
|
15
14
|
import { ENCRYPTION_METADATA_KEY } from "./internal/EncryptedConstant";
|
|
16
15
|
import { get_text_body } from "./internal/get_text_body";
|
|
17
16
|
import { headers_to_object } from "./internal/headers_to_object";
|
|
18
|
-
import { send_bad_request } from "./internal/send_bad_request";
|
|
19
17
|
import { validate_request_body } from "./internal/validate_request_body";
|
|
20
18
|
|
|
21
19
|
/**
|
|
@@ -51,10 +49,8 @@ export function EncryptedBody<T>(
|
|
|
51
49
|
.switchToHttp()
|
|
52
50
|
.getRequest();
|
|
53
51
|
if (isTextPlain(request.headers["content-type"]) === false)
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
`Request body type is not "text/plain".`,
|
|
57
|
-
),
|
|
52
|
+
throw new BadRequestException(
|
|
53
|
+
`Request body type is not "text/plain".`,
|
|
58
54
|
);
|
|
59
55
|
|
|
60
56
|
const param:
|
|
@@ -82,10 +78,7 @@ export function EncryptedBody<T>(
|
|
|
82
78
|
// PARSE AND VALIDATE DATA
|
|
83
79
|
const data: any = JSON.parse(decrypt(body, password.key, password.iv));
|
|
84
80
|
const error: Error | null = checker(data);
|
|
85
|
-
if (error !== null)
|
|
86
|
-
if (error instanceof HttpException)
|
|
87
|
-
return send_bad_request(context)(error);
|
|
88
|
-
else throw error;
|
|
81
|
+
if (error !== null) throw error;
|
|
89
82
|
return data;
|
|
90
83
|
})();
|
|
91
84
|
}
|
|
@@ -7,7 +7,6 @@ import type express from "express";
|
|
|
7
7
|
import type { FastifyRequest } from "fastify";
|
|
8
8
|
|
|
9
9
|
import { get_text_body } from "./internal/get_text_body";
|
|
10
|
-
import { send_bad_request } from "./internal/send_bad_request";
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* Plain body decorator.
|
|
@@ -35,13 +34,11 @@ export const PlainBody: () => ParameterDecorator = createParamDecorator(
|
|
|
35
34
|
const request: express.Request | FastifyRequest = context
|
|
36
35
|
.switchToHttp()
|
|
37
36
|
.getRequest();
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
),
|
|
44
|
-
);
|
|
37
|
+
if (!isTextPlain(request.headers["content-type"]))
|
|
38
|
+
throw new BadRequestException(
|
|
39
|
+
`Request body type is not "text/plain".`,
|
|
40
|
+
);
|
|
41
|
+
return get_text_body(request);
|
|
45
42
|
},
|
|
46
43
|
);
|
|
47
44
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BadRequestException,
|
|
3
3
|
ExecutionContext,
|
|
4
|
-
HttpException,
|
|
5
4
|
createParamDecorator,
|
|
6
5
|
} from "@nestjs/common";
|
|
7
6
|
import type express from "express";
|
|
@@ -10,7 +9,6 @@ import type { FastifyRequest } from "fastify";
|
|
|
10
9
|
import { assert, is, validate } from "typia";
|
|
11
10
|
|
|
12
11
|
import { IRequestBodyValidator } from "../options/IRequestBodyValidator";
|
|
13
|
-
import { send_bad_request } from "./internal/send_bad_request";
|
|
14
12
|
import { validate_request_body } from "./internal/validate_request_body";
|
|
15
13
|
|
|
16
14
|
/**
|
|
@@ -39,17 +37,12 @@ export function TypedBody<T>(
|
|
|
39
37
|
.switchToHttp()
|
|
40
38
|
.getRequest();
|
|
41
39
|
if (isApplicationJson(request.headers["content-type"]) === false)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
`Request body type is not "application/json".`,
|
|
45
|
-
),
|
|
40
|
+
throw new BadRequestException(
|
|
41
|
+
`Request body type is not "application/json".`,
|
|
46
42
|
);
|
|
47
43
|
|
|
48
44
|
const error: Error | null = checker(request.body);
|
|
49
|
-
if (error !== null)
|
|
50
|
-
if (error instanceof HttpException)
|
|
51
|
-
return send_bad_request(context)(error);
|
|
52
|
-
else throw error;
|
|
45
|
+
if (error !== null) throw error;
|
|
53
46
|
return request.body;
|
|
54
47
|
})();
|
|
55
48
|
}
|
|
@@ -4,8 +4,7 @@ import {
|
|
|
4
4
|
createParamDecorator,
|
|
5
5
|
} from "@nestjs/common";
|
|
6
6
|
import type express from "express";
|
|
7
|
-
|
|
8
|
-
import { send_bad_request } from "./internal/send_bad_request";
|
|
7
|
+
import type { FastifyRequest } from "fastify";
|
|
9
8
|
|
|
10
9
|
/**
|
|
11
10
|
* Type safe URL parameter decorator.
|
|
@@ -39,38 +38,40 @@ import { send_bad_request } from "./internal/send_bad_request";
|
|
|
39
38
|
*/
|
|
40
39
|
export function TypedParam(
|
|
41
40
|
name: string,
|
|
42
|
-
type?: "boolean" | "number" | "string" | "uuid",
|
|
41
|
+
type?: "boolean" | "number" | "string" | "uuid" | "date",
|
|
43
42
|
nullable?: false | true,
|
|
44
43
|
): ParameterDecorator {
|
|
45
44
|
function TypedParam({}: any, context: ExecutionContext) {
|
|
46
|
-
const request: express.Request = context
|
|
47
|
-
|
|
45
|
+
const request: express.Request | FastifyRequest = context
|
|
46
|
+
.switchToHttp()
|
|
47
|
+
.getRequest();
|
|
48
|
+
const str: string = (request.params as any)[name];
|
|
48
49
|
|
|
49
50
|
if (nullable === true && str === "null") return null;
|
|
50
51
|
else if (type === "boolean") {
|
|
51
52
|
if (str === "true" || str === "1") return true;
|
|
52
53
|
else if (str === "false" || str === "0") return false;
|
|
53
54
|
else
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
`Value of the URL parameter '${name}' is not a boolean.`,
|
|
57
|
-
),
|
|
55
|
+
throw new BadRequestException(
|
|
56
|
+
`Value of the URL parameter '${name}' is not a boolean.`,
|
|
58
57
|
);
|
|
59
58
|
} else if (type === "number") {
|
|
60
59
|
const value: number = Number(str);
|
|
61
60
|
if (isNaN(value))
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
`Value of the URL parameter "${name}" is not a number.`,
|
|
65
|
-
),
|
|
61
|
+
throw new BadRequestException(
|
|
62
|
+
`Value of the URL parameter "${name}" is not a number.`,
|
|
66
63
|
);
|
|
67
64
|
return value;
|
|
68
65
|
} else if (type === "uuid") {
|
|
69
66
|
if (UUID_PATTERN.test(str) === false)
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
67
|
+
throw new BadRequestException(
|
|
68
|
+
`Value of the URL parameter "${name}" is not a valid UUID.`,
|
|
69
|
+
);
|
|
70
|
+
return str;
|
|
71
|
+
} else if (type === "date") {
|
|
72
|
+
if (DATE_PATTERN.test(str) === false)
|
|
73
|
+
throw new BadRequestException(
|
|
74
|
+
`Value of the URL parameter "${name}" is not a valid date.`,
|
|
74
75
|
);
|
|
75
76
|
return str;
|
|
76
77
|
} else return str;
|
|
@@ -82,3 +83,4 @@ export function TypedParam(
|
|
|
82
83
|
|
|
83
84
|
const UUID_PATTERN =
|
|
84
85
|
/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
|
|
86
|
+
const DATE_PATTERN = /^\d{4}-\d{2}-\d{2}$/;
|
|
@@ -9,7 +9,6 @@ import type { FastifyRequest } from "fastify";
|
|
|
9
9
|
import typia, { TypeGuardError, assert } from "typia";
|
|
10
10
|
|
|
11
11
|
import { TransformError } from "./internal/TransformError";
|
|
12
|
-
import { send_bad_request } from "./internal/send_bad_request";
|
|
13
12
|
|
|
14
13
|
/**
|
|
15
14
|
* Type safe URL query decorator.
|
|
@@ -42,16 +41,14 @@ export function TypedQuery<T>(
|
|
|
42
41
|
return decoder(params);
|
|
43
42
|
} catch (exp) {
|
|
44
43
|
if (typia.is<TypeGuardError>(exp))
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}),
|
|
54
|
-
);
|
|
44
|
+
throw new BadRequestException({
|
|
45
|
+
path: exp.path,
|
|
46
|
+
reason: exp.message,
|
|
47
|
+
expected: exp.expected,
|
|
48
|
+
value: exp.value,
|
|
49
|
+
message:
|
|
50
|
+
"Request query parameters are not following the promised type.",
|
|
51
|
+
});
|
|
55
52
|
throw exp;
|
|
56
53
|
}
|
|
57
54
|
})();
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { HttpException } from "@nestjs/common";
|
|
2
2
|
import express from "express";
|
|
3
|
+
import type { FastifyRequest } from "fastify";
|
|
3
4
|
import { throwError } from "rxjs";
|
|
4
5
|
|
|
5
6
|
import { ExceptionManager } from "../../utils/ExceptionManager";
|
|
6
7
|
|
|
7
|
-
export function route_error(
|
|
8
|
+
export function route_error(
|
|
9
|
+
request: express.Request | FastifyRequest,
|
|
10
|
+
error: any,
|
|
11
|
+
) {
|
|
8
12
|
error = (() => {
|
|
9
13
|
// HTTP-ERROR
|
|
10
14
|
if (error instanceof HttpException) return error;
|
|
@@ -19,7 +23,9 @@ export function route_error(request: express.Request, error: any) {
|
|
|
19
23
|
|
|
20
24
|
try {
|
|
21
25
|
error.method = request.method;
|
|
22
|
-
error.path =
|
|
26
|
+
error.path =
|
|
27
|
+
(request as express.Request).path ??
|
|
28
|
+
(request as FastifyRequest).routerPath;
|
|
23
29
|
} catch {}
|
|
24
30
|
|
|
25
31
|
setTimeout(() => {
|
|
@@ -91,6 +91,7 @@ const error = (message: string) =>
|
|
|
91
91
|
|
|
92
92
|
const equals = (atomic: string, p: Metadata) => {
|
|
93
93
|
const name: string = p.getName();
|
|
94
|
-
if (atomic === "string")
|
|
94
|
+
if (atomic === "string")
|
|
95
|
+
return name === `"string"` || name === `"uuid"` || name === `"date"`;
|
|
95
96
|
return `"${atomic}"` === name;
|
|
96
97
|
};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.send_bad_request = void 0;
|
|
4
|
-
var send_bad_request = function (context) {
|
|
5
|
-
return function (error) {
|
|
6
|
-
var response = context
|
|
7
|
-
.switchToHttp()
|
|
8
|
-
.getResponse();
|
|
9
|
-
response.status(error.getStatus()).send(error.getResponse());
|
|
10
|
-
};
|
|
11
|
-
};
|
|
12
|
-
exports.send_bad_request = send_bad_request;
|
|
13
|
-
//# sourceMappingURL=send_bad_request.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"send_bad_request.js","sourceRoot":"","sources":["../../../src/decorators/internal/send_bad_request.ts"],"names":[],"mappings":";;;AAIO,IAAM,gBAAgB,GACzB,UAAC,OAAyB;IAC1B,OAAA,UAAC,KAA0B;QACvB,IAAM,QAAQ,GAAoC,OAAO;aACpD,YAAY,EAAE;aACd,WAAW,EAAE,CAAC;QACnB,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IACjE,CAAC;AALD,CAKC,CAAC;AAPO,QAAA,gBAAgB,oBAOvB"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { BadRequestException, ExecutionContext } from "@nestjs/common";
|
|
2
|
-
import type express from "express";
|
|
3
|
-
import type { FastifyReply } from "fastify";
|
|
4
|
-
|
|
5
|
-
export const send_bad_request =
|
|
6
|
-
(context: ExecutionContext) =>
|
|
7
|
-
(error: BadRequestException): void => {
|
|
8
|
-
const response: express.Response | FastifyReply = context
|
|
9
|
-
.switchToHttp()
|
|
10
|
-
.getResponse();
|
|
11
|
-
response.status(error.getStatus()).send(error.getResponse());
|
|
12
|
-
};
|