UNPKG

2.19 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const index_1 = require("../types/index");
4const abstract_1 = require("./abstract");
5const lodash_1 = require("lodash");
6class SignatureReflection extends abstract_1.Reflection {
7 getParameterTypes() {
8 if (!this.parameters) {
9 return [];
10 }
11 function notUndefined(t) {
12 return !!t;
13 }
14 return this.parameters.map(parameter => parameter.type).filter(notUndefined);
15 }
16 traverse(callback) {
17 if (this.type instanceof index_1.ReflectionType) {
18 if (callback(this.type.declaration, abstract_1.TraverseProperty.TypeLiteral) === false) {
19 return;
20 }
21 }
22 for (const parameter of lodash_1.toArray(this.typeParameters)) {
23 if (callback(parameter, abstract_1.TraverseProperty.TypeParameter) === false) {
24 return;
25 }
26 }
27 for (const parameter of lodash_1.toArray(this.parameters)) {
28 if (callback(parameter, abstract_1.TraverseProperty.Parameters) === false) {
29 return;
30 }
31 }
32 super.traverse(callback);
33 }
34 toObject() {
35 const result = super.toObject();
36 if (this.type) {
37 result.type = this.type.toObject();
38 }
39 if (this.overwrites) {
40 result.overwrites = this.overwrites.toObject();
41 }
42 if (this.inheritedFrom) {
43 result.inheritedFrom = this.inheritedFrom.toObject();
44 }
45 if (this.implementationOf) {
46 result.implementationOf = this.implementationOf.toObject();
47 }
48 return result;
49 }
50 toString() {
51 let result = super.toString();
52 if (this.typeParameters) {
53 const parameters = [];
54 this.typeParameters.forEach((parameter) => parameters.push(parameter.name));
55 result += '<' + parameters.join(', ') + '>';
56 }
57 if (this.type) {
58 result += ':' + this.type.toString();
59 }
60 return result;
61 }
62}
63exports.SignatureReflection = SignatureReflection;
64//# sourceMappingURL=signature.js.map
\No newline at end of file