@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.
@@ -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 parameter = function (key) {
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 parameter("is")(false)(IsProgrammer_1.IsProgrammer.write);
67
+ return check("is")(false)(IsProgrammer_1.IsProgrammer.write);
49
68
  else if (category === "validate")
50
- return parameter("validate")(false)(ValidateProgrammer_1.ValidateProgrammer.write);
69
+ return check("validate")(false)(ValidateProgrammer_1.ValidateProgrammer.write);
70
+ // STRICT
51
71
  else if (category === "validateEquals")
52
- return parameter("validate")(true)(ValidateProgrammer_1.ValidateProgrammer.write);
72
+ return check("validate")(true)(ValidateProgrammer_1.ValidateProgrammer.write);
53
73
  else if (category === "equals")
54
- return parameter("is")(true)(AssertProgrammer_1.AssertProgrammer.write);
74
+ return check("is")(true)(IsProgrammer_1.IsProgrammer.write);
55
75
  else if (category === "assertEquals")
56
- return parameter("assert")(true)(AssertProgrammer_1.AssertProgrammer.write);
57
- return parameter("assert")(false)(AssertProgrammer_1.AssertProgrammer.write);
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;AAM9E,IAAiB,mBAAmB,CAuDnC;AAvDD,WAAiB,mBAAmB;IACnB,4BAAQ,GACjB,UAAC,OAAgC;QACjC,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,IAAa;gBACV,gBAAgB;gBAChB,yCAAmB,CAAC,OAAO,CAAC,wBAAwB,CAAC,CACjD,OAAO,CAAC,OAAO,CAClB,CAAC,IAAI,CAAC,CAAC;gBAER,2BAA2B;gBAC3B,IAAM,SAAS,GACX,UAAC,GAAuC;oBACxC,OAAA,UAAC,MAAe;wBAChB,OAAA,UACI,UAMwC;4BAExC,OAAA,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC;gCACrC,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;gCACD,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CAC/B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAChC,UAAU,uBACH,OAAO,KACV,OAAO,EAAE;wCACL,OAAO,EAAE,KAAK;wCACd,MAAM,EAAE,KAAK;wCACb,UAAU,EAAE,KAAK;qCACpB,IACH,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAC3B;6BACJ,CAAC;wBAhBF,CAgBE;oBAzBN,CAyBM;gBA1BN,CA0BM,CAAC;gBAEX,UAAU;gBACV,IAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAC1C,IAAI,QAAQ,KAAK,IAAI;oBACjB,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,2BAAY,CAAC,KAAK,CAAC,CAAC;qBACjD,IAAI,QAAQ,KAAK,UAAU;oBAC5B,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,uCAAkB,CAAC,KAAK,CAAC,CAAC;qBAC7D,IAAI,QAAQ,KAAK,gBAAgB;oBAClC,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,uCAAkB,CAAC,KAAK,CAAC,CAAC;qBAC5D,IAAI,QAAQ,KAAK,QAAQ;oBAC1B,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,mCAAgB,CAAC,KAAK,CAAC,CAAC;qBACpD,IAAI,QAAQ,KAAK,cAAc;oBAChC,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,mCAAgB,CAAC,KAAK,CAAC,CAAC;gBAC7D,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,mCAAgB,CAAC,KAAK,CAAC,CAAC;YAC9D,CAAC;QAlDD,CAkDC;IAnDD,CAmDC,CAAC;AACV,CAAC,EAvDgB,mBAAmB,mCAAnB,mBAAmB,QAuDnC"}
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" || category === "validateEquals")
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,CA2CtC;AA3CD,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,IAAI,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,gBAAgB;oBAC7D,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;QAtCD,CAsCC;IAvCD,CAuCC,CAAC;AACV,CAAC,EA3CgB,sBAAsB,sCAAtB,sBAAsB,QA2CtC"}
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" || category === "validateEquals")
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,CAyCxC;AAzCD,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,IAAI,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,gBAAgB;oBAC7D,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;QApCD,CAoCC;IArCD,CAqCC,CAAC;AACV,CAAC,EAzCgB,wBAAwB,wCAAxB,wBAAwB,QAyCxC"}
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" || category === "validateEquals")
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,CAyCpC;AAzCD,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,IAAI,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,gBAAgB;oBAC7D,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;QApCD,CAoCC;IArCD,CAqCC,CAAC;AACV,CAAC,EAzCgB,oBAAoB,oCAApB,oBAAoB,QAyCpC"}
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.20231106",
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.20231106",
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.20231106",
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?: "assert" | "is" | "validate" | "assertEquals" | "equals" | "validateEquals";
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 parameter =
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 parameter("is")(false)(IsProgrammer.write);
89
+ return check("is")(false)(IsProgrammer.write);
57
90
  else if (category === "validate")
58
- return parameter("validate")(false)(ValidateProgrammer.write);
91
+ return check("validate")(false)(ValidateProgrammer.write);
92
+ // STRICT
59
93
  else if (category === "validateEquals")
60
- return parameter("validate")(true)(ValidateProgrammer.write);
94
+ return check("validate")(true)(ValidateProgrammer.write);
61
95
  else if (category === "equals")
62
- return parameter("is")(true)(AssertProgrammer.write);
96
+ return check("is")(true)(IsProgrammer.write);
63
97
  else if (category === "assertEquals")
64
- return parameter("assert")(true)(AssertProgrammer.write);
65
- return parameter("assert")(false)(AssertProgrammer.write);
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 (category === "validate" || category === "validateEquals")
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 (category === "validate" || category === "validateEquals")
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 (category === "validate" || category === "validateEquals")
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
  };