@nestia/core 2.3.5-dev.20231106 → 2.3.5-dev.20231107
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/options/INestiaTransformOptions.d.ts +1 -1
- package/lib/programmers/TypedBodyProgrammer.js +38 -7
- package/lib/programmers/TypedBodyProgrammer.js.map +1 -1
- package/lib/programmers/TypedHeadersProgrammer.js +4 -1
- package/lib/programmers/TypedHeadersProgrammer.js.map +1 -1
- package/lib/programmers/TypedQueryBodyProgrammer.js +4 -1
- package/lib/programmers/TypedQueryBodyProgrammer.js.map +1 -1
- package/lib/programmers/TypedQueryProgrammer.js +4 -1
- package/lib/programmers/TypedQueryProgrammer.js.map +1 -1
- package/package.json +3 -3
- package/src/options/INestiaTransformOptions.ts +14 -1
- package/src/programmers/TypedBodyProgrammer.ts +52 -7
- package/src/programmers/TypedHeadersProgrammer.ts +6 -1
- package/src/programmers/TypedQueryBodyProgrammer.ts +6 -1
- package/src/programmers/TypedQueryProgrammer.ts +6 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export interface INestiaTransformOptions {
|
|
2
|
-
validate?: "assert" | "is" | "validate" | "assertEquals" | "equals" | "validateEquals";
|
|
2
|
+
validate?: "assert" | "is" | "validate" | "assertEquals" | "equals" | "validateEquals" | "assertClone" | "validateClone" | "assertPrune" | "validatePrune";
|
|
3
3
|
stringify?: "stringify" | "assert" | "is" | "validate" | null;
|
|
4
4
|
}
|
|
@@ -20,6 +20,10 @@ var JsonMetadataFactory_1 = require("typia/lib/factories/JsonMetadataFactory");
|
|
|
20
20
|
var AssertProgrammer_1 = require("typia/lib/programmers/AssertProgrammer");
|
|
21
21
|
var IsProgrammer_1 = require("typia/lib/programmers/IsProgrammer");
|
|
22
22
|
var ValidateProgrammer_1 = require("typia/lib/programmers/ValidateProgrammer");
|
|
23
|
+
var MiscAssertCloneProgrammer_1 = require("typia/lib/programmers/misc/MiscAssertCloneProgrammer");
|
|
24
|
+
var MiscAssertPruneProgrammer_1 = require("typia/lib/programmers/misc/MiscAssertPruneProgrammer");
|
|
25
|
+
var MiscValidateCloneProgrammer_1 = require("typia/lib/programmers/misc/MiscValidateCloneProgrammer");
|
|
26
|
+
var MiscValidatePruneProgrammer_1 = require("typia/lib/programmers/misc/MiscValidatePruneProgrammer");
|
|
23
27
|
var TypedBodyProgrammer;
|
|
24
28
|
(function (TypedBodyProgrammer) {
|
|
25
29
|
TypedBodyProgrammer.generate = function (project) {
|
|
@@ -28,7 +32,7 @@ var TypedBodyProgrammer;
|
|
|
28
32
|
// VALIDATE TYPE
|
|
29
33
|
JsonMetadataFactory_1.JsonMetadataFactory.analyze("@nestia.core.TypedBody")(project.checker)(type);
|
|
30
34
|
// GENERATE VALIDATION PLAN
|
|
31
|
-
var
|
|
35
|
+
var check = function (key) {
|
|
32
36
|
return function (equals) {
|
|
33
37
|
return function (programmer) {
|
|
34
38
|
return typescript_1.default.factory.createObjectLiteralExpression([
|
|
@@ -42,19 +46,46 @@ var TypedBodyProgrammer;
|
|
|
42
46
|
};
|
|
43
47
|
};
|
|
44
48
|
};
|
|
49
|
+
var misc = function (key) {
|
|
50
|
+
return function (programmer) {
|
|
51
|
+
return typescript_1.default.factory.createObjectLiteralExpression([
|
|
52
|
+
typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier("type"), typescript_1.default.factory.createStringLiteral(key)),
|
|
53
|
+
typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier(key), programmer(__assign(__assign({}, project), { options: {
|
|
54
|
+
numeric: false,
|
|
55
|
+
finite: false,
|
|
56
|
+
functional: false,
|
|
57
|
+
} }))(modulo)(type)),
|
|
58
|
+
]);
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
//----
|
|
45
62
|
// RETURNS
|
|
63
|
+
//----
|
|
46
64
|
var category = project.options.validate;
|
|
65
|
+
// NORMAL
|
|
47
66
|
if (category === "is")
|
|
48
|
-
return
|
|
67
|
+
return check("is")(false)(IsProgrammer_1.IsProgrammer.write);
|
|
49
68
|
else if (category === "validate")
|
|
50
|
-
return
|
|
69
|
+
return check("validate")(false)(ValidateProgrammer_1.ValidateProgrammer.write);
|
|
70
|
+
// STRICT
|
|
51
71
|
else if (category === "validateEquals")
|
|
52
|
-
return
|
|
72
|
+
return check("validate")(true)(ValidateProgrammer_1.ValidateProgrammer.write);
|
|
53
73
|
else if (category === "equals")
|
|
54
|
-
return
|
|
74
|
+
return check("is")(true)(IsProgrammer_1.IsProgrammer.write);
|
|
55
75
|
else if (category === "assertEquals")
|
|
56
|
-
return
|
|
57
|
-
|
|
76
|
+
return check("assert")(true)(AssertProgrammer_1.AssertProgrammer.write);
|
|
77
|
+
// CLONE
|
|
78
|
+
else if (category === "assertClone")
|
|
79
|
+
return misc("assert")(MiscAssertCloneProgrammer_1.MiscAssertCloneProgrammer.write);
|
|
80
|
+
else if (category === "validateClone")
|
|
81
|
+
return misc("validate")(MiscValidateCloneProgrammer_1.MiscValidateCloneProgrammer.write);
|
|
82
|
+
// PRUNE
|
|
83
|
+
else if (category === "assertPrune")
|
|
84
|
+
return misc("assert")(MiscAssertPruneProgrammer_1.MiscAssertPruneProgrammer.write);
|
|
85
|
+
else if (category === "validatePrune")
|
|
86
|
+
return misc("validate")(MiscValidatePruneProgrammer_1.MiscValidatePruneProgrammer.write);
|
|
87
|
+
// DEFAULT
|
|
88
|
+
return check("assert")(false)(AssertProgrammer_1.AssertProgrammer.write);
|
|
58
89
|
};
|
|
59
90
|
};
|
|
60
91
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedBodyProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedBodyProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,+EAA8E;AAC9E,2EAA0E;AAC1E,mEAAkE;AAClE,+EAA8E;
|
|
1
|
+
{"version":3,"file":"TypedBodyProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedBodyProgrammer.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,7 +41,10 @@ var TypedHeadersProgrammer;
|
|
|
41
41
|
var category = project.options.validate;
|
|
42
42
|
if (category === "is" || category === "equals")
|
|
43
43
|
return parameter("is")(HttpIsHeadersProgrammer_1.HttpIsHeadersProgrammer.write);
|
|
44
|
-
else if (category === "validate" ||
|
|
44
|
+
else if (category === "validate" ||
|
|
45
|
+
category === "validateEquals" ||
|
|
46
|
+
category === "validateClone" ||
|
|
47
|
+
category === "validatePrune")
|
|
45
48
|
return parameter("validate")(HttpValidateHeadersProgrammer_1.HttpValidateHeadersProgrammer.write);
|
|
46
49
|
return parameter("assert")(HttpAssertHeadersProgrammer_1.HttpAssertHeadersProgrammer.write);
|
|
47
50
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedHeadersProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedHeadersProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,sGAAqG;AACrG,8FAA6F;AAC7F,0GAAyG;AAMzG,IAAiB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"TypedHeadersProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedHeadersProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,sGAAqG;AACrG,8FAA6F;AAC7F,0GAAyG;AAMzG,IAAiB,sBAAsB,CAgDtC;AAhDD,WAAiB,sBAAsB;IACtB,+BAAQ,GACjB,UAAC,OAAgC;QACjC,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,IAAa;gBACV,2BAA2B;gBAC3B,IAAM,SAAS,GACX,UAAC,GAA0C;oBAC3C,OAAA,UACI,UAIwC;wBAExC,OAAA,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC;4BACrC,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;4BACD,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CAC/B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAChC,UAAU,uBACH,OAAO,KACV,OAAO,EAAE;oCACL,OAAO,EAAE,KAAK;oCACd,MAAM,EAAE,KAAK;oCACb,UAAU,EAAE,KAAK;iCACpB,IACH,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CACnB;yBACJ,CAAC;oBAhBF,CAgBE;gBAvBN,CAuBM,CAAC;gBAEX,UAAU;gBACV,IAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAC1C,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,QAAQ;oBAC1C,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,iDAAuB,CAAC,KAAK,CAAC,CAAC;qBACrD,IACD,QAAQ,KAAK,UAAU;oBACvB,QAAQ,KAAK,gBAAgB;oBAC7B,QAAQ,KAAK,eAAe;oBAC5B,QAAQ,KAAK,eAAe;oBAE5B,OAAO,SAAS,CAAC,UAAU,CAAC,CACxB,6DAA6B,CAAC,KAAK,CACtC,CAAC;gBACN,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC,yDAA2B,CAAC,KAAK,CAAC,CAAC;YAClE,CAAC;QA3CD,CA2CC;IA5CD,CA4CC,CAAC;AACV,CAAC,EAhDgB,sBAAsB,sCAAtB,sBAAsB,QAgDtC"}
|
|
@@ -41,7 +41,10 @@ var TypedQueryBodyProgrammer;
|
|
|
41
41
|
var category = project.options.validate;
|
|
42
42
|
if (category === "is" || category === "equals")
|
|
43
43
|
return parameter("is")(HttpIsQueryProgrammer_1.HttpIsQueryProgrammer.write);
|
|
44
|
-
else if (category === "validate" ||
|
|
44
|
+
else if (category === "validate" ||
|
|
45
|
+
category === "validateEquals" ||
|
|
46
|
+
category === "validateClone" ||
|
|
47
|
+
category === "validatePrune")
|
|
45
48
|
return parameter("validate")(HttpValidateQueryProgrammer_1.HttpValidateQueryProgrammer.write);
|
|
46
49
|
return parameter("assert")(HttpAssertQueryProgrammer_1.HttpAssertQueryProgrammer.write);
|
|
47
50
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedQueryBodyProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedQueryBodyProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,kGAAiG;AACjG,0FAAyF;AACzF,sGAAqG;AAMrG,IAAiB,wBAAwB,
|
|
1
|
+
{"version":3,"file":"TypedQueryBodyProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedQueryBodyProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,kGAAiG;AACjG,0FAAyF;AACzF,sGAAqG;AAMrG,IAAiB,wBAAwB,CA8CxC;AA9CD,WAAiB,wBAAwB;IACxB,iCAAQ,GACjB,UAAC,OAAgC;QACjC,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,IAAa;gBACV,2BAA2B;gBAC3B,IAAM,SAAS,GACX,UAAC,GAAwC;oBACzC,OAAA,UACI,UAIwC;wBAExC,OAAA,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC;4BACrC,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;4BACD,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CAC/B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAChC,UAAU,uBACH,OAAO,KACV,OAAO,EAAE;oCACL,OAAO,EAAE,KAAK;oCACd,MAAM,EAAE,KAAK;oCACb,UAAU,EAAE,KAAK;iCACpB,IACH,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CACnB;yBACJ,CAAC;oBAhBF,CAgBE;gBAvBN,CAuBM,CAAC;gBAEX,UAAU;gBACV,IAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAC1C,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,QAAQ;oBAC1C,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,6CAAqB,CAAC,KAAK,CAAC,CAAC;qBACnD,IACD,QAAQ,KAAK,UAAU;oBACvB,QAAQ,KAAK,gBAAgB;oBAC7B,QAAQ,KAAK,eAAe;oBAC5B,QAAQ,KAAK,eAAe;oBAE5B,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC,yDAA2B,CAAC,KAAK,CAAC,CAAC;gBACpE,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC,qDAAyB,CAAC,KAAK,CAAC,CAAC;YAChE,CAAC;QAzCD,CAyCC;IA1CD,CA0CC,CAAC;AACV,CAAC,EA9CgB,wBAAwB,wCAAxB,wBAAwB,QA8CxC"}
|
|
@@ -41,7 +41,10 @@ var TypedQueryProgrammer;
|
|
|
41
41
|
var category = project.options.validate;
|
|
42
42
|
if (category === "is" || category === "equals")
|
|
43
43
|
return parameter("is")(HttpIsQueryProgrammer_1.HttpIsQueryProgrammer.write);
|
|
44
|
-
else if (category === "validate" ||
|
|
44
|
+
else if (category === "validate" ||
|
|
45
|
+
category === "validateEquals" ||
|
|
46
|
+
category === "validateClone" ||
|
|
47
|
+
category === "validatePrune")
|
|
45
48
|
return parameter("validate")(HttpValidateQueryProgrammer_1.HttpValidateQueryProgrammer.write);
|
|
46
49
|
return parameter("assert")(HttpAssertQueryProgrammer_1.HttpAssertQueryProgrammer.write);
|
|
47
50
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedQueryProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedQueryProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,kGAAiG;AACjG,0FAAyF;AACzF,sGAAqG;AAMrG,IAAiB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"TypedQueryProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedQueryProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,kGAAiG;AACjG,0FAAyF;AACzF,sGAAqG;AAMrG,IAAiB,oBAAoB,CA8CpC;AA9CD,WAAiB,oBAAoB;IACpB,6BAAQ,GACjB,UAAC,OAAgC;QACjC,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,IAAa;gBACV,2BAA2B;gBAC3B,IAAM,SAAS,GACX,UAAC,GAAwC;oBACzC,OAAA,UACI,UAIwC;wBAExC,OAAA,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC;4BACrC,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;4BACD,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CAC/B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAChC,UAAU,uBACH,OAAO,KACV,OAAO,EAAE;oCACL,OAAO,EAAE,KAAK;oCACd,MAAM,EAAE,KAAK;oCACb,UAAU,EAAE,KAAK;iCACpB,IACH,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CACnB;yBACJ,CAAC;oBAhBF,CAgBE;gBAvBN,CAuBM,CAAC;gBAEX,UAAU;gBACV,IAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAC1C,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,QAAQ;oBAC1C,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,6CAAqB,CAAC,KAAK,CAAC,CAAC;qBACnD,IACD,QAAQ,KAAK,UAAU;oBACvB,QAAQ,KAAK,gBAAgB;oBAC7B,QAAQ,KAAK,eAAe;oBAC5B,QAAQ,KAAK,eAAe;oBAE5B,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC,yDAA2B,CAAC,KAAK,CAAC,CAAC;gBACpE,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC,qDAAyB,CAAC,KAAK,CAAC,CAAC;YAChE,CAAC;QAzCD,CAyCC;IA1CD,CA0CC,CAAC;AACV,CAAC,EA9CgB,oBAAoB,oCAApB,oBAAoB,QA8CpC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestia/core",
|
|
3
|
-
"version": "2.3.5-dev.
|
|
3
|
+
"version": "2.3.5-dev.20231107",
|
|
4
4
|
"description": "Super-fast validation decorators of NestJS",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
},
|
|
35
35
|
"homepage": "https://nestia.io",
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@nestia/fetcher": "^2.3.5-dev.
|
|
37
|
+
"@nestia/fetcher": "^2.3.5-dev.20231107",
|
|
38
38
|
"@nestjs/common": ">=7.0.1",
|
|
39
39
|
"@nestjs/core": ">=7.0.1",
|
|
40
40
|
"@nestjs/platform-express": ">=7.0.1",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"typia": "^5.2.5"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
|
-
"@nestia/fetcher": ">=2.3.5-dev.
|
|
50
|
+
"@nestia/fetcher": ">=2.3.5-dev.20231107",
|
|
51
51
|
"@nestjs/common": ">=7.0.1",
|
|
52
52
|
"@nestjs/core": ">=7.0.1",
|
|
53
53
|
"@nestjs/platform-express": ">=7.0.1",
|
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
export interface INestiaTransformOptions {
|
|
2
|
-
validate?:
|
|
2
|
+
validate?: // NORMAL
|
|
3
|
+
| "assert"
|
|
4
|
+
| "is"
|
|
5
|
+
| "validate"
|
|
6
|
+
// STRICT
|
|
7
|
+
| "assertEquals"
|
|
8
|
+
| "equals"
|
|
9
|
+
| "validateEquals"
|
|
10
|
+
// CLONE
|
|
11
|
+
| "assertClone"
|
|
12
|
+
| "validateClone"
|
|
13
|
+
// PRUNE
|
|
14
|
+
| "assertPrune"
|
|
15
|
+
| "validatePrune";
|
|
3
16
|
stringify?: "stringify" | "assert" | "is" | "validate" | null;
|
|
4
17
|
}
|
|
@@ -4,6 +4,10 @@ import { JsonMetadataFactory } from "typia/lib/factories/JsonMetadataFactory";
|
|
|
4
4
|
import { AssertProgrammer } from "typia/lib/programmers/AssertProgrammer";
|
|
5
5
|
import { IsProgrammer } from "typia/lib/programmers/IsProgrammer";
|
|
6
6
|
import { ValidateProgrammer } from "typia/lib/programmers/ValidateProgrammer";
|
|
7
|
+
import { MiscAssertCloneProgrammer } from "typia/lib/programmers/misc/MiscAssertCloneProgrammer";
|
|
8
|
+
import { MiscAssertPruneProgrammer } from "typia/lib/programmers/misc/MiscAssertPruneProgrammer";
|
|
9
|
+
import { MiscValidateCloneProgrammer } from "typia/lib/programmers/misc/MiscValidateCloneProgrammer";
|
|
10
|
+
import { MiscValidatePruneProgrammer } from "typia/lib/programmers/misc/MiscValidatePruneProgrammer";
|
|
7
11
|
import { IProject } from "typia/lib/transformers/IProject";
|
|
8
12
|
|
|
9
13
|
import { INestiaTransformProject } from "../options/INestiaTransformProject";
|
|
@@ -20,7 +24,7 @@ export namespace TypedBodyProgrammer {
|
|
|
20
24
|
)(type);
|
|
21
25
|
|
|
22
26
|
// GENERATE VALIDATION PLAN
|
|
23
|
-
const
|
|
27
|
+
const check =
|
|
24
28
|
(key: IRequestBodyValidator<any>["type"]) =>
|
|
25
29
|
(equals: boolean) =>
|
|
26
30
|
(
|
|
@@ -49,19 +53,60 @@ export namespace TypedBodyProgrammer {
|
|
|
49
53
|
})(modulo)(equals)(type),
|
|
50
54
|
),
|
|
51
55
|
]);
|
|
56
|
+
const misc =
|
|
57
|
+
(key: IRequestBodyValidator<any>["type"]) =>
|
|
58
|
+
(
|
|
59
|
+
programmer: (
|
|
60
|
+
project: IProject,
|
|
61
|
+
) => (
|
|
62
|
+
modulo: ts.LeftHandSideExpression,
|
|
63
|
+
) => (type: ts.Type) => ts.ArrowFunction,
|
|
64
|
+
) =>
|
|
65
|
+
ts.factory.createObjectLiteralExpression([
|
|
66
|
+
ts.factory.createPropertyAssignment(
|
|
67
|
+
ts.factory.createIdentifier("type"),
|
|
68
|
+
ts.factory.createStringLiteral(key),
|
|
69
|
+
),
|
|
70
|
+
ts.factory.createPropertyAssignment(
|
|
71
|
+
ts.factory.createIdentifier(key),
|
|
72
|
+
programmer({
|
|
73
|
+
...project,
|
|
74
|
+
options: {
|
|
75
|
+
numeric: false,
|
|
76
|
+
finite: false,
|
|
77
|
+
functional: false,
|
|
78
|
+
},
|
|
79
|
+
})(modulo)(type),
|
|
80
|
+
),
|
|
81
|
+
]);
|
|
52
82
|
|
|
83
|
+
//----
|
|
53
84
|
// RETURNS
|
|
85
|
+
//----
|
|
54
86
|
const category = project.options.validate;
|
|
87
|
+
// NORMAL
|
|
55
88
|
if (category === "is")
|
|
56
|
-
return
|
|
89
|
+
return check("is")(false)(IsProgrammer.write);
|
|
57
90
|
else if (category === "validate")
|
|
58
|
-
return
|
|
91
|
+
return check("validate")(false)(ValidateProgrammer.write);
|
|
92
|
+
// STRICT
|
|
59
93
|
else if (category === "validateEquals")
|
|
60
|
-
return
|
|
94
|
+
return check("validate")(true)(ValidateProgrammer.write);
|
|
61
95
|
else if (category === "equals")
|
|
62
|
-
return
|
|
96
|
+
return check("is")(true)(IsProgrammer.write);
|
|
63
97
|
else if (category === "assertEquals")
|
|
64
|
-
return
|
|
65
|
-
|
|
98
|
+
return check("assert")(true)(AssertProgrammer.write);
|
|
99
|
+
// CLONE
|
|
100
|
+
else if (category === "assertClone")
|
|
101
|
+
return misc("assert")(MiscAssertCloneProgrammer.write);
|
|
102
|
+
else if (category === "validateClone")
|
|
103
|
+
return misc("validate")(MiscValidateCloneProgrammer.write);
|
|
104
|
+
// PRUNE
|
|
105
|
+
else if (category === "assertPrune")
|
|
106
|
+
return misc("assert")(MiscAssertPruneProgrammer.write);
|
|
107
|
+
else if (category === "validatePrune")
|
|
108
|
+
return misc("validate")(MiscValidatePruneProgrammer.write);
|
|
109
|
+
// DEFAULT
|
|
110
|
+
return check("assert")(false)(AssertProgrammer.write);
|
|
66
111
|
};
|
|
67
112
|
}
|
|
@@ -45,7 +45,12 @@ export namespace TypedHeadersProgrammer {
|
|
|
45
45
|
const category = project.options.validate;
|
|
46
46
|
if (category === "is" || category === "equals")
|
|
47
47
|
return parameter("is")(HttpIsHeadersProgrammer.write);
|
|
48
|
-
else if (
|
|
48
|
+
else if (
|
|
49
|
+
category === "validate" ||
|
|
50
|
+
category === "validateEquals" ||
|
|
51
|
+
category === "validateClone" ||
|
|
52
|
+
category === "validatePrune"
|
|
53
|
+
)
|
|
49
54
|
return parameter("validate")(
|
|
50
55
|
HttpValidateHeadersProgrammer.write,
|
|
51
56
|
);
|
|
@@ -45,7 +45,12 @@ export namespace TypedQueryBodyProgrammer {
|
|
|
45
45
|
const category = project.options.validate;
|
|
46
46
|
if (category === "is" || category === "equals")
|
|
47
47
|
return parameter("is")(HttpIsQueryProgrammer.write);
|
|
48
|
-
else if (
|
|
48
|
+
else if (
|
|
49
|
+
category === "validate" ||
|
|
50
|
+
category === "validateEquals" ||
|
|
51
|
+
category === "validateClone" ||
|
|
52
|
+
category === "validatePrune"
|
|
53
|
+
)
|
|
49
54
|
return parameter("validate")(HttpValidateQueryProgrammer.write);
|
|
50
55
|
return parameter("assert")(HttpAssertQueryProgrammer.write);
|
|
51
56
|
};
|
|
@@ -45,7 +45,12 @@ export namespace TypedQueryProgrammer {
|
|
|
45
45
|
const category = project.options.validate;
|
|
46
46
|
if (category === "is" || category === "equals")
|
|
47
47
|
return parameter("is")(HttpIsQueryProgrammer.write);
|
|
48
|
-
else if (
|
|
48
|
+
else if (
|
|
49
|
+
category === "validate" ||
|
|
50
|
+
category === "validateEquals" ||
|
|
51
|
+
category === "validateClone" ||
|
|
52
|
+
category === "validatePrune"
|
|
53
|
+
)
|
|
49
54
|
return parameter("validate")(HttpValidateQueryProgrammer.write);
|
|
50
55
|
return parameter("assert")(HttpAssertQueryProgrammer.write);
|
|
51
56
|
};
|