@nestia/sdk 1.0.18 → 1.0.19
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/analyses/ControllerAnalyzer.js +7 -1
- package/lib/analyses/ControllerAnalyzer.js.map +1 -1
- package/lib/analyses/ImportAnalyzer.d.ts +1 -1
- package/lib/analyses/ImportAnalyzer.js +20 -9
- package/lib/analyses/ImportAnalyzer.js.map +1 -1
- package/package.json +1 -1
- package/src/analyses/ControllerAnalyzer.ts +19 -7
- package/src/analyses/ImportAnalyzer.ts +33 -16
|
@@ -64,6 +64,8 @@ var ControllerAnalyzer;
|
|
|
64
64
|
// EXPLORE CHILDREN TYPES
|
|
65
65
|
const parameters = func.parameters.map((param) => _Analyze_parameter(checker, genericDict, importDict, controller, func.name, param, signature.getParameters()[param.index]));
|
|
66
66
|
const output = ImportAnalyzer_1.ImportAnalyzer.analyze(checker, genericDict, importDict, signature.getReturnType());
|
|
67
|
+
if (output === null)
|
|
68
|
+
throw new Error(`Error on ControllerAnalyzer.analyze(): unnamed return type from ${controller.name}.${func.name}().`);
|
|
67
69
|
const imports = importDict
|
|
68
70
|
.toJSON()
|
|
69
71
|
.map((pair) => [pair.first, pair.second.toJSON()]);
|
|
@@ -125,12 +127,16 @@ var ControllerAnalyzer;
|
|
|
125
127
|
throw new Error(`Error on ${method}: nestia does not support optional query parameter without field specification. ` +
|
|
126
128
|
`Therefore, erase question mark on ${method}#${name} parameter, ` +
|
|
127
129
|
`or re-define re-define parameters for each query parameters.`);
|
|
130
|
+
// GET TYPE NAME
|
|
131
|
+
const tuple = ImportAnalyzer_1.ImportAnalyzer.analyze(checker, genericDict, importDict, type);
|
|
132
|
+
if (tuple === null)
|
|
133
|
+
throw new Error(`Error on ${method}: unnamed parameter type from ${method}#${name}.`);
|
|
128
134
|
return {
|
|
129
135
|
name,
|
|
130
136
|
category: param.category,
|
|
131
137
|
field: param.field,
|
|
132
138
|
encrypted: param.encrypted,
|
|
133
|
-
type:
|
|
139
|
+
type: tuple,
|
|
134
140
|
optional,
|
|
135
141
|
};
|
|
136
142
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControllerAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ControllerAnalyzer.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAiD;AACjD,4DAA4B;AAK5B,uDAAoD;AACpD,qDAAkD;AAClD,iDAA8C;AAE9C,IAAiB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"ControllerAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ControllerAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,5 +9,5 @@ export declare namespace ImportAnalyzer {
|
|
|
9
9
|
alias: string;
|
|
10
10
|
}
|
|
11
11
|
type Dictionary = HashMap<string, HashSet<string>>;
|
|
12
|
-
function analyze(checker: ts.TypeChecker, genericDict: GenericAnalyzer.Dictionary, importDict: Dictionary, type: ts.Type): ITypeTuple;
|
|
12
|
+
function analyze(checker: ts.TypeChecker, genericDict: GenericAnalyzer.Dictionary, importDict: Dictionary, type: ts.Type): ITypeTuple | null;
|
|
13
13
|
}
|
|
@@ -10,10 +10,16 @@ var ImportAnalyzer;
|
|
|
10
10
|
(function (ImportAnalyzer) {
|
|
11
11
|
function analyze(checker, genericDict, importDict, type) {
|
|
12
12
|
type = get_type(checker, type);
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
explore_escaped_name(checker, genericDict, importDict, type);
|
|
14
|
+
try {
|
|
15
|
+
return {
|
|
16
|
+
type,
|
|
17
|
+
name: explore_escaped_name(checker, genericDict, importDict, type),
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
catch (_a) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
17
23
|
}
|
|
18
24
|
ImportAnalyzer.analyze = analyze;
|
|
19
25
|
/* ---------------------------------------------------------
|
|
@@ -38,6 +44,7 @@ var ImportAnalyzer;
|
|
|
38
44
|
ESCAPED TEXT WITH IMPORT STATEMENTS
|
|
39
45
|
--------------------------------------------------------- */
|
|
40
46
|
function explore_escaped_name(checker, genericDict, importDict, type) {
|
|
47
|
+
var _a;
|
|
41
48
|
//----
|
|
42
49
|
// CONDITIONAL BRANCHES
|
|
43
50
|
//----
|
|
@@ -45,17 +52,21 @@ var ImportAnalyzer;
|
|
|
45
52
|
while (genericDict.has(type) === true)
|
|
46
53
|
type = genericDict.get(type);
|
|
47
54
|
// PRIMITIVE
|
|
48
|
-
const symbol = type.aliasSymbol
|
|
49
|
-
if (symbol === undefined)
|
|
50
|
-
return checker.typeToString(type, undefined, typescript_1.default.TypeFormatFlags.NoTruncation);
|
|
55
|
+
const symbol = (_a = type.aliasSymbol) !== null && _a !== void 0 ? _a : type.getSymbol();
|
|
51
56
|
// UNION OR INTERSECT
|
|
52
|
-
|
|
53
|
-
type.isUnionOrIntersection()) {
|
|
57
|
+
if (type.aliasSymbol === undefined && type.isUnionOrIntersection()) {
|
|
54
58
|
const joiner = type.isIntersection() ? " & " : " | ";
|
|
55
59
|
return type.types
|
|
56
60
|
.map((child) => explore_escaped_name(checker, genericDict, importDict, child))
|
|
57
61
|
.join(joiner);
|
|
58
62
|
}
|
|
63
|
+
// NO SYMBOL
|
|
64
|
+
else if (symbol === undefined) {
|
|
65
|
+
const raw = checker.typeToString(type, undefined, typescript_1.default.TypeFormatFlags.NoTruncation);
|
|
66
|
+
if (raw === "__object")
|
|
67
|
+
throw new Error("Error on ImportAnalyzer.analyze(): unnamed type exists.");
|
|
68
|
+
return raw;
|
|
69
|
+
}
|
|
59
70
|
//----
|
|
60
71
|
// SPECIALIZATION
|
|
61
72
|
//----
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImportAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ImportAnalyzer.ts"],"names":[],"mappings":";;;;;;AACA,oDAAiD;AACjD,4DAA4B;AAK5B,IAAiB,cAAc,
|
|
1
|
+
{"version":3,"file":"ImportAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ImportAnalyzer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -114,12 +114,17 @@ export namespace ControllerAnalyzer {
|
|
|
114
114
|
signature.getParameters()[param.index],
|
|
115
115
|
),
|
|
116
116
|
);
|
|
117
|
-
const output: ITypeTuple = ImportAnalyzer.analyze(
|
|
117
|
+
const output: ITypeTuple | null = ImportAnalyzer.analyze(
|
|
118
118
|
checker,
|
|
119
119
|
genericDict,
|
|
120
120
|
importDict,
|
|
121
121
|
signature.getReturnType(),
|
|
122
122
|
);
|
|
123
|
+
if (output === null)
|
|
124
|
+
throw new Error(
|
|
125
|
+
`Error on ControllerAnalyzer.analyze(): unnamed return type from ${controller.name}.${func.name}().`,
|
|
126
|
+
);
|
|
127
|
+
|
|
123
128
|
const imports: [string, string[]][] = importDict
|
|
124
129
|
.toJSON()
|
|
125
130
|
.map((pair) => [pair.first, pair.second.toJSON()]);
|
|
@@ -228,17 +233,24 @@ export namespace ControllerAnalyzer {
|
|
|
228
233
|
`or re-define re-define parameters for each query parameters.`,
|
|
229
234
|
);
|
|
230
235
|
|
|
236
|
+
// GET TYPE NAME
|
|
237
|
+
const tuple: ITypeTuple | null = ImportAnalyzer.analyze(
|
|
238
|
+
checker,
|
|
239
|
+
genericDict,
|
|
240
|
+
importDict,
|
|
241
|
+
type,
|
|
242
|
+
);
|
|
243
|
+
if (tuple === null)
|
|
244
|
+
throw new Error(
|
|
245
|
+
`Error on ${method}: unnamed parameter type from ${method}#${name}.`,
|
|
246
|
+
);
|
|
247
|
+
|
|
231
248
|
return {
|
|
232
249
|
name,
|
|
233
250
|
category: param.category,
|
|
234
251
|
field: param.field,
|
|
235
252
|
encrypted: param.encrypted,
|
|
236
|
-
type:
|
|
237
|
-
checker,
|
|
238
|
-
genericDict,
|
|
239
|
-
importDict,
|
|
240
|
-
type,
|
|
241
|
-
),
|
|
253
|
+
type: tuple,
|
|
242
254
|
optional,
|
|
243
255
|
};
|
|
244
256
|
}
|
|
@@ -18,12 +18,23 @@ export namespace ImportAnalyzer {
|
|
|
18
18
|
genericDict: GenericAnalyzer.Dictionary,
|
|
19
19
|
importDict: Dictionary,
|
|
20
20
|
type: ts.Type,
|
|
21
|
-
): ITypeTuple {
|
|
21
|
+
): ITypeTuple | null {
|
|
22
22
|
type = get_type(checker, type);
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
explore_escaped_name(checker, genericDict, importDict, type);
|
|
24
|
+
|
|
25
|
+
try {
|
|
26
|
+
return {
|
|
27
|
+
type,
|
|
28
|
+
name: explore_escaped_name(
|
|
29
|
+
checker,
|
|
30
|
+
genericDict,
|
|
31
|
+
importDict,
|
|
32
|
+
type,
|
|
33
|
+
),
|
|
34
|
+
};
|
|
35
|
+
} catch {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
27
38
|
}
|
|
28
39
|
|
|
29
40
|
/* ---------------------------------------------------------
|
|
@@ -71,18 +82,10 @@ export namespace ImportAnalyzer {
|
|
|
71
82
|
|
|
72
83
|
// PRIMITIVE
|
|
73
84
|
const symbol: ts.Symbol | undefined =
|
|
74
|
-
type.aliasSymbol
|
|
75
|
-
|
|
76
|
-
return checker.typeToString(
|
|
77
|
-
type,
|
|
78
|
-
undefined,
|
|
79
|
-
ts.TypeFormatFlags.NoTruncation,
|
|
80
|
-
);
|
|
85
|
+
type.aliasSymbol ?? type.getSymbol();
|
|
86
|
+
|
|
81
87
|
// UNION OR INTERSECT
|
|
82
|
-
|
|
83
|
-
type.aliasSymbol === undefined &&
|
|
84
|
-
type.isUnionOrIntersection()
|
|
85
|
-
) {
|
|
88
|
+
if (type.aliasSymbol === undefined && type.isUnionOrIntersection()) {
|
|
86
89
|
const joiner: string = type.isIntersection() ? " & " : " | ";
|
|
87
90
|
return type.types
|
|
88
91
|
.map((child) =>
|
|
@@ -96,6 +99,20 @@ export namespace ImportAnalyzer {
|
|
|
96
99
|
.join(joiner);
|
|
97
100
|
}
|
|
98
101
|
|
|
102
|
+
// NO SYMBOL
|
|
103
|
+
else if (symbol === undefined) {
|
|
104
|
+
const raw: string = checker.typeToString(
|
|
105
|
+
type,
|
|
106
|
+
undefined,
|
|
107
|
+
ts.TypeFormatFlags.NoTruncation,
|
|
108
|
+
);
|
|
109
|
+
if (raw === "__object")
|
|
110
|
+
throw new Error(
|
|
111
|
+
"Error on ImportAnalyzer.analyze(): unnamed type exists.",
|
|
112
|
+
);
|
|
113
|
+
return raw;
|
|
114
|
+
}
|
|
115
|
+
|
|
99
116
|
//----
|
|
100
117
|
// SPECIALIZATION
|
|
101
118
|
//----
|