@nestia/core 1.1.0 → 1.1.1
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/lib/decorators/TypedQuery.js +23 -2
- package/lib/decorators/TypedQuery.js.map +1 -1
- package/lib/programmers/TypedBodyProgrammer.d.ts +1 -1
- package/lib/programmers/TypedBodyProgrammer.js +20 -18
- package/lib/programmers/TypedBodyProgrammer.js.map +1 -1
- package/lib/programmers/TypedQueryProgrammer.d.ts +1 -1
- package/lib/programmers/TypedQueryProgrammer.js +7 -4
- package/lib/programmers/TypedQueryProgrammer.js.map +1 -1
- package/lib/programmers/TypedRouteProgrammer.d.ts +1 -1
- package/lib/programmers/TypedRouteProgrammer.js +21 -19
- package/lib/programmers/TypedRouteProgrammer.js.map +1 -1
- package/lib/transformers/MethodDecoratorTransformer.js +1 -1
- package/lib/transformers/MethodDecoratorTransformer.js.map +1 -1
- package/lib/transformers/ParameterDecoratorTransformer.js +3 -3
- package/lib/transformers/ParameterDecoratorTransformer.js.map +1 -1
- package/package.json +1 -1
- package/src/decorators/TypedQuery.ts +27 -4
- package/src/programmers/TypedBodyProgrammer.ts +2 -1
- package/src/programmers/TypedQueryProgrammer.ts +3 -1
- package/src/programmers/TypedRouteProgrammer.ts +2 -1
- package/src/transformers/MethodDecoratorTransformer.ts +1 -2
- package/src/transformers/ParameterDecoratorTransformer.ts +3 -3
|
@@ -62,7 +62,22 @@ function TypedQuery(decoder) {
|
|
|
62
62
|
return __generator(this, function (_a) {
|
|
63
63
|
request = ctx.switchToHttp().getRequest();
|
|
64
64
|
params = new URLSearchParams(tail(request.url));
|
|
65
|
-
|
|
65
|
+
try {
|
|
66
|
+
return [2 /*return*/, decoder(params)];
|
|
67
|
+
}
|
|
68
|
+
catch (exp) {
|
|
69
|
+
if (exp instanceof typia_1.TypeGuardError) {
|
|
70
|
+
throw new common_1.BadRequestException({
|
|
71
|
+
path: exp.path,
|
|
72
|
+
reason: exp.message,
|
|
73
|
+
expected: exp.expected,
|
|
74
|
+
value: exp.value,
|
|
75
|
+
message: "Request query parameters are not following the promised type.",
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
throw exp;
|
|
79
|
+
}
|
|
80
|
+
return [2 /*return*/];
|
|
66
81
|
});
|
|
67
82
|
});
|
|
68
83
|
})();
|
|
@@ -77,7 +92,13 @@ exports.TypedQuery = TypedQuery;
|
|
|
77
92
|
return undefined;
|
|
78
93
|
else if (str === "null")
|
|
79
94
|
return null;
|
|
80
|
-
|
|
95
|
+
else if (str.length === 0)
|
|
96
|
+
return true;
|
|
97
|
+
return str === "true" || str === "1"
|
|
98
|
+
? true
|
|
99
|
+
: str === "false" || str === "0"
|
|
100
|
+
? false
|
|
101
|
+
: str; // wrong type
|
|
81
102
|
}
|
|
82
103
|
TypedQuery.boolean = boolean;
|
|
83
104
|
function number(str) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedQuery.js","sourceRoot":"","sources":["../../src/decorators/TypedQuery.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"TypedQuery.js","sourceRoot":"","sources":["../../src/decorators/TypedQuery.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAIwB;AAGxB,+BAA+C;AAE/C,4DAA2D;AAE3D;;;;;;;;;;;;GAYG;AACH,SAAgB,UAAU,CACtB,OAAwC;IAExC,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,IAAA,+BAAc,EAAC,YAAY,CAAC,CAAC;IAE9D,OAAO,IAAA,6BAAoB,EAAC,SAAe,UAAU,CACjD,QAAa,EACb,GAAqB;;;;gBAEf,OAAO,GAAoB,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;gBAC3D,MAAM,GAAoB,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvE,IAAI;oBACA,sBAAO,OAAO,CAAC,MAAM,CAAC,EAAC;iBAC1B;gBAAC,OAAO,GAAG,EAAE;oBACV,IAAI,GAAG,YAAY,sBAAc,EAAE;wBAC/B,MAAM,IAAI,4BAAmB,CAAC;4BAC1B,IAAI,EAAE,GAAG,CAAC,IAAI;4BACd,MAAM,EAAE,GAAG,CAAC,OAAO;4BACnB,QAAQ,EAAE,GAAG,CAAC,QAAQ;4BACtB,KAAK,EAAE,GAAG,CAAC,KAAK;4BAChB,OAAO,EACH,+DAA+D;yBACtE,CAAC,CAAC;qBACN;oBACD,MAAM,GAAG,CAAC;iBACb;;;;KACJ,CAAC,EAAE,CAAC;AACT,CAAC;AA3BD,gCA2BC;AAED;;GAEG;AACH,WAAiB,UAAU;IACvB,SAAgB,OAAO,CAAC,GAAkB;QACtC,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;aAC9B,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;aAChC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACvC,OAAO,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,GAAG;YAChC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,GAAG;gBAChC,CAAC,CAAC,KAAK;gBACP,CAAC,CAAE,GAAW,CAAC,CAAC,aAAa;IACrC,CAAC;IATe,kBAAO,UAStB,CAAA;IACD,SAAgB,MAAM,CAAC,GAAkB;QACrC,OAAO,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,EAAC,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,CAAC;IAFe,iBAAM,SAErB,CAAA;IACD,SAAgB,MAAM,CAAC,GAAkB;QACrC,OAAO,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,EAAC,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,CAAC;IAFe,iBAAM,SAErB,CAAA;IACD,SAAgB,MAAM,CAAC,GAAkB;QACrC,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IAClE,CAAC;IAFe,iBAAM,SAErB,CAAA;AACL,CAAC,EApBgB,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAoB1B;AACD,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,cAAM,CAAC,CAAC;AAElC;;GAEG;AACH,SAAS,IAAI,CAAC,GAAW;IACrB,IAAM,KAAK,GAAW,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACxD,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
2
|
import { INestiaTransformProject } from "../options/INestiaTransformProject";
|
|
3
3
|
export declare namespace TypedBodyProgrammer {
|
|
4
|
-
const generate: (project: INestiaTransformProject
|
|
4
|
+
const generate: (project: INestiaTransformProject) => (modulo: ts.LeftHandSideExpression) => (type: ts.Type) => ts.ObjectLiteralExpression;
|
|
5
5
|
}
|
|
@@ -21,25 +21,27 @@ var IsProgrammer_1 = require("typia/lib/programmers/IsProgrammer");
|
|
|
21
21
|
var ValidateProgrammer_1 = require("typia/lib/programmers/ValidateProgrammer");
|
|
22
22
|
var TypedBodyProgrammer;
|
|
23
23
|
(function (TypedBodyProgrammer) {
|
|
24
|
-
TypedBodyProgrammer.generate = function (project
|
|
25
|
-
return function (
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
24
|
+
TypedBodyProgrammer.generate = function (project) {
|
|
25
|
+
return function (modulo) {
|
|
26
|
+
return function (type) {
|
|
27
|
+
// GENERATE VALIDATION PLAN
|
|
28
|
+
var parameter = function (key, programmer) {
|
|
29
|
+
return typescript_1.default.factory.createObjectLiteralExpression([
|
|
30
|
+
typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier("type"), typescript_1.default.factory.createStringLiteral(key)),
|
|
31
|
+
typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier(key), programmer(__assign(__assign({}, project), { options: {
|
|
32
|
+
numeric: false,
|
|
33
|
+
finite: false,
|
|
34
|
+
functional: false,
|
|
35
|
+
} }))(modulo)(false)(type)),
|
|
36
|
+
]);
|
|
37
|
+
};
|
|
38
|
+
// RETURNS
|
|
39
|
+
if (project.options.validate === "is")
|
|
40
|
+
return parameter("is", IsProgrammer_1.IsProgrammer.write);
|
|
41
|
+
else if (project.options.validate === "validate")
|
|
42
|
+
return parameter("validate", ValidateProgrammer_1.ValidateProgrammer.write);
|
|
43
|
+
return parameter("assert", AssertProgrammer_1.AssertProgrammer.write);
|
|
36
44
|
};
|
|
37
|
-
// RETURNS
|
|
38
|
-
if (project.options.validate === "is")
|
|
39
|
-
return parameter("is", IsProgrammer_1.IsProgrammer.write);
|
|
40
|
-
else if (project.options.validate === "validate")
|
|
41
|
-
return parameter("validate", ValidateProgrammer_1.ValidateProgrammer.write);
|
|
42
|
-
return parameter("assert", AssertProgrammer_1.AssertProgrammer.write);
|
|
43
45
|
};
|
|
44
46
|
};
|
|
45
47
|
})(TypedBodyProgrammer = exports.TypedBodyProgrammer || (exports.TypedBodyProgrammer = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedBodyProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedBodyProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,2EAA0E;AAC1E,mEAAkE;AAClE,+EAA8E;AAK9E,IAAiB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"TypedBodyProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedBodyProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,2EAA0E;AAC1E,mEAAkE;AAClE,+EAA8E;AAK9E,IAAiB,mBAAmB,CAuCnC;AAvCD,WAAiB,mBAAmB;IACnB,4BAAQ,GACjB,UAAC,OAAgC;QACjC,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,IAAa;gBACV,2BAA2B;gBAC3B,IAAM,SAAS,GAAG,UACd,GAAW,EACX,UAI6D;oBAE7D,OAAA,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC;wBACrC,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CAC/B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EACnC,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CACtC;wBACD,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CAC/B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAChC,UAAU,uBACH,OAAO,KACV,OAAO,EAAE;gCACL,OAAO,EAAE,KAAK;gCACd,MAAM,EAAE,KAAK;gCACb,UAAU,EAAE,KAAK;6BACpB,IACH,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAC1B;qBACJ,CAAC;gBAhBF,CAgBE,CAAC;gBAEP,UAAU;gBACV,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI;oBACjC,OAAO,SAAS,CAAC,IAAI,EAAE,2BAAY,CAAC,KAAK,CAAC,CAAC;qBAC1C,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,KAAK,UAAU;oBAC5C,OAAO,SAAS,CAAC,UAAU,EAAE,uCAAkB,CAAC,KAAK,CAAC,CAAC;gBAC3D,OAAO,SAAS,CAAC,QAAQ,EAAE,mCAAgB,CAAC,KAAK,CAAC,CAAC;YACvD,CAAC;QAlCD,CAkCC;IAnCD,CAmCC,CAAC;AACV,CAAC,EAvCgB,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAuCnC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
2
|
import { INestiaTransformProject } from "../options/INestiaTransformProject";
|
|
3
3
|
export declare namespace TypedQueryProgrammer {
|
|
4
|
-
const generate: (project: INestiaTransformProject
|
|
4
|
+
const generate: (project: INestiaTransformProject) => (modulo: ts.LeftHandSideExpression) => (type: ts.Type) => ts.Expression;
|
|
5
5
|
}
|
|
@@ -60,10 +60,12 @@ var AssertProgrammer_1 = require("typia/lib/programmers/AssertProgrammer");
|
|
|
60
60
|
var FunctionImporeter_1 = require("typia/lib/programmers/helpers/FunctionImporeter");
|
|
61
61
|
var TypedQueryProgrammer;
|
|
62
62
|
(function (TypedQueryProgrammer) {
|
|
63
|
-
TypedQueryProgrammer.generate = function (project
|
|
64
|
-
return function (
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
TypedQueryProgrammer.generate = function (project) {
|
|
64
|
+
return function (modulo) {
|
|
65
|
+
return function (type) {
|
|
66
|
+
var object = getObject(project.checker)(type);
|
|
67
|
+
return decode(project, modulo)(type, object);
|
|
68
|
+
};
|
|
67
69
|
};
|
|
68
70
|
};
|
|
69
71
|
var getObject = function (checker) {
|
|
@@ -200,6 +202,7 @@ var TypedQueryProgrammer;
|
|
|
200
202
|
return function (type, object) {
|
|
201
203
|
var assert = AssertProgrammer_1.AssertProgrammer.write(__assign(__assign({}, project), { options: {
|
|
202
204
|
numeric: true,
|
|
205
|
+
finite: true,
|
|
203
206
|
} }))(modulo)(false)(type);
|
|
204
207
|
var output = typescript_1.default.factory.createIdentifier("output");
|
|
205
208
|
var importer = new FunctionImporeter_1.FunctionImporter();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedQueryProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedQueryProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,2EAA0E;AAC1E,6EAA4E;AAC5E,uEAAsE;AACtE,yEAAwE;AAIxE,2EAA0E;AAC1E,qFAAmF;AAKnF,IAAiB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"TypedQueryProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedQueryProgrammer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
2
|
import { INestiaTransformProject } from "../options/INestiaTransformProject";
|
|
3
3
|
export declare namespace TypedRouteProgrammer {
|
|
4
|
-
const generate: (project: INestiaTransformProject
|
|
4
|
+
const generate: (project: INestiaTransformProject) => (modulo: ts.LeftHandSideExpression) => (type: ts.Type) => ts.Expression;
|
|
5
5
|
}
|
|
@@ -22,26 +22,28 @@ var StringifyProgrammer_1 = require("typia/lib/programmers/StringifyProgrammer")
|
|
|
22
22
|
var ValidateStringifyProgrammer_1 = require("typia/lib/programmers/ValidateStringifyProgrammer");
|
|
23
23
|
var TypedRouteProgrammer;
|
|
24
24
|
(function (TypedRouteProgrammer) {
|
|
25
|
-
TypedRouteProgrammer.generate = function (project
|
|
26
|
-
return function (
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
25
|
+
TypedRouteProgrammer.generate = function (project) {
|
|
26
|
+
return function (modulo) {
|
|
27
|
+
return function (type) {
|
|
28
|
+
// GENERATE STRINGIFY PLAN
|
|
29
|
+
var parameter = function (key, programmer) {
|
|
30
|
+
return typescript_1.default.factory.createObjectLiteralExpression([
|
|
31
|
+
typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier("type"), typescript_1.default.factory.createStringLiteral(key)),
|
|
32
|
+
typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier(key), programmer(__assign(__assign({}, project), { options: {} }))(modulo)(type)),
|
|
33
|
+
]);
|
|
34
|
+
};
|
|
35
|
+
// RETURNS
|
|
36
|
+
if (project.options.stringify === "is")
|
|
37
|
+
return parameter("is", IsStringifyProgrammer_1.IsStringifyProgrammer.write);
|
|
38
|
+
else if (project.options.stringify === "validate")
|
|
39
|
+
return parameter("validate", ValidateStringifyProgrammer_1.ValidateStringifyProgrammer.write);
|
|
40
|
+
else if (project.options.stringify === "stringify")
|
|
41
|
+
return parameter("stringify", StringifyProgrammer_1.StringifyProgrammer.write);
|
|
42
|
+
else if (project.options.stringify === null)
|
|
43
|
+
return typescript_1.default.factory.createNull();
|
|
44
|
+
// ASSERT IS DEFAULT
|
|
45
|
+
return parameter("assert", AssertStringifyProgrammer_1.AssertStringifyProgrammer.write);
|
|
33
46
|
};
|
|
34
|
-
// RETURNS
|
|
35
|
-
if (project.options.stringify === "is")
|
|
36
|
-
return parameter("is", IsStringifyProgrammer_1.IsStringifyProgrammer.write);
|
|
37
|
-
else if (project.options.stringify === "validate")
|
|
38
|
-
return parameter("validate", ValidateStringifyProgrammer_1.ValidateStringifyProgrammer.write);
|
|
39
|
-
else if (project.options.stringify === "stringify")
|
|
40
|
-
return parameter("stringify", StringifyProgrammer_1.StringifyProgrammer.write);
|
|
41
|
-
else if (project.options.stringify === null)
|
|
42
|
-
return typescript_1.default.factory.createNull();
|
|
43
|
-
// ASSERT IS DEFAULT
|
|
44
|
-
return parameter("assert", AssertStringifyProgrammer_1.AssertStringifyProgrammer.write);
|
|
45
47
|
};
|
|
46
48
|
};
|
|
47
49
|
})(TypedRouteProgrammer = exports.TypedRouteProgrammer || (exports.TypedRouteProgrammer = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedRouteProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedRouteProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,6FAA4F;AAC5F,qFAAoF;AACpF,iFAAgF;AAChF,iGAAgG;AAKhG,IAAiB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"TypedRouteProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedRouteProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,6FAA4F;AAC5F,qFAAoF;AACpF,iFAAgF;AAChF,iGAAgG;AAKhG,IAAiB,oBAAoB,CAyCpC;AAzCD,WAAiB,oBAAoB;IACpB,6BAAQ,GACjB,UAAC,OAAgC;QACjC,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,IAAa;gBACV,0BAA0B;gBAC1B,IAAM,SAAS,GAAG,UACd,GAAW,EACX,UAIwC;oBAExC,OAAA,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC;wBACrC,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CAC/B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EACnC,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CACtC;wBACD,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CAC/B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAChC,UAAU,uBACH,OAAO,KACV,OAAO,EAAE,EAAE,IACb,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CACnB;qBACJ,CAAC;gBAZF,CAYE,CAAC;gBAEP,UAAU;gBACV,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI;oBAClC,OAAO,SAAS,CAAC,IAAI,EAAE,6CAAqB,CAAC,KAAK,CAAC,CAAC;qBACnD,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,KAAK,UAAU;oBAC7C,OAAO,SAAS,CAAC,UAAU,EAAE,yDAA2B,CAAC,KAAK,CAAC,CAAC;qBAC/D,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,KAAK,WAAW;oBAC9C,OAAO,SAAS,CAAC,WAAW,EAAE,yCAAmB,CAAC,KAAK,CAAC,CAAC;qBACxD,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI;oBACvC,OAAO,oBAAE,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAEnC,oBAAoB;gBACpB,OAAO,SAAS,CAAC,QAAQ,EAAE,qDAAyB,CAAC,KAAK,CAAC,CAAC;YAChE,CAAC;QApCD,CAoCC;IArCD,CAqCC,CAAC;AACV,CAAC,EAzCgB,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAyCpC"}
|
|
@@ -67,7 +67,7 @@ var MethodDecoratorTransformer;
|
|
|
67
67
|
return decorator;
|
|
68
68
|
// DO TRANSFORM
|
|
69
69
|
return typescript_1.default.factory.createDecorator(typescript_1.default.factory.updateCallExpression(decorator.expression, decorator.expression.expression, decorator.expression.typeArguments, __spreadArray(__spreadArray([], __read(decorator.expression.arguments), false), [
|
|
70
|
-
TypedRouteProgrammer_1.TypedRouteProgrammer.generate(project
|
|
70
|
+
TypedRouteProgrammer_1.TypedRouteProgrammer.generate(project)(decorator.expression.expression)(type),
|
|
71
71
|
], false)));
|
|
72
72
|
}
|
|
73
73
|
MethodDecoratorTransformer.transform = transform;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MethodDecoratorTransformer.js","sourceRoot":"","sources":["../../src/transformers/MethodDecoratorTransformer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAwB;AACxB,0DAA4B;AAG5B,4EAA2E;AAE3E,IAAiB,0BAA0B,
|
|
1
|
+
{"version":3,"file":"MethodDecoratorTransformer.js","sourceRoot":"","sources":["../../src/transformers/MethodDecoratorTransformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,18 +47,18 @@ var FUNCTORS = {
|
|
|
47
47
|
EncryptedBody: function (project, modulo) { return function (parameters) { return function (type) {
|
|
48
48
|
return parameters.length
|
|
49
49
|
? parameters
|
|
50
|
-
: [TypedBodyProgrammer_1.TypedBodyProgrammer.generate(project
|
|
50
|
+
: [TypedBodyProgrammer_1.TypedBodyProgrammer.generate(project)(modulo)(type)];
|
|
51
51
|
}; }; },
|
|
52
52
|
TypedBody: function (project, modulo) { return function (parameters) { return function (type) {
|
|
53
53
|
return parameters.length
|
|
54
54
|
? parameters
|
|
55
|
-
: [TypedBodyProgrammer_1.TypedBodyProgrammer.generate(project
|
|
55
|
+
: [TypedBodyProgrammer_1.TypedBodyProgrammer.generate(project)(modulo)(type)];
|
|
56
56
|
}; }; },
|
|
57
57
|
TypedParam: TypedParamProgrammer_1.TypedParamProgrammer.generate,
|
|
58
58
|
TypedQuery: function (project, modulo) { return function (parameters) { return function (type) {
|
|
59
59
|
return parameters.length
|
|
60
60
|
? parameters
|
|
61
|
-
: [TypedQueryProgrammer_1.TypedQueryProgrammer.generate(project
|
|
61
|
+
: [TypedQueryProgrammer_1.TypedQueryProgrammer.generate(project)(modulo)(type)];
|
|
62
62
|
}; }; },
|
|
63
63
|
};
|
|
64
64
|
var LIB_PATH = path_1.default.join("node_modules", "@nestia", "core", "lib", "decorators");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParameterDecoratorTransformer.js","sourceRoot":"","sources":["../../src/transformers/ParameterDecoratorTransformer.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAwB;AACxB,0DAA4B;AAG5B,0EAAyE;AACzE,4EAA2E;AAC3E,4EAA2E;AAE3E,IAAiB,6BAA6B,CAoD7C;AApDD,WAAiB,6BAA6B;IAC1C,SAAgB,SAAS,CACrB,OAAgC,EAChC,IAAa,EACb,SAAuB;;QAEvB,MAAM;QACN,cAAc;QACd,MAAM;QACN,kBAAkB;QAClB,IAAI,CAAC,oBAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC;YAAE,OAAO,SAAS,CAAC;QAEjE,wBAAwB;QACxB,IAAM,WAAW,GACb,MAAA,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAChC,SAAS,CAAC,UAAU,CACvB,0CAAE,WAAW,CAAC;QACnB,IAAI,WAAW,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAEhD,YAAY;QACZ,IAAM,IAAI,GAAW,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,CAAC;QACxE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC9D,OAAO,SAAS,CAAC;QAErB,MAAM;QACN,iBAAiB;QACjB,MAAM;QACN,kBAAkB;QAClB,IAAM,UAAU,GACZ,QAAQ,CACJ,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI,CAC7D,CAAC;QACN,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAE/C,gBAAgB;QAChB,IAAM,QAAQ,GACV,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC/D,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAE7C,eAAe;QACf,OAAO,oBAAE,CAAC,OAAO,CAAC,eAAe,CAC7B,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC3B,SAAS,CAAC,UAAU,EACpB,SAAS,CAAC,UAAU,CAAC,UAAU,EAC/B,SAAS,CAAC,UAAU,CAAC,aAAa,EAClC,UAAU,CACN,OAAO,EACP,SAAS,CAAC,UAAU,CAAC,UAAU,CAClC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAC1C,CACJ,CAAC;IACN,CAAC;IAlDe,uCAAS,YAkDxB,CAAA;AACL,CAAC,EApDgB,6BAA6B,GAA7B,qCAA6B,KAA7B,qCAA6B,QAoD7C;AASD,IAAM,QAAQ,GAA+B;IACzC,aAAa,EAAE,UAAC,OAAO,EAAE,MAAM,IAAK,OAAA,UAAC,UAAU,IAAK,OAAA,UAAC,IAAI;QACrD,OAAA,UAAU,CAAC,MAAM;YACb,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,CAAC,yCAAmB,CAAC,QAAQ,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"ParameterDecoratorTransformer.js","sourceRoot":"","sources":["../../src/transformers/ParameterDecoratorTransformer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
BadRequestException,
|
|
3
|
+
ExecutionContext,
|
|
4
|
+
createParamDecorator,
|
|
5
|
+
} from "@nestjs/common";
|
|
2
6
|
import express from "express";
|
|
3
7
|
|
|
4
|
-
import { assert } from "typia";
|
|
8
|
+
import { TypeGuardError, assert } from "typia";
|
|
5
9
|
|
|
6
10
|
import { TransformError } from "./internal/TransformError";
|
|
7
11
|
|
|
@@ -29,7 +33,21 @@ export function TypedQuery<T>(
|
|
|
29
33
|
) {
|
|
30
34
|
const request: express.Request = ctx.switchToHttp().getRequest();
|
|
31
35
|
const params: URLSearchParams = new URLSearchParams(tail(request.url));
|
|
32
|
-
|
|
36
|
+
try {
|
|
37
|
+
return decoder(params);
|
|
38
|
+
} catch (exp) {
|
|
39
|
+
if (exp instanceof TypeGuardError) {
|
|
40
|
+
throw new BadRequestException({
|
|
41
|
+
path: exp.path,
|
|
42
|
+
reason: exp.message,
|
|
43
|
+
expected: exp.expected,
|
|
44
|
+
value: exp.value,
|
|
45
|
+
message:
|
|
46
|
+
"Request query parameters are not following the promised type.",
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
throw exp;
|
|
50
|
+
}
|
|
33
51
|
})();
|
|
34
52
|
}
|
|
35
53
|
|
|
@@ -40,7 +58,12 @@ export namespace TypedQuery {
|
|
|
40
58
|
export function boolean(str: string | null): boolean | null | undefined {
|
|
41
59
|
if (str === null) return undefined;
|
|
42
60
|
else if (str === "null") return null;
|
|
43
|
-
|
|
61
|
+
else if (str.length === 0) return true;
|
|
62
|
+
return str === "true" || str === "1"
|
|
63
|
+
? true
|
|
64
|
+
: str === "false" || str === "0"
|
|
65
|
+
? false
|
|
66
|
+
: (str as any); // wrong type
|
|
44
67
|
}
|
|
45
68
|
export function number(str: string | null): number | null | undefined {
|
|
46
69
|
return str?.length ? (str === "null" ? null : Number(str)) : undefined;
|
|
@@ -9,7 +9,8 @@ import { INestiaTransformProject } from "../options/INestiaTransformProject";
|
|
|
9
9
|
|
|
10
10
|
export namespace TypedBodyProgrammer {
|
|
11
11
|
export const generate =
|
|
12
|
-
(project: INestiaTransformProject
|
|
12
|
+
(project: INestiaTransformProject) =>
|
|
13
|
+
(modulo: ts.LeftHandSideExpression) =>
|
|
13
14
|
(type: ts.Type): ts.ObjectLiteralExpression => {
|
|
14
15
|
// GENERATE VALIDATION PLAN
|
|
15
16
|
const parameter = (
|
|
@@ -15,7 +15,8 @@ import { INestiaTransformProject } from "../options/INestiaTransformProject";
|
|
|
15
15
|
|
|
16
16
|
export namespace TypedQueryProgrammer {
|
|
17
17
|
export const generate =
|
|
18
|
-
(project: INestiaTransformProject
|
|
18
|
+
(project: INestiaTransformProject) =>
|
|
19
|
+
(modulo: ts.LeftHandSideExpression) =>
|
|
19
20
|
(type: ts.Type): ts.Expression => {
|
|
20
21
|
const object: MetadataObject = getObject(project.checker)(type);
|
|
21
22
|
return decode(project, modulo)(type, object);
|
|
@@ -140,6 +141,7 @@ export namespace TypedQueryProgrammer {
|
|
|
140
141
|
...project,
|
|
141
142
|
options: {
|
|
142
143
|
numeric: true,
|
|
144
|
+
finite: true,
|
|
143
145
|
},
|
|
144
146
|
})(modulo)(false)(type);
|
|
145
147
|
const output = ts.factory.createIdentifier("output");
|
|
@@ -10,7 +10,8 @@ import { INestiaTransformProject } from "../options/INestiaTransformProject";
|
|
|
10
10
|
|
|
11
11
|
export namespace TypedRouteProgrammer {
|
|
12
12
|
export const generate =
|
|
13
|
-
(project: INestiaTransformProject
|
|
13
|
+
(project: INestiaTransformProject) =>
|
|
14
|
+
(modulo: ts.LeftHandSideExpression) =>
|
|
14
15
|
(type: ts.Type): ts.Expression => {
|
|
15
16
|
// GENERATE STRINGIFY PLAN
|
|
16
17
|
const parameter = (
|
|
@@ -56,8 +56,7 @@ export namespace MethodDecoratorTransformer {
|
|
|
56
56
|
decorator.expression.typeArguments,
|
|
57
57
|
[
|
|
58
58
|
...decorator.expression.arguments,
|
|
59
|
-
TypedRouteProgrammer.generate(
|
|
60
|
-
project,
|
|
59
|
+
TypedRouteProgrammer.generate(project)(
|
|
61
60
|
decorator.expression.expression,
|
|
62
61
|
)(type),
|
|
63
62
|
],
|
|
@@ -71,16 +71,16 @@ const FUNCTORS: Record<string, Programmer> = {
|
|
|
71
71
|
EncryptedBody: (project, modulo) => (parameters) => (type) =>
|
|
72
72
|
parameters.length
|
|
73
73
|
? parameters
|
|
74
|
-
: [TypedBodyProgrammer.generate(project
|
|
74
|
+
: [TypedBodyProgrammer.generate(project)(modulo)(type)],
|
|
75
75
|
TypedBody: (project, modulo) => (parameters) => (type) =>
|
|
76
76
|
parameters.length
|
|
77
77
|
? parameters
|
|
78
|
-
: [TypedBodyProgrammer.generate(project
|
|
78
|
+
: [TypedBodyProgrammer.generate(project)(modulo)(type)],
|
|
79
79
|
TypedParam: TypedParamProgrammer.generate,
|
|
80
80
|
TypedQuery: (project, modulo) => (parameters) => (type) =>
|
|
81
81
|
parameters.length
|
|
82
82
|
? parameters
|
|
83
|
-
: [TypedQueryProgrammer.generate(project
|
|
83
|
+
: [TypedQueryProgrammer.generate(project)(modulo)(type)],
|
|
84
84
|
};
|
|
85
85
|
|
|
86
86
|
const LIB_PATH = path.join(
|