@nestia/core 1.1.1 → 1.1.2-dev.20230503-2

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.
Files changed (89) hide show
  1. package/lib/decorators/DynamicModule.d.ts +26 -23
  2. package/lib/decorators/DynamicModule.js +103 -103
  3. package/lib/decorators/DynamicModule.js.map +1 -1
  4. package/lib/decorators/EncryptedBody.d.ts +23 -23
  5. package/lib/decorators/EncryptedBody.js +125 -125
  6. package/lib/decorators/EncryptedController.d.ts +31 -31
  7. package/lib/decorators/EncryptedController.js +41 -41
  8. package/lib/decorators/EncryptedModule.d.ts +52 -49
  9. package/lib/decorators/EncryptedModule.js +161 -161
  10. package/lib/decorators/EncryptedModule.js.map +1 -1
  11. package/lib/decorators/EncryptedRoute.d.ts +78 -78
  12. package/lib/decorators/EncryptedRoute.js +216 -216
  13. package/lib/decorators/PlainBody.d.ts +22 -22
  14. package/lib/decorators/PlainBody.js +82 -82
  15. package/lib/decorators/TypedBody.d.ts +16 -16
  16. package/lib/decorators/TypedBody.js +94 -94
  17. package/lib/decorators/TypedParam.d.ts +31 -31
  18. package/lib/decorators/TypedParam.js +68 -65
  19. package/lib/decorators/TypedParam.js.map +1 -1
  20. package/lib/decorators/TypedQuery.d.ts +14 -14
  21. package/lib/decorators/TypedQuery.js +124 -124
  22. package/lib/decorators/TypedRoute.d.ts +72 -72
  23. package/lib/decorators/TypedRoute.js +185 -185
  24. package/lib/decorators/internal/EncryptedConstant.d.ts +1 -1
  25. package/lib/decorators/internal/EncryptedConstant.js +7 -7
  26. package/lib/decorators/internal/TransformError.d.ts +1 -1
  27. package/lib/decorators/internal/TransformError.js +10 -10
  28. package/lib/decorators/internal/TransformError.js.map +1 -1
  29. package/lib/decorators/internal/get_path_and_stringify.d.ts +1 -1
  30. package/lib/decorators/internal/get_path_and_stringify.js +78 -78
  31. package/lib/decorators/internal/headers_to_object.d.ts +3 -3
  32. package/lib/decorators/internal/headers_to_object.js +49 -49
  33. package/lib/decorators/internal/load_controller.d.ts +5 -2
  34. package/lib/decorators/internal/load_controller.js +152 -151
  35. package/lib/decorators/internal/load_controller.js.map +1 -1
  36. package/lib/decorators/internal/route_error.d.ts +2 -2
  37. package/lib/decorators/internal/route_error.js +86 -86
  38. package/lib/decorators/internal/validate_request_body.d.ts +2 -2
  39. package/lib/decorators/internal/validate_request_body.js +57 -57
  40. package/lib/index.d.ts +3 -3
  41. package/lib/index.js +31 -31
  42. package/lib/module.d.ts +12 -12
  43. package/lib/module.js +28 -28
  44. package/lib/options/INestiaTransformOptions.d.ts +4 -4
  45. package/lib/options/INestiaTransformOptions.js +2 -2
  46. package/lib/options/INestiaTransformProject.d.ts +5 -5
  47. package/lib/options/INestiaTransformProject.js +2 -2
  48. package/lib/options/IRequestBodyValidator.d.ts +16 -16
  49. package/lib/options/IRequestBodyValidator.js +2 -2
  50. package/lib/options/IResponseBodyStringifier.d.ts +20 -20
  51. package/lib/options/IResponseBodyStringifier.js +2 -2
  52. package/lib/programmers/TypedBodyProgrammer.d.ts +5 -5
  53. package/lib/programmers/TypedBodyProgrammer.js +47 -47
  54. package/lib/programmers/TypedParamProgrammer.d.ts +5 -5
  55. package/lib/programmers/TypedParamProgrammer.js +107 -107
  56. package/lib/programmers/TypedQueryProgrammer.d.ts +5 -5
  57. package/lib/programmers/TypedQueryProgrammer.js +263 -263
  58. package/lib/programmers/TypedRouteProgrammer.d.ts +5 -5
  59. package/lib/programmers/TypedRouteProgrammer.js +49 -49
  60. package/lib/transform.d.ts +3 -3
  61. package/lib/transform.js +20 -20
  62. package/lib/transformers/FileTransformer.d.ts +5 -5
  63. package/lib/transformers/FileTransformer.js +32 -32
  64. package/lib/transformers/MethodDecoratorTransformer.d.ts +5 -5
  65. package/lib/transformers/MethodDecoratorTransformer.js +87 -87
  66. package/lib/transformers/MethodTransformer.d.ts +5 -5
  67. package/lib/transformers/MethodTransformer.js +54 -54
  68. package/lib/transformers/NodeTransformer.d.ts +5 -5
  69. package/lib/transformers/NodeTransformer.js +20 -20
  70. package/lib/transformers/ParameterDecoratorTransformer.d.ts +5 -5
  71. package/lib/transformers/ParameterDecoratorTransformer.js +65 -65
  72. package/lib/transformers/ParameterTransformer.d.ts +5 -5
  73. package/lib/transformers/ParameterTransformer.js +33 -33
  74. package/lib/typings/Creator.d.ts +3 -3
  75. package/lib/typings/Creator.js +2 -2
  76. package/lib/utils/ExceptionManager.d.ts +64 -64
  77. package/lib/utils/ExceptionManager.js +112 -112
  78. package/lib/utils/Singleton.d.ts +1 -1
  79. package/lib/utils/Singleton.js +23 -23
  80. package/lib/utils/SourceFinder.d.ts +9 -0
  81. package/lib/utils/SourceFinder.js +239 -0
  82. package/lib/utils/SourceFinder.js.map +1 -0
  83. package/package.json +7 -7
  84. package/src/decorators/DynamicModule.ts +1 -1
  85. package/src/decorators/EncryptedModule.ts +1 -1
  86. package/src/decorators/TypedParam.ts +6 -5
  87. package/src/decorators/internal/TransformError.ts +1 -1
  88. package/src/decorators/internal/load_controller.ts +32 -25
  89. package/src/utils/SourceFinder.ts +60 -0
@@ -1,3 +1,3 @@
1
- import ts from "typescript";
2
- import { INestiaTransformOptions } from "./options/INestiaTransformOptions";
3
- export default function transform(program: ts.Program, options?: INestiaTransformOptions): ts.TransformerFactory<ts.SourceFile>;
1
+ import ts from "typescript";
2
+ import { INestiaTransformOptions } from "./options/INestiaTransformOptions";
3
+ export default function transform(program: ts.Program, options?: INestiaTransformOptions): ts.TransformerFactory<ts.SourceFile>;
package/lib/transform.js CHANGED
@@ -1,21 +1,21 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- var typescript_1 = __importDefault(require("typescript"));
7
- var FileTransformer_1 = require("./transformers/FileTransformer");
8
- function transform(program, options) {
9
- var project = {
10
- program: program,
11
- compilerOptions: program.getCompilerOptions(),
12
- checker: program.getTypeChecker(),
13
- printer: typescript_1.default.createPrinter(),
14
- options: options || {},
15
- };
16
- return function (context) { return function (file) {
17
- return FileTransformer_1.FileTransformer.transform(project, context, file);
18
- }; };
19
- }
20
- exports.default = transform;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var typescript_1 = __importDefault(require("typescript"));
7
+ var FileTransformer_1 = require("./transformers/FileTransformer");
8
+ function transform(program, options) {
9
+ var project = {
10
+ program: program,
11
+ compilerOptions: program.getCompilerOptions(),
12
+ checker: program.getTypeChecker(),
13
+ printer: typescript_1.default.createPrinter(),
14
+ options: options || {},
15
+ };
16
+ return function (context) { return function (file) {
17
+ return FileTransformer_1.FileTransformer.transform(project, context, file);
18
+ }; };
19
+ }
20
+ exports.default = transform;
21
21
  //# sourceMappingURL=transform.js.map
@@ -1,5 +1,5 @@
1
- import ts from "typescript";
2
- import { INestiaTransformProject } from "../options/INestiaTransformProject";
3
- export declare namespace FileTransformer {
4
- function transform(project: INestiaTransformProject, context: ts.TransformationContext, file: ts.SourceFile): ts.SourceFile;
5
- }
1
+ import ts from "typescript";
2
+ import { INestiaTransformProject } from "../options/INestiaTransformProject";
3
+ export declare namespace FileTransformer {
4
+ function transform(project: INestiaTransformProject, context: ts.TransformationContext, file: ts.SourceFile): ts.SourceFile;
5
+ }
@@ -1,33 +1,33 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.FileTransformer = void 0;
7
- var typescript_1 = __importDefault(require("typescript"));
8
- var NodeTransformer_1 = require("./NodeTransformer");
9
- var FileTransformer;
10
- (function (FileTransformer) {
11
- function transform(project, context, file) {
12
- // ITERATE NODES
13
- return typescript_1.default.visitEachChild(file, function (node) { return iterate_node(project, context, node); }, context);
14
- }
15
- FileTransformer.transform = transform;
16
- function iterate_node(project, context, node) {
17
- return typescript_1.default.visitEachChild(try_transform_node(project, node), function (child) { return iterate_node(project, context, child); }, context);
18
- }
19
- function try_transform_node(project, node) {
20
- try {
21
- return NodeTransformer_1.NodeTransformer.transform(project, node);
22
- }
23
- catch (exp) {
24
- if (!(exp instanceof Error))
25
- throw exp;
26
- var file = node.getSourceFile();
27
- var _a = file.getLineAndCharacterOfPosition(node.pos), line = _a.line, character = _a.character;
28
- exp.message += " - ".concat(file.fileName, ".").concat(line + 1, ":").concat(character + 1);
29
- throw exp;
30
- }
31
- }
32
- })(FileTransformer = exports.FileTransformer || (exports.FileTransformer = {}));
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FileTransformer = void 0;
7
+ var typescript_1 = __importDefault(require("typescript"));
8
+ var NodeTransformer_1 = require("./NodeTransformer");
9
+ var FileTransformer;
10
+ (function (FileTransformer) {
11
+ function transform(project, context, file) {
12
+ // ITERATE NODES
13
+ return typescript_1.default.visitEachChild(file, function (node) { return iterate_node(project, context, node); }, context);
14
+ }
15
+ FileTransformer.transform = transform;
16
+ function iterate_node(project, context, node) {
17
+ return typescript_1.default.visitEachChild(try_transform_node(project, node), function (child) { return iterate_node(project, context, child); }, context);
18
+ }
19
+ function try_transform_node(project, node) {
20
+ try {
21
+ return NodeTransformer_1.NodeTransformer.transform(project, node);
22
+ }
23
+ catch (exp) {
24
+ if (!(exp instanceof Error))
25
+ throw exp;
26
+ var file = node.getSourceFile();
27
+ var _a = file.getLineAndCharacterOfPosition(node.pos), line = _a.line, character = _a.character;
28
+ exp.message += " - ".concat(file.fileName, ".").concat(line + 1, ":").concat(character + 1);
29
+ throw exp;
30
+ }
31
+ }
32
+ })(FileTransformer = exports.FileTransformer || (exports.FileTransformer = {}));
33
33
  //# sourceMappingURL=FileTransformer.js.map
@@ -1,5 +1,5 @@
1
- import ts from "typescript";
2
- import { INestiaTransformProject } from "../options/INestiaTransformProject";
3
- export declare namespace MethodDecoratorTransformer {
4
- function transform(project: INestiaTransformProject, type: ts.Type, decorator: ts.Decorator): ts.Decorator;
5
- }
1
+ import ts from "typescript";
2
+ import { INestiaTransformProject } from "../options/INestiaTransformProject";
3
+ export declare namespace MethodDecoratorTransformer {
4
+ function transform(project: INestiaTransformProject, type: ts.Type, decorator: ts.Decorator): ts.Decorator;
5
+ }
@@ -1,88 +1,88 @@
1
- "use strict";
2
- var __read = (this && this.__read) || function (o, n) {
3
- var m = typeof Symbol === "function" && o[Symbol.iterator];
4
- if (!m) return o;
5
- var i = m.call(o), r, ar = [], e;
6
- try {
7
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
- }
9
- catch (error) { e = { error: error }; }
10
- finally {
11
- try {
12
- if (r && !r.done && (m = i["return"])) m.call(i);
13
- }
14
- finally { if (e) throw e.error; }
15
- }
16
- return ar;
17
- };
18
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
19
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
20
- if (ar || !(i in from)) {
21
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
22
- ar[i] = from[i];
23
- }
24
- }
25
- return to.concat(ar || Array.prototype.slice.call(from));
26
- };
27
- var __importDefault = (this && this.__importDefault) || function (mod) {
28
- return (mod && mod.__esModule) ? mod : { "default": mod };
29
- };
30
- Object.defineProperty(exports, "__esModule", { value: true });
31
- exports.MethodDecoratorTransformer = void 0;
32
- var path_1 = __importDefault(require("path"));
33
- var typescript_1 = __importDefault(require("typescript"));
34
- var TypedRouteProgrammer_1 = require("../programmers/TypedRouteProgrammer");
35
- var MethodDecoratorTransformer;
36
- (function (MethodDecoratorTransformer) {
37
- function transform(project, type, decorator) {
38
- if (!typescript_1.default.isCallExpression(decorator.expression))
39
- return decorator;
40
- // CHECK SIGNATURE
41
- var signature = project.checker.getResolvedSignature(decorator.expression);
42
- if (!signature || !signature.declaration)
43
- return decorator;
44
- // CHECK TO BE TRANSFORMED
45
- var done = (function () {
46
- // CHECK FILENAME
47
- var location = path_1.default.resolve(signature.declaration.getSourceFile().fileName);
48
- if (LIB_PATHS.every(function (str) { return location.indexOf(str) === -1; }) &&
49
- SRC_PATHS.every(function (str) { return location !== str; }))
50
- return false;
51
- // CHECK DUPLICATE BOOSTER
52
- if (decorator.expression.arguments.length >= 2)
53
- return false;
54
- else if (decorator.expression.arguments.length === 1) {
55
- var last = decorator.expression.arguments[decorator.expression.arguments.length - 1];
56
- var type_1 = project.checker.getTypeAtLocation(last);
57
- if (isObject(project.checker, type_1))
58
- return false;
59
- }
60
- return true;
61
- })();
62
- if (done === false)
63
- return decorator;
64
- // CHECK TYPE NODE
65
- var typeNode = project.checker.typeToTypeNode(type, undefined, undefined);
66
- if (typeNode === undefined)
67
- return decorator;
68
- // DO TRANSFORM
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)(decorator.expression.expression)(type),
71
- ], false)));
72
- }
73
- MethodDecoratorTransformer.transform = transform;
74
- function isObject(checker, type) {
75
- return ((type.getFlags() & typescript_1.default.TypeFlags.Object) !== 0 &&
76
- !checker.isTupleType(type) &&
77
- !checker.isArrayType(type) &&
78
- !checker.isArrayLikeType(type));
79
- }
80
- var CLASSES = ["EncryptedRoute", "TypedRoute"];
81
- var LIB_PATHS = CLASSES.map(function (cla) {
82
- return path_1.default.join("node_modules", "@nestia", "core", "lib", "decorators", "".concat(cla, ".d.ts"));
83
- });
84
- var SRC_PATHS = CLASSES.map(function (cla) {
85
- return path_1.default.resolve(path_1.default.join(__dirname, "..", "decorators", "".concat(cla, ".ts")));
86
- });
87
- })(MethodDecoratorTransformer = exports.MethodDecoratorTransformer || (exports.MethodDecoratorTransformer = {}));
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
19
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
20
+ if (ar || !(i in from)) {
21
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
22
+ ar[i] = from[i];
23
+ }
24
+ }
25
+ return to.concat(ar || Array.prototype.slice.call(from));
26
+ };
27
+ var __importDefault = (this && this.__importDefault) || function (mod) {
28
+ return (mod && mod.__esModule) ? mod : { "default": mod };
29
+ };
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ exports.MethodDecoratorTransformer = void 0;
32
+ var path_1 = __importDefault(require("path"));
33
+ var typescript_1 = __importDefault(require("typescript"));
34
+ var TypedRouteProgrammer_1 = require("../programmers/TypedRouteProgrammer");
35
+ var MethodDecoratorTransformer;
36
+ (function (MethodDecoratorTransformer) {
37
+ function transform(project, type, decorator) {
38
+ if (!typescript_1.default.isCallExpression(decorator.expression))
39
+ return decorator;
40
+ // CHECK SIGNATURE
41
+ var signature = project.checker.getResolvedSignature(decorator.expression);
42
+ if (!signature || !signature.declaration)
43
+ return decorator;
44
+ // CHECK TO BE TRANSFORMED
45
+ var done = (function () {
46
+ // CHECK FILENAME
47
+ var location = path_1.default.resolve(signature.declaration.getSourceFile().fileName);
48
+ if (LIB_PATHS.every(function (str) { return location.indexOf(str) === -1; }) &&
49
+ SRC_PATHS.every(function (str) { return location !== str; }))
50
+ return false;
51
+ // CHECK DUPLICATE BOOSTER
52
+ if (decorator.expression.arguments.length >= 2)
53
+ return false;
54
+ else if (decorator.expression.arguments.length === 1) {
55
+ var last = decorator.expression.arguments[decorator.expression.arguments.length - 1];
56
+ var type_1 = project.checker.getTypeAtLocation(last);
57
+ if (isObject(project.checker, type_1))
58
+ return false;
59
+ }
60
+ return true;
61
+ })();
62
+ if (done === false)
63
+ return decorator;
64
+ // CHECK TYPE NODE
65
+ var typeNode = project.checker.typeToTypeNode(type, undefined, undefined);
66
+ if (typeNode === undefined)
67
+ return decorator;
68
+ // DO TRANSFORM
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)(decorator.expression.expression)(type),
71
+ ], false)));
72
+ }
73
+ MethodDecoratorTransformer.transform = transform;
74
+ function isObject(checker, type) {
75
+ return ((type.getFlags() & typescript_1.default.TypeFlags.Object) !== 0 &&
76
+ !checker.isTupleType(type) &&
77
+ !checker.isArrayType(type) &&
78
+ !checker.isArrayLikeType(type));
79
+ }
80
+ var CLASSES = ["EncryptedRoute", "TypedRoute"];
81
+ var LIB_PATHS = CLASSES.map(function (cla) {
82
+ return path_1.default.join("node_modules", "@nestia", "core", "lib", "decorators", "".concat(cla, ".d.ts"));
83
+ });
84
+ var SRC_PATHS = CLASSES.map(function (cla) {
85
+ return path_1.default.resolve(path_1.default.join(__dirname, "..", "decorators", "".concat(cla, ".ts")));
86
+ });
87
+ })(MethodDecoratorTransformer = exports.MethodDecoratorTransformer || (exports.MethodDecoratorTransformer = {}));
88
88
  //# sourceMappingURL=MethodDecoratorTransformer.js.map
@@ -1,5 +1,5 @@
1
- import ts from "typescript";
2
- import { INestiaTransformProject } from "../options/INestiaTransformProject";
3
- export declare namespace MethodTransformer {
4
- function transform(project: INestiaTransformProject, method: ts.MethodDeclaration): ts.MethodDeclaration;
5
- }
1
+ import ts from "typescript";
2
+ import { INestiaTransformProject } from "../options/INestiaTransformProject";
3
+ export declare namespace MethodTransformer {
4
+ function transform(project: INestiaTransformProject, method: ts.MethodDeclaration): ts.MethodDeclaration;
5
+ }
@@ -1,55 +1,55 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MethodTransformer = void 0;
7
- var typescript_1 = __importDefault(require("typescript"));
8
- var MethodDecoratorTransformer_1 = require("./MethodDecoratorTransformer");
9
- var MethodTransformer;
10
- (function (MethodTransformer) {
11
- function transform(project, method) {
12
- var decorators = typescript_1.default.getDecorators
13
- ? typescript_1.default.getDecorators(method)
14
- : method.decorators;
15
- if (!(decorators === null || decorators === void 0 ? void 0 : decorators.length))
16
- return method;
17
- var signature = project.checker.getSignatureFromDeclaration(method);
18
- var original = signature && project.checker.getReturnTypeOfSignature(signature);
19
- var escaped = original && get_escaped_type(project.checker, original);
20
- if (escaped === undefined)
21
- return method;
22
- if (typescript_1.default.getDecorators !== undefined)
23
- return typescript_1.default.factory.updateMethodDeclaration(method, (method.modifiers || []).map(function (mod) {
24
- return typescript_1.default.isDecorator(mod)
25
- ? MethodDecoratorTransformer_1.MethodDecoratorTransformer.transform(project, escaped, mod)
26
- : mod;
27
- }), method.asteriskToken, method.name, method.questionToken, method.typeParameters, method.parameters, method.type, method.body);
28
- // eslint-disable-next-line
29
- return typescript_1.default.factory.updateMethodDeclaration(method, decorators.map(function (deco) {
30
- return MethodDecoratorTransformer_1.MethodDecoratorTransformer.transform(project, escaped, deco);
31
- }), method.modifiers, method.asteriskToken, method.name, method.questionToken, method.typeParameters, method.parameters, method.type, method.body);
32
- }
33
- MethodTransformer.transform = transform;
34
- })(MethodTransformer = exports.MethodTransformer || (exports.MethodTransformer = {}));
35
- function get_escaped_type(checker, type) {
36
- var symbol = type.getSymbol() || type.aliasSymbol;
37
- return symbol && get_name(symbol) === "Promise"
38
- ? escape_promise(checker, type)
39
- : type;
40
- }
41
- function escape_promise(checker, type) {
42
- var generic = checker.getTypeArguments(type);
43
- if (generic.length !== 1)
44
- throw new Error("Error on ImportAnalyzer.analyze(): invalid promise type.");
45
- return generic[0];
46
- }
47
- function get_name(symbol) {
48
- return explore_name(symbol.escapedName.toString(), symbol.getDeclarations()[0].parent);
49
- }
50
- function explore_name(name, decl) {
51
- return typescript_1.default.isModuleBlock(decl)
52
- ? explore_name("".concat(decl.parent.name.getFullText().trim(), ".").concat(name), decl.parent.parent)
53
- : name;
54
- }
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MethodTransformer = void 0;
7
+ var typescript_1 = __importDefault(require("typescript"));
8
+ var MethodDecoratorTransformer_1 = require("./MethodDecoratorTransformer");
9
+ var MethodTransformer;
10
+ (function (MethodTransformer) {
11
+ function transform(project, method) {
12
+ var decorators = typescript_1.default.getDecorators
13
+ ? typescript_1.default.getDecorators(method)
14
+ : method.decorators;
15
+ if (!(decorators === null || decorators === void 0 ? void 0 : decorators.length))
16
+ return method;
17
+ var signature = project.checker.getSignatureFromDeclaration(method);
18
+ var original = signature && project.checker.getReturnTypeOfSignature(signature);
19
+ var escaped = original && get_escaped_type(project.checker, original);
20
+ if (escaped === undefined)
21
+ return method;
22
+ if (typescript_1.default.getDecorators !== undefined)
23
+ return typescript_1.default.factory.updateMethodDeclaration(method, (method.modifiers || []).map(function (mod) {
24
+ return typescript_1.default.isDecorator(mod)
25
+ ? MethodDecoratorTransformer_1.MethodDecoratorTransformer.transform(project, escaped, mod)
26
+ : mod;
27
+ }), method.asteriskToken, method.name, method.questionToken, method.typeParameters, method.parameters, method.type, method.body);
28
+ // eslint-disable-next-line
29
+ return typescript_1.default.factory.updateMethodDeclaration(method, decorators.map(function (deco) {
30
+ return MethodDecoratorTransformer_1.MethodDecoratorTransformer.transform(project, escaped, deco);
31
+ }), method.modifiers, method.asteriskToken, method.name, method.questionToken, method.typeParameters, method.parameters, method.type, method.body);
32
+ }
33
+ MethodTransformer.transform = transform;
34
+ })(MethodTransformer = exports.MethodTransformer || (exports.MethodTransformer = {}));
35
+ function get_escaped_type(checker, type) {
36
+ var symbol = type.getSymbol() || type.aliasSymbol;
37
+ return symbol && get_name(symbol) === "Promise"
38
+ ? escape_promise(checker, type)
39
+ : type;
40
+ }
41
+ function escape_promise(checker, type) {
42
+ var generic = checker.getTypeArguments(type);
43
+ if (generic.length !== 1)
44
+ throw new Error("Error on ImportAnalyzer.analyze(): invalid promise type.");
45
+ return generic[0];
46
+ }
47
+ function get_name(symbol) {
48
+ return explore_name(symbol.escapedName.toString(), symbol.getDeclarations()[0].parent);
49
+ }
50
+ function explore_name(name, decl) {
51
+ return typescript_1.default.isModuleBlock(decl)
52
+ ? explore_name("".concat(decl.parent.name.getFullText().trim(), ".").concat(name), decl.parent.parent)
53
+ : name;
54
+ }
55
55
  //# sourceMappingURL=MethodTransformer.js.map
@@ -1,5 +1,5 @@
1
- import ts from "typescript";
2
- import { INestiaTransformProject } from "../options/INestiaTransformProject";
3
- export declare namespace NodeTransformer {
4
- function transform(project: INestiaTransformProject, node: ts.Node): ts.Node;
5
- }
1
+ import ts from "typescript";
2
+ import { INestiaTransformProject } from "../options/INestiaTransformProject";
3
+ export declare namespace NodeTransformer {
4
+ function transform(project: INestiaTransformProject, node: ts.Node): ts.Node;
5
+ }
@@ -1,21 +1,21 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.NodeTransformer = void 0;
7
- var typescript_1 = __importDefault(require("typescript"));
8
- var MethodTransformer_1 = require("./MethodTransformer");
9
- var ParameterTransformer_1 = require("./ParameterTransformer");
10
- var NodeTransformer;
11
- (function (NodeTransformer) {
12
- function transform(project, node) {
13
- if (typescript_1.default.isMethodDeclaration(node))
14
- return MethodTransformer_1.MethodTransformer.transform(project, node);
15
- else if (typescript_1.default.isParameter(node))
16
- return ParameterTransformer_1.ParameterTransformer.transform(project, node);
17
- return node;
18
- }
19
- NodeTransformer.transform = transform;
20
- })(NodeTransformer = exports.NodeTransformer || (exports.NodeTransformer = {}));
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NodeTransformer = void 0;
7
+ var typescript_1 = __importDefault(require("typescript"));
8
+ var MethodTransformer_1 = require("./MethodTransformer");
9
+ var ParameterTransformer_1 = require("./ParameterTransformer");
10
+ var NodeTransformer;
11
+ (function (NodeTransformer) {
12
+ function transform(project, node) {
13
+ if (typescript_1.default.isMethodDeclaration(node))
14
+ return MethodTransformer_1.MethodTransformer.transform(project, node);
15
+ else if (typescript_1.default.isParameter(node))
16
+ return ParameterTransformer_1.ParameterTransformer.transform(project, node);
17
+ return node;
18
+ }
19
+ NodeTransformer.transform = transform;
20
+ })(NodeTransformer = exports.NodeTransformer || (exports.NodeTransformer = {}));
21
21
  //# sourceMappingURL=NodeTransformer.js.map
@@ -1,5 +1,5 @@
1
- import ts from "typescript";
2
- import { INestiaTransformProject } from "../options/INestiaTransformProject";
3
- export declare namespace ParameterDecoratorTransformer {
4
- function transform(project: INestiaTransformProject, type: ts.Type, decorator: ts.Decorator): ts.Decorator;
5
- }
1
+ import ts from "typescript";
2
+ import { INestiaTransformProject } from "../options/INestiaTransformProject";
3
+ export declare namespace ParameterDecoratorTransformer {
4
+ function transform(project: INestiaTransformProject, type: ts.Type, decorator: ts.Decorator): ts.Decorator;
5
+ }