@nestia/sdk 1.0.18 → 1.0.20
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/lib/executable/internal/NestiaSdkConfig.js +658 -590
- package/lib/executable/internal/NestiaSdkConfig.js.map +1 -1
- package/package.json +22 -14
- 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":";;;;;;AAAA,oDAAiD;AACjD,4DAA4B;AAK5B,uDAAoD;AACpD,qDAAkD;AAClD,iDAA8C;AAE9C,IAAiB,kBAAkB,CAsPlC;AAtPD,WAAiB,kBAAkB;IAC/B,SAAgB,OAAO,CACnB,OAAuB,EACvB,UAAyB,EACzB,UAAuB;QAEvB,wBAAwB;QACxB,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,oBAAE,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;;YACjC,IACI,oBAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBAC3B,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,WAAW,MAAK,UAAU,CAAC,IAAI,EAC5C;gBACE,yBAAyB;gBACzB,GAAG,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC5D,OAAO;aACV;QACL,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACf,CAAC;IAlBe,0BAAO,UAkBtB,CAAA;IAED;;gEAE4D;IAC5D,SAAS,mBAAmB,CACxB,OAAuB,EACvB,UAAuB,EACvB,SAA8B;QAE9B,MAAM,SAAS,GAAqB,OAAO,CAAC,iBAAiB,CACzD,SAAS,CACQ,CAAC;QACtB,MAAM,WAAW,GAA+B,iCAAe,CAAC,OAAO,CACnE,OAAO,EACP,SAAS,CACZ,CAAC;QAEF,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,aAAa,EAAE,EAAE;YAC9C,yBAAyB;YACzB,MAAM,WAAW,GACb,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,WAAW,IAAI,CAAC,oBAAE,CAAC,mBAAmB,CAAC,WAAW,CAAC;gBAAE,SAAS;YAEnE,qBAAqB;YACrB,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC;YACpC,IAAI,CAAC,oBAAE,CAAC,YAAY,CAAC,UAAU,CAAC;gBAAE,SAAS;YAE3C,uCAAuC;YACvC,MAAM,OAAO,GACT,UAAU,CAAC,SAAS,CAAC,IAAI,CACrB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,WAAW,CAC3C,CAAC;YACN,IAAI,OAAO,KAAK,SAAS;gBAAE,SAAS;YAEpC,MAAM,MAAM,GAAa,iBAAiB,CACtC,OAAO,EACP,UAAU,EACV,WAAW,EACX,OAAO,EACP,QAAQ,CACX,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;SACvB;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED;;gEAE4D;IAC5D,SAAS,iBAAiB,CACtB,OAAuB,EACvB,UAAuB,EACvB,WAAuC,EACvC,IAA2B,EAC3B,MAAiB;QAEjB,iBAAiB;QACjB,MAAM,IAAI,GAAY,OAAO,CAAC,yBAAyB,CACnD,MAAM,EACN,MAAM,CAAC,gBAAiB,CAC3B,CAAC;QACF,MAAM,SAAS,GAA6B,OAAO,CAAC,mBAAmB,CACnE,IAAI,EACJ,oBAAE,CAAC,aAAa,CAAC,IAAI,CACxB,CAAC,CAAC,CAAC,CAAC;QAEL,IAAI,SAAS,KAAK,SAAS;YACvB,MAAM,IAAI,KAAK,CACX,+EAA+E,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,CACnH,CAAC;QAEN,MAAM,UAAU,GAA8B,IAAI,iBAAO,EAAE,CAAC;QAE5D,yBAAyB;QACzB,MAAM,UAAU,GAAwB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAClE,kBAAkB,CACd,OAAO,EACP,WAAW,EACX,UAAU,EACV,UAAU,EACV,IAAI,CAAC,IAAI,EACT,KAAK,EACL,SAAS,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CACzC,CACJ,CAAC;QACF,MAAM,MAAM,GAAsB,+BAAc,CAAC,OAAO,CACpD,OAAO,EACP,WAAW,EACX,UAAU,EACV,SAAS,CAAC,aAAa,EAAE,CAC5B,CAAC;QACF,IAAI,MAAM,KAAK,IAAI;YACf,MAAM,IAAI,KAAK,CACX,mEAAmE,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,CACvG,CAAC;QAEN,MAAM,OAAO,GAAyB,UAAU;aAC3C,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAEvD,wBAAwB;QACxB,MAAM,IAAI,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;QACtC,MAAM,MAAM,mCACL,IAAI,KACP,UAAU;YACV,MAAM;YACN,OAAO,EAEP,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAC3C,QAAQ,EAAE,SAAS,CAAC,uBAAuB,CAAC,SAAS,CAAC,EACtD,IAAI,EACJ,UAAU,EAAE,IAAI;iBACX,MAAM,CACH,CAAC,CAAC,EAAE,EAAE;;gBACF,OAAA,CAAA,MAAA,CAAC,CAAC,IAAI,0CAAE,MAAM;oBACd,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;oBACd,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAA;aAAA,CAC7D;iBACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;;gBACP,OAAA,CAAC,CAAC,IAAI,KAAK,WAAW;oBAClB,CAAC,CAAC;wBACI,IAAI,EAAE,QAAQ;wBACd,MAAM,EAAE,CAAC,CAAC,IAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;wBAC5C,MAAM,EAAE,MAAA,CAAC,CAAC,IAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,0CAAE,IAAI,EAAE;qBAChD;oBACH,CAAC,CAAC;wBACI,IAAI,EAAE,UAAU;wBAChB,MAAM,EAAE,CAAC,CAAC,IAAK,CAAC,CAAC,CAAC,CAAC,IAAI;qBAC1B,CAAA;aAAA,CACV,GACR,CAAC;QAEF,kBAAkB;QAClB,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,cAAc,IAAI,UAAU,CAAC,KAAK;YACzC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;gBAC/B,MAAM,IAAI,GAAW,2BAAY,CAAC,IAAI,CAClC,cAAc,EACd,QAAQ,CACX,CAAC;gBACF,QAAQ,CAAC,IAAI,CACT,2BAAY,CAAC,MAAM,CACf,IAAI,EACJ,GAAG,EAAE,CAAC,8BAA8B,CACvC,CACJ,CAAC;aACL;QAEL,UAAU;QACV,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iCACvB,MAAM,KACT,IAAI,IACN,CAAC,CAAC;IACR,CAAC;IAED;;gEAE4D;IAC5D,SAAS,kBAAkB,CACvB,OAAuB,EACvB,WAAuC,EACvC,UAAqC,EACrC,UAAuB,EACvB,QAAgB,EAChB,KAA6B,EAC7B,MAAiB;;QAEjB,MAAM,IAAI,GAAY,OAAO,CAAC,yBAAyB,CACnD,MAAM,EACN,MAAM,CAAC,gBAAiB,CAC3B,CAAC;QACF,MAAM,IAAI,GAAW,MAAM,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,CAAC;QACxD,MAAM,MAAM,GAAW,GAAG,UAAU,CAAC,IAAI,IAAI,QAAQ,IAAI,CAAC;QAE1D,MAAM,QAAQ,GAAY,CAAC,CAAC,CAAA,MAAA,OAAO,CAAC,4BAA4B,CAC5D,MAAM,EACN,SAAS,EACT,SAAS,CACZ,0CAAE,aAAa,CAAA,CAAC;QAEjB,gCAAgC;QAChC,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YACtD,MAAM,IAAI,KAAK,CACX,YAAY,MAAM,sDAAsD;gBACpE,wBAAwB,MAAM,IAAI,IAAI,iBAAiB;gBACvD,mEAAmE,CAC1E,CAAC;aACD,IAAI,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO;YACpD,MAAM,IAAI,KAAK,CACX,YAAY,MAAM,uEAAuE;gBACrF,qCAAqC,MAAM,IAAI,IAAI,cAAc;gBACjE,yDAAyD,CAChE,CAAC;aACD,IACD,QAAQ,KAAK,IAAI;YACjB,KAAK,CAAC,QAAQ,KAAK,OAAO;YAC1B,KAAK,CAAC,KAAK,KAAK,SAAS;YAEzB,MAAM,IAAI,KAAK,CACX,YAAY,MAAM,kFAAkF;gBAChG,qCAAqC,MAAM,IAAI,IAAI,cAAc;gBACjE,8DAA8D,CACrE,CAAC;QAEN,gBAAgB;QAChB,MAAM,KAAK,GAAsB,+BAAc,CAAC,OAAO,CACnD,OAAO,EACP,WAAW,EACX,UAAU,EACV,IAAI,CACP,CAAC;QACF,IAAI,KAAK,KAAK,IAAI;YACd,MAAM,IAAI,KAAK,CACX,YAAY,MAAM,iCAAiC,MAAM,IAAI,IAAI,GAAG,CACvE,CAAC;QAEN,OAAO;YACH,IAAI;YACJ,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,KAAK;YACX,QAAQ;SACX,CAAC;IACN,CAAC;AACL,CAAC,EAtPgB,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAsPlC"}
|
|
@@ -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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"}
|