@nestia/core 2.1.3 → 2.1.4-dev.20230928

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.
@@ -16,6 +16,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.TypedBodyProgrammer = void 0;
18
18
  var typescript_1 = __importDefault(require("typescript"));
19
+ var JsonMetadataFactory_1 = require("typia/lib/factories/JsonMetadataFactory");
19
20
  var AssertProgrammer_1 = require("typia/lib/programmers/AssertProgrammer");
20
21
  var IsProgrammer_1 = require("typia/lib/programmers/IsProgrammer");
21
22
  var ValidateProgrammer_1 = require("typia/lib/programmers/ValidateProgrammer");
@@ -24,6 +25,8 @@ var TypedBodyProgrammer;
24
25
  TypedBodyProgrammer.generate = function (project) {
25
26
  return function (modulo) {
26
27
  return function (type) {
28
+ // VALIDATE TYPE
29
+ JsonMetadataFactory_1.JsonMetadataFactory.analyze("@nestia.core.TypedBody")(project.checker)(type);
27
30
  // GENERATE VALIDATION PLAN
28
31
  var parameter = function (key) {
29
32
  return function (equals) {
@@ -1 +1 @@
1
- {"version":3,"file":"TypedBodyProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedBodyProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,2EAA0E;AAC1E,mEAAkE;AAClE,+EAA8E;AAM9E,IAAiB,mBAAmB,CAkDnC;AAlDD,WAAiB,mBAAmB;IACnB,4BAAQ,GACjB,UAAC,OAAgC;QACjC,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,IAAa;gBACV,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;QA7CD,CA6CC;IA9CD,CA8CC,CAAC;AACV,CAAC,EAlDgB,mBAAmB,mCAAnB,mBAAmB,QAkDnC"}
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"}
@@ -5,7 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.TypedExceptionProgrammer = void 0;
7
7
  var typescript_1 = __importDefault(require("typescript"));
8
+ var JsonMetadataFactory_1 = require("typia/lib/factories/JsonMetadataFactory");
8
9
  var TypeFactory_1 = require("typia/lib/factories/TypeFactory");
10
+ var TransformerError_1 = require("typia/lib/transformers/TransformerError");
9
11
  var TypedExceptionProgrammer;
10
12
  (function (TypedExceptionProgrammer) {
11
13
  TypedExceptionProgrammer.generate = function (_a) {
@@ -14,12 +16,40 @@ var TypedExceptionProgrammer;
14
16
  var _a, _b;
15
17
  // CHECK GENERIC ARGUMENT EXISTENCE
16
18
  if (!((_a = expression.typeArguments) === null || _a === void 0 ? void 0 : _a[0]))
17
- throw new Error(NOT_SPECIFIED);
19
+ throw TransformerError_1.TransformerError.from("@nestia.core.TypedException")([
20
+ {
21
+ name: "uknown",
22
+ messages: [NOT_SPECIFIED],
23
+ explore: {
24
+ top: true,
25
+ object: null,
26
+ property: null,
27
+ nested: null,
28
+ escaped: false,
29
+ aliased: false,
30
+ },
31
+ },
32
+ ]);
18
33
  // GET TYPE INFO
19
34
  var node = expression.typeArguments[0];
20
35
  var type = checker.getTypeFromTypeNode(node);
36
+ // VALIDATE TYPE
21
37
  if (type.isTypeParameter())
22
- throw new Error(NO_GENERIC_ARGUMENT);
38
+ throw TransformerError_1.TransformerError.from("@nestia.core.TypedException")([
39
+ {
40
+ name: TypeFactory_1.TypeFactory.getFullName(checker)(type),
41
+ messages: [NO_GENERIC_ARGUMENT],
42
+ explore: {
43
+ top: true,
44
+ object: null,
45
+ property: null,
46
+ nested: null,
47
+ escaped: false,
48
+ aliased: false,
49
+ },
50
+ },
51
+ ]);
52
+ JsonMetadataFactory_1.JsonMetadataFactory.analyze("@nestia.core.TypedException")(checker)(type);
23
53
  // CHECK DUPLICATED TRNASFORMATION
24
54
  if (expression.arguments.length === 3)
25
55
  return expression;
@@ -1 +1 @@
1
- {"version":3,"file":"TypedExceptionProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedExceptionProgrammer.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,+DAA8D;AAI9D,IAAiB,wBAAwB,CA8BxC;AA9BD,WAAiB,wBAAwB;IACxB,iCAAQ,GACjB,UAAC,EAAoC;YAAlC,OAAO,aAAA;QACV,OAAA,UAAC,UAA6B;;YAC1B,mCAAmC;YACnC,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,aAAa,0CAAG,CAAC,CAAC,CAAA;gBAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;YAEnE,gBAAgB;YAChB,IAAM,IAAI,GAAgB,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACtD,IAAM,IAAI,GAAY,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAExD,IAAI,IAAI,CAAC,eAAe,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAEjE,kCAAkC;YAClC,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,UAAU,CAAC;YAEzD,eAAe;YACf,IAAM,IAAI,GAAW,yBAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;YAC5D,OAAO,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAClC,UAAU,EACV,UAAU,CAAC,UAAU,EACrB,UAAU,CAAC,aAAa,EACxB;gBACI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;gBACvB,MAAA,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,mCACnB,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC;gBAC5C,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC;aACvC,CACJ,CAAC;QACN,CAAC;IA1BD,CA0BC,CAAC;AACV,CAAC,EA9BgB,wBAAwB,wCAAxB,wBAAwB,QA8BxC;AAED,IAAM,aAAa,GACf,4EAA4E,CAAC;AACjF,IAAM,mBAAmB,GACrB,yEAAyE,CAAC"}
1
+ {"version":3,"file":"TypedExceptionProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedExceptionProgrammer.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,+EAA8E;AAC9E,+DAA8D;AAC9D,4EAA2E;AAI3E,IAAiB,wBAAwB,CA8DxC;AA9DD,WAAiB,wBAAwB;IACxB,iCAAQ,GACjB,UAAC,EAAoC;YAAlC,OAAO,aAAA;QACV,OAAA,UAAC,UAA6B;;YAC1B,mCAAmC;YACnC,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,aAAa,0CAAG,CAAC,CAAC,CAAA;gBAC9B,MAAM,mCAAgB,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;oBACvD;wBACI,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,CAAC,aAAa,CAAC;wBACzB,OAAO,EAAE;4BACL,GAAG,EAAE,IAAI;4BACT,MAAM,EAAE,IAAI;4BACZ,QAAQ,EAAE,IAAI;4BACd,MAAM,EAAE,IAAI;4BACZ,OAAO,EAAE,KAAK;4BACd,OAAO,EAAE,KAAK;yBACjB;qBACJ;iBACJ,CAAC,CAAC;YAEP,gBAAgB;YAChB,IAAM,IAAI,GAAgB,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACtD,IAAM,IAAI,GAAY,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAExD,gBAAgB;YAChB,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,MAAM,mCAAgB,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;oBACvD;wBACI,IAAI,EAAE,yBAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;wBAC5C,QAAQ,EAAE,CAAC,mBAAmB,CAAC;wBAC/B,OAAO,EAAE;4BACL,GAAG,EAAE,IAAI;4BACT,MAAM,EAAE,IAAI;4BACZ,QAAQ,EAAE,IAAI;4BACd,MAAM,EAAE,IAAI;4BACZ,OAAO,EAAE,KAAK;4BACd,OAAO,EAAE,KAAK;yBACjB;qBACJ;iBACJ,CAAC,CAAC;YACP,yCAAmB,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,OAAO,CAAC,CAC/D,IAAI,CACP,CAAC;YAEF,kCAAkC;YAClC,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,UAAU,CAAC;YAEzD,eAAe;YACf,IAAM,IAAI,GAAW,yBAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;YAC5D,OAAO,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAClC,UAAU,EACV,UAAU,CAAC,UAAU,EACrB,UAAU,CAAC,aAAa,EACxB;gBACI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;gBACvB,MAAA,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,mCACnB,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC;gBAC5C,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC;aACvC,CACJ,CAAC;QACN,CAAC;IA1DD,CA0DC,CAAC;AACV,CAAC,EA9DgB,wBAAwB,wCAAxB,wBAAwB,QA8DxC;AAED,IAAM,aAAa,GACf,4EAA4E,CAAC;AACjF,IAAM,mBAAmB,GACrB,yEAAyE,CAAC"}
@@ -25,38 +25,46 @@ var FileTransformer;
25
25
  return file.isDeclarationFile
26
26
  ? file
27
27
  : typescript_1.default.visitEachChild(file, function (node) {
28
- return iterate_node(__assign(__assign({}, project), { context: context }))(context)(node);
28
+ return iterate_node(__assign(__assign({}, project), { context: context }))(context)(file)(node);
29
29
  }, context);
30
30
  };
31
31
  };
32
32
  };
33
33
  var iterate_node = function (project) {
34
34
  return function (context) {
35
- return function (node) {
36
- var _a;
37
- return typescript_1.default.visitEachChild((_a = try_transform_node(project)(node)) !== null && _a !== void 0 ? _a : node, function (child) { return iterate_node(project)(context)(child); }, context);
35
+ return function (file) {
36
+ return function (node) {
37
+ var _a;
38
+ return typescript_1.default.visitEachChild((_a = try_transform_node(project)(file)(node)) !== null && _a !== void 0 ? _a : node, function (child) { return iterate_node(project)(context)(file)(child); }, context);
39
+ };
38
40
  };
39
41
  };
40
42
  };
41
43
  var try_transform_node = function (project) {
42
- return function (node) {
43
- try {
44
- return NodeTransformer_1.NodeTransformer.transform(project)(node);
45
- }
46
- catch (exp) {
47
- // ONLY ACCEPT TRANSFORMER-ERROR
48
- if (!isTransformerError(exp))
49
- throw exp;
50
- // REPORT DIAGNOSTIC
51
- var diagnostic = typescript_1.default.createDiagnosticForNode(node, {
52
- key: exp.code,
53
- category: typescript_1.default.DiagnosticCategory.Error,
54
- message: exp.message,
55
- code: "(".concat(exp.code, ")"),
56
- });
57
- project.extras.addDiagnostic(diagnostic);
58
- return null;
59
- }
44
+ return function (file) {
45
+ return function (node) {
46
+ var _a;
47
+ var _b;
48
+ try {
49
+ return NodeTransformer_1.NodeTransformer.transform(project)(node);
50
+ }
51
+ catch (exp) {
52
+ // ONLY ACCEPT TRANSFORMER-ERROR
53
+ if (!isTransformerError(exp))
54
+ throw exp;
55
+ // AVOID SPECIAL BUG OF TYPESCRIPT COMPILER API
56
+ (_a = (_b = node).parent) !== null && _a !== void 0 ? _a : (_b.parent = file);
57
+ // REPORT DIAGNOSTIC
58
+ var diagnostic = typescript_1.default.createDiagnosticForNode(node, {
59
+ key: exp.code,
60
+ category: typescript_1.default.DiagnosticCategory.Error,
61
+ message: exp.message,
62
+ code: "(".concat(exp.code, ")"),
63
+ });
64
+ project.extras.addDiagnostic(diagnostic);
65
+ return null;
66
+ }
67
+ };
60
68
  };
61
69
  };
62
70
  })(FileTransformer || (exports.FileTransformer = FileTransformer = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"FileTransformer.js","sourceRoot":"","sources":["../../src/transformers/FileTransformer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAK5B,qDAAoD;AAEpD,IAAiB,eAAe,CA+C/B;AA/CD,WAAiB,eAAe;IACf,yBAAS,GAClB,UAAC,OAAiD;QAClD,OAAA,UAAC,OAAiC;YAClC,OAAA,UAAC,IAAmB;gBAChB,OAAA,IAAI,CAAC,iBAAiB;oBAClB,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,oBAAE,CAAC,cAAc,CACb,IAAI,EACJ,UAAC,IAAI;wBACD,OAAA,YAAY,uBACL,OAAO,KACV,OAAO,SAAA,IACT,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;oBAHjB,CAGiB,EACrB,OAAO,CACV;YAVP,CAUO;QAXX,CAWW;IAZX,CAYW,CAAC;IAEhB,IAAM,YAAY,GACd,UAAC,OAAgC;QACjC,OAAA,UAAC,OAAiC;YAClC,OAAA,UAAC,IAAa;;gBACV,OAAA,oBAAE,CAAC,cAAc,CACb,MAAA,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,mCAAI,IAAI,EACzC,UAAC,KAAK,IAAK,OAAA,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAArC,CAAqC,EAChD,OAAO,CACV,CAAA;aAAA;QALL,CAKK;IANL,CAMK,CAAC;IAEV,IAAM,kBAAkB,GACpB,UAAC,OAAgC;QACjC,OAAA,UAAC,IAAa;YACV,IAAI;gBACA,OAAO,iCAAe,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;aACnD;YAAC,OAAO,GAAG,EAAE;gBACV,gCAAgC;gBAChC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;oBAAE,MAAM,GAAG,CAAC;gBAExC,oBAAoB;gBACpB,IAAM,UAAU,GAAG,oBAAE,CAAC,uBAAuB,CAAC,IAAI,EAAE;oBAChD,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,QAAQ,EAAE,oBAAE,CAAC,kBAAkB,CAAC,KAAK;oBACrC,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,IAAI,EAAE,WAAI,GAAG,CAAC,IAAI,MAAU;iBAC/B,CAAC,CAAC;gBACH,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBACzC,OAAO,IAAI,CAAC;aACf;QACL,CAAC;IAjBD,CAiBC,CAAC;AACV,CAAC,EA/CgB,eAAe,+BAAf,eAAe,QA+C/B;AAED,IAAM,kBAAkB,GAAG,UAAC,KAAU;IAClC,OAAA,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,kBAAkB;QAC7C,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC9B,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;AAJjC,CAIiC,CAAC"}
1
+ {"version":3,"file":"FileTransformer.js","sourceRoot":"","sources":["../../src/transformers/FileTransformer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAK5B,qDAAoD;AAEpD,IAAiB,eAAe,CAoD/B;AApDD,WAAiB,eAAe;IACf,yBAAS,GAClB,UAAC,OAAiD;QAClD,OAAA,UAAC,OAAiC;YAClC,OAAA,UAAC,IAAmB;gBAChB,OAAA,IAAI,CAAC,iBAAiB;oBAClB,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,oBAAE,CAAC,cAAc,CACb,IAAI,EACJ,UAAC,IAAI;wBACD,OAAA,YAAY,uBACL,OAAO,KACV,OAAO,SAAA,IACT,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;oBAHvB,CAGuB,EAC3B,OAAO,CACV;YAVP,CAUO;QAXX,CAWW;IAZX,CAYW,CAAC;IAEhB,IAAM,YAAY,GACd,UAAC,OAAgC;QACjC,OAAA,UAAC,OAAiC;YAClC,OAAA,UAAC,IAAmB;gBACpB,OAAA,UAAC,IAAa;;oBACV,OAAA,oBAAE,CAAC,cAAc,CACb,MAAA,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mCAAI,IAAI,EAC/C,UAAC,KAAK,IAAK,OAAA,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAA3C,CAA2C,EACtD,OAAO,CACV,CAAA;iBAAA;YALL,CAKK;QANL,CAMK;IAPL,CAOK,CAAC;IAEV,IAAM,kBAAkB,GACpB,UAAC,OAAgC;QACjC,OAAA,UAAC,IAAmB;YACpB,OAAA,UAAC,IAAa;;;gBACV,IAAI;oBACA,OAAO,iCAAe,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;iBACnD;gBAAC,OAAO,GAAG,EAAE;oBACV,gCAAgC;oBAChC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;wBAAE,MAAM,GAAG,CAAC;oBAExC,+CAA+C;oBAC/C,YAAC,IAAY,EAAC,MAAM,uCAAN,MAAM,GAAK,IAAI,EAAC;oBAE9B,oBAAoB;oBACpB,IAAM,UAAU,GAAG,oBAAE,CAAC,uBAAuB,CAAC,IAAI,EAAE;wBAChD,GAAG,EAAE,GAAG,CAAC,IAAI;wBACb,QAAQ,EAAE,oBAAE,CAAC,kBAAkB,CAAC,KAAK;wBACrC,OAAO,EAAE,GAAG,CAAC,OAAO;wBACpB,IAAI,EAAE,WAAI,GAAG,CAAC,IAAI,MAAU;qBAC/B,CAAC,CAAC;oBACH,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;oBACzC,OAAO,IAAI,CAAC;iBACf;YACL,CAAC;QApBD,CAoBC;IArBD,CAqBC,CAAC;AACV,CAAC,EApDgB,eAAe,+BAAf,eAAe,QAoD/B;AAED,IAAM,kBAAkB,GAAG,UAAC,KAAU;IAClC,OAAA,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,kBAAkB;QAC7C,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC9B,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;AAJjC,CAIiC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nestia/core",
3
- "version": "2.1.3",
3
+ "version": "2.1.4-dev.20230928",
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.1.3",
37
+ "@nestia/fetcher": "^2.1.4-dev.20230928",
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.1.3"
48
48
  },
49
49
  "peerDependencies": {
50
- "@nestia/fetcher": ">=2.1.3",
50
+ "@nestia/fetcher": ">=2.1.4-dev.20230928",
51
51
  "@nestjs/common": ">=7.0.1",
52
52
  "@nestjs/core": ">=7.0.1",
53
53
  "@nestjs/platform-express": ">=7.0.1",
@@ -1,5 +1,6 @@
1
1
  import ts from "typescript";
2
2
 
3
+ import { JsonMetadataFactory } from "typia/lib/factories/JsonMetadataFactory";
3
4
  import { AssertProgrammer } from "typia/lib/programmers/AssertProgrammer";
4
5
  import { IsProgrammer } from "typia/lib/programmers/IsProgrammer";
5
6
  import { ValidateProgrammer } from "typia/lib/programmers/ValidateProgrammer";
@@ -13,6 +14,11 @@ export namespace TypedBodyProgrammer {
13
14
  (project: INestiaTransformProject) =>
14
15
  (modulo: ts.LeftHandSideExpression) =>
15
16
  (type: ts.Type): ts.ObjectLiteralExpression => {
17
+ // VALIDATE TYPE
18
+ JsonMetadataFactory.analyze("@nestia.core.TypedBody")(
19
+ project.checker,
20
+ )(type);
21
+
16
22
  // GENERATE VALIDATION PLAN
17
23
  const parameter =
18
24
  (key: IRequestBodyValidator<any>["type"]) =>
@@ -1,6 +1,8 @@
1
1
  import ts from "typescript";
2
2
 
3
+ import { JsonMetadataFactory } from "typia/lib/factories/JsonMetadataFactory";
3
4
  import { TypeFactory } from "typia/lib/factories/TypeFactory";
5
+ import { TransformerError } from "typia/lib/transformers/TransformerError";
4
6
 
5
7
  import { INestiaTransformProject } from "../options/INestiaTransformProject";
6
8
 
@@ -9,13 +11,45 @@ export namespace TypedExceptionProgrammer {
9
11
  ({ checker }: INestiaTransformProject) =>
10
12
  (expression: ts.CallExpression): ts.CallExpression => {
11
13
  // CHECK GENERIC ARGUMENT EXISTENCE
12
- if (!expression.typeArguments?.[0]) throw new Error(NOT_SPECIFIED);
14
+ if (!expression.typeArguments?.[0])
15
+ throw TransformerError.from("@nestia.core.TypedException")([
16
+ {
17
+ name: "uknown",
18
+ messages: [NOT_SPECIFIED],
19
+ explore: {
20
+ top: true,
21
+ object: null,
22
+ property: null,
23
+ nested: null,
24
+ escaped: false,
25
+ aliased: false,
26
+ },
27
+ },
28
+ ]);
13
29
 
14
30
  // GET TYPE INFO
15
31
  const node: ts.TypeNode = expression.typeArguments[0];
16
32
  const type: ts.Type = checker.getTypeFromTypeNode(node);
17
33
 
18
- if (type.isTypeParameter()) throw new Error(NO_GENERIC_ARGUMENT);
34
+ // VALIDATE TYPE
35
+ if (type.isTypeParameter())
36
+ throw TransformerError.from("@nestia.core.TypedException")([
37
+ {
38
+ name: TypeFactory.getFullName(checker)(type),
39
+ messages: [NO_GENERIC_ARGUMENT],
40
+ explore: {
41
+ top: true,
42
+ object: null,
43
+ property: null,
44
+ nested: null,
45
+ escaped: false,
46
+ aliased: false,
47
+ },
48
+ },
49
+ ]);
50
+ JsonMetadataFactory.analyze("@nestia.core.TypedException")(checker)(
51
+ type,
52
+ );
19
53
 
20
54
  // CHECK DUPLICATED TRNASFORMATION
21
55
  if (expression.arguments.length === 3) return expression;
@@ -18,22 +18,24 @@ export namespace FileTransformer {
18
18
  iterate_node({
19
19
  ...project,
20
20
  context,
21
- })(context)(node),
21
+ })(context)(file)(node),
22
22
  context,
23
23
  );
24
24
 
25
25
  const iterate_node =
26
26
  (project: INestiaTransformProject) =>
27
27
  (context: ts.TransformationContext) =>
28
+ (file: ts.SourceFile) =>
28
29
  (node: ts.Node): ts.Node =>
29
30
  ts.visitEachChild(
30
- try_transform_node(project)(node) ?? node,
31
- (child) => iterate_node(project)(context)(child),
31
+ try_transform_node(project)(file)(node) ?? node,
32
+ (child) => iterate_node(project)(context)(file)(child),
32
33
  context,
33
34
  );
34
35
 
35
36
  const try_transform_node =
36
37
  (project: INestiaTransformProject) =>
38
+ (file: ts.SourceFile) =>
37
39
  (node: ts.Node): ts.Node | null => {
38
40
  try {
39
41
  return NodeTransformer.transform(project)(node);
@@ -41,6 +43,9 @@ export namespace FileTransformer {
41
43
  // ONLY ACCEPT TRANSFORMER-ERROR
42
44
  if (!isTransformerError(exp)) throw exp;
43
45
 
46
+ // AVOID SPECIAL BUG OF TYPESCRIPT COMPILER API
47
+ (node as any).parent ??= file;
48
+
44
49
  // REPORT DIAGNOSTIC
45
50
  const diagnostic = ts.createDiagnosticForNode(node, {
46
51
  key: exp.code,