@nestia/sdk 3.11.0-dev.20240813-10 → 3.11.0-dev.20240814
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/assets/bundle/api/Resolved.ts +1 -0
- package/assets/bundle/api/module.ts +1 -0
- package/lib/NestiaSdkApplication.d.ts +1 -0
- package/lib/NestiaSdkApplication.js +24 -26
- package/lib/NestiaSdkApplication.js.map +1 -1
- package/lib/analyses/ReflectControllerAnalyzer.js +2 -0
- package/lib/analyses/ReflectControllerAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectHttpOperationAnalyzer.js +10 -1
- package/lib/analyses/ReflectHttpOperationAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectHttpOperationExceptionAnalyzer.d.ts +15 -0
- package/lib/analyses/ReflectHttpOperationExceptionAnalyzer.js +50 -0
- package/lib/analyses/ReflectHttpOperationExceptionAnalyzer.js.map +1 -0
- package/lib/analyses/ReflectHttpOperationParameterAnalyzer.js +14 -9
- package/lib/analyses/ReflectHttpOperationParameterAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js +2 -1
- package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectWebSocketOperationAnalyzer.js +3 -2
- package/lib/analyses/ReflectWebSocketOperationAnalyzer.js.map +1 -1
- package/lib/analyses/TypedHttpRouteAnalyzer.js +3 -1
- package/lib/analyses/TypedHttpRouteAnalyzer.js.map +1 -1
- package/lib/executable/internal/NestiaSdkCommand.d.ts +1 -0
- package/lib/executable/internal/NestiaSdkCommand.js +3 -2
- package/lib/executable/internal/NestiaSdkCommand.js.map +1 -1
- package/lib/executable/sdk.js +3 -0
- package/lib/executable/sdk.js.map +1 -1
- package/lib/generates/CloneGenerator.d.ts +4 -0
- package/lib/generates/CloneGenerator.js +62 -60
- package/lib/generates/CloneGenerator.js.map +1 -1
- package/lib/generates/SdkGenerator.js +4 -3
- package/lib/generates/SdkGenerator.js.map +1 -1
- package/lib/generates/SwaggerGenerator.js +60 -8
- package/lib/generates/SwaggerGenerator.js.map +1 -1
- package/lib/generates/internal/E2eFileProgrammer.js +11 -3
- package/lib/generates/internal/E2eFileProgrammer.js.map +1 -1
- package/lib/generates/internal/ImportDictionary.js +1 -1
- package/lib/generates/internal/ImportDictionary.js.map +1 -1
- package/lib/generates/internal/SdkAliasCollection.d.ts +5 -1
- package/lib/generates/internal/SdkAliasCollection.js +24 -8
- package/lib/generates/internal/SdkAliasCollection.js.map +1 -1
- package/lib/generates/internal/SdkFileProgrammer.js +1 -1
- package/lib/generates/internal/SdkFileProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpCloneProgrammer.d.ts +11 -0
- package/lib/generates/internal/SdkHttpCloneProgrammer.js +75 -142
- package/lib/generates/internal/SdkHttpCloneProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpCloneReferencer.d.ts +4 -0
- package/lib/generates/internal/SdkHttpCloneReferencer.js +62 -0
- package/lib/generates/internal/SdkHttpCloneReferencer.js.map +1 -0
- package/lib/generates/internal/SdkHttpFunctionProgrammer.js +26 -13
- package/lib/generates/internal/SdkHttpFunctionProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpNamespaceProgrammer.js +17 -8
- package/lib/generates/internal/SdkHttpNamespaceProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpRouteProgrammer.js +2 -2
- package/lib/generates/internal/SdkHttpRouteProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpSimulationProgrammer.js +8 -5
- package/lib/generates/internal/SdkHttpSimulationProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js +12 -5
- package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkWebSocketRouteProgrammer.js +3 -3
- package/lib/generates/internal/SdkWebSocketRouteProgrammer.js.map +1 -1
- package/lib/generates/internal/SwaggerOperationComposer.js +19 -1
- package/lib/generates/internal/SwaggerOperationComposer.js.map +1 -1
- package/lib/generates/internal/SwaggerOperationParameterComposer.js +3 -3
- package/lib/generates/internal/SwaggerOperationParameterComposer.js.map +1 -1
- package/lib/structures/IReflectHttpOperation.d.ts +1 -1
- package/lib/structures/IReflectHttpOperationException.d.ts +2 -2
- package/lib/structures/ITypedApplication.d.ts +2 -0
- package/lib/transform.js +2 -2
- package/lib/transform.js.map +1 -1
- package/lib/transformers/IOperationMetadata.d.ts +6 -1
- package/lib/transformers/{ISdkTransformerContext.d.ts → ISdkOperationTransformerContext.d.ts} +1 -1
- package/lib/transformers/{ISdkTransformerContext.js → ISdkOperationTransformerContext.js} +1 -1
- package/lib/transformers/ISdkOperationTransformerContext.js.map +1 -0
- package/lib/transformers/SdkOperationProgrammer.d.ts +13 -0
- package/lib/transformers/{SdkMetadataProgrammer.js → SdkOperationProgrammer.js} +36 -55
- package/lib/transformers/SdkOperationProgrammer.js.map +1 -0
- package/lib/transformers/SdkOperationTransformer.d.ts +4 -0
- package/lib/transformers/{SdkTransformer.js → SdkOperationTransformer.js} +56 -16
- package/lib/transformers/SdkOperationTransformer.js.map +1 -0
- package/lib/utils/MetadataUtil.d.ts +4 -0
- package/lib/utils/MetadataUtil.js +34 -0
- package/lib/utils/MetadataUtil.js.map +1 -0
- package/lib/utils/StringUtil.d.ts +1 -0
- package/lib/utils/StringUtil.js +6 -0
- package/lib/utils/StringUtil.js.map +1 -1
- package/lib/validators/HttpHeadersValidator.d.ts +5 -0
- package/lib/validators/HttpHeadersValidator.js +29 -0
- package/lib/validators/HttpHeadersValidator.js.map +1 -0
- package/lib/validators/HttpQueryValidator.d.ts +5 -0
- package/lib/validators/HttpQueryValidator.js +29 -0
- package/lib/validators/HttpQueryValidator.js.map +1 -0
- package/package.json +8 -8
- package/src/NestiaSdkApplication.ts +20 -30
- package/src/analyses/ReflectControllerAnalyzer.ts +2 -0
- package/src/analyses/ReflectHttpOperationAnalyzer.ts +10 -1
- package/src/analyses/ReflectHttpOperationExceptionAnalyzer.ts +71 -0
- package/src/analyses/ReflectHttpOperationParameterAnalyzer.ts +37 -8
- package/src/analyses/ReflectHttpOperationResponseAnalyzer.ts +8 -0
- package/src/analyses/ReflectWebSocketOperationAnalyzer.ts +10 -2
- package/src/analyses/TypedHttpRouteAnalyzer.ts +4 -1
- package/src/executable/internal/NestiaSdkCommand.ts +3 -2
- package/src/executable/sdk.ts +2 -0
- package/src/generates/CloneGenerator.ts +61 -60
- package/src/generates/SdkGenerator.ts +3 -3
- package/src/generates/SwaggerGenerator.ts +84 -10
- package/src/generates/internal/E2eFileProgrammer.ts +13 -3
- package/src/generates/internal/ImportDictionary.ts +1 -1
- package/src/generates/internal/SdkAliasCollection.ts +32 -10
- package/src/generates/internal/SdkFileProgrammer.ts +1 -1
- package/src/generates/internal/SdkHttpCloneProgrammer.ts +118 -144
- package/src/generates/internal/SdkHttpCloneReferencer.ts +71 -0
- package/src/generates/internal/SdkHttpFunctionProgrammer.ts +31 -16
- package/src/generates/internal/SdkHttpNamespaceProgrammer.ts +252 -230
- package/src/generates/internal/SdkHttpRouteProgrammer.ts +2 -2
- package/src/generates/internal/SdkHttpSimulationProgrammer.ts +30 -24
- package/src/generates/internal/SdkWebSocketNamespaceProgrammer.ts +14 -6
- package/src/generates/internal/SdkWebSocketRouteProgrammer.ts +6 -8
- package/src/generates/internal/SwaggerOperationComposer.ts +25 -0
- package/src/generates/internal/SwaggerOperationParameterComposer.ts +3 -0
- package/src/structures/IReflectHttpOperation.ts +1 -4
- package/src/structures/IReflectHttpOperationException.ts +2 -2
- package/src/structures/ITypedApplication.ts +3 -0
- package/src/transform.ts +2 -2
- package/src/transformers/IOperationMetadata.ts +7 -1
- package/src/transformers/{ISdkTransformerContext.ts → ISdkOperationTransformerContext.ts} +1 -1
- package/src/transformers/{SdkMetadataProgrammer.ts → SdkOperationProgrammer.ts} +40 -62
- package/src/transformers/{SdkTransformer.ts → SdkOperationTransformer.ts} +88 -16
- package/src/utils/MetadataUtil.ts +26 -0
- package/src/utils/StringUtil.ts +8 -0
- package/src/validators/HttpHeadersValidator.ts +34 -0
- package/src/validators/HttpQueryValidator.ts +34 -0
- package/lib/transformers/ISdkTransformerContext.js.map +0 -1
- package/lib/transformers/SdkMetadataProgrammer.d.ts +0 -11
- package/lib/transformers/SdkMetadataProgrammer.js.map +0 -1
- package/lib/transformers/SdkTransformer.d.ts +0 -4
- package/lib/transformers/SdkTransformer.js.map +0 -1
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.SdkOperationProgrammer = void 0;
|
|
4
4
|
const CommentFactory_1 = require("typia/lib/factories/CommentFactory");
|
|
5
5
|
const MetadataFactory_1 = require("typia/lib/factories/MetadataFactory");
|
|
6
6
|
const TypeFactory_1 = require("typia/lib/factories/TypeFactory");
|
|
7
7
|
const Escaper_1 = require("typia/lib/utils/Escaper");
|
|
8
8
|
const ImportAnalyzer_1 = require("../analyses/ImportAnalyzer");
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
const MetadataUtil_1 = require("../utils/MetadataUtil");
|
|
10
|
+
var SdkOperationProgrammer;
|
|
11
|
+
(function (SdkOperationProgrammer) {
|
|
12
|
+
SdkOperationProgrammer.write = (p) => {
|
|
13
|
+
var _a, _b, _c;
|
|
14
14
|
return {
|
|
15
15
|
parameters: p.node.parameters.map((parameter, index) => writeParameter({
|
|
16
16
|
context: p.context,
|
|
@@ -23,18 +23,30 @@ var SdkMetadataProgrammer;
|
|
|
23
23
|
generics: p.generics,
|
|
24
24
|
type: getReturnType({
|
|
25
25
|
checker: p.context.checker,
|
|
26
|
-
signature,
|
|
26
|
+
signature: p.context.checker.getSignatureFromDeclaration(p.node),
|
|
27
27
|
}),
|
|
28
28
|
}),
|
|
29
|
-
exceptions:
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
exceptions: p.exceptions.map((e) => writeResponse({
|
|
30
|
+
context: p.context,
|
|
31
|
+
generics: p.generics,
|
|
32
|
+
type: p.context.checker.getTypeFromTypeNode(e),
|
|
33
|
+
})),
|
|
34
|
+
jsDocTags: (_b = (_a = p.symbol) === null || _a === void 0 ? void 0 : _a.getJsDocTags()) !== null && _b !== void 0 ? _b : [],
|
|
35
|
+
description: p.symbol
|
|
36
|
+
? (_c = CommentFactory_1.CommentFactory.description(p.symbol)) !== null && _c !== void 0 ? _c : null
|
|
37
|
+
: null,
|
|
32
38
|
};
|
|
33
39
|
};
|
|
34
40
|
const writeParameter = (props) => {
|
|
35
41
|
var _a, _b, _c, _d;
|
|
36
42
|
const symbol = props.context.checker.getSymbolAtLocation(props.parameter);
|
|
37
|
-
|
|
43
|
+
const common = writeType({
|
|
44
|
+
context: props.context,
|
|
45
|
+
generics: props.generics,
|
|
46
|
+
type: (_b = props.context.checker.getTypeFromTypeNode((_a = props.parameter.type) !== null && _a !== void 0 ? _a : TypeFactory_1.TypeFactory.keyword("any"))) !== null && _b !== void 0 ? _b : null,
|
|
47
|
+
required: props.parameter.questionToken === undefined,
|
|
48
|
+
});
|
|
49
|
+
return Object.assign(Object.assign({}, common), { name: props.parameter.name.getText(), index: props.index, description: (_c = (symbol && CommentFactory_1.CommentFactory.description(symbol))) !== null && _c !== void 0 ? _c : null, jsDocTags: (_d = symbol === null || symbol === void 0 ? void 0 : symbol.getJsDocTags()) !== null && _d !== void 0 ? _d : [] });
|
|
38
50
|
};
|
|
39
51
|
const writeResponse = (props) => writeType(Object.assign(Object.assign({}, props), { required: true }));
|
|
40
52
|
const writeType = (p) => {
|
|
@@ -99,51 +111,29 @@ var SdkMetadataProgrammer;
|
|
|
99
111
|
};
|
|
100
112
|
};
|
|
101
113
|
const getReturnType = (p) => {
|
|
102
|
-
var _a, _b, _c
|
|
103
|
-
const type = (
|
|
114
|
+
var _a, _b, _c;
|
|
115
|
+
const type = (_a = (p.signature && p.checker.getReturnTypeOfSignature(p.signature))) !== null && _a !== void 0 ? _a : null;
|
|
104
116
|
if (type === null)
|
|
105
117
|
return null;
|
|
106
|
-
else if (((
|
|
118
|
+
else if (((_b = type.symbol) === null || _b === void 0 ? void 0 : _b.name) === "Promise") {
|
|
107
119
|
const generic = p.checker.getTypeArguments(type);
|
|
108
|
-
return (
|
|
120
|
+
return (_c = generic[0]) !== null && _c !== void 0 ? _c : null;
|
|
109
121
|
}
|
|
110
122
|
return type;
|
|
111
123
|
};
|
|
112
|
-
})(
|
|
113
|
-
const iterateVisited = (
|
|
124
|
+
})(SdkOperationProgrammer || (exports.SdkOperationProgrammer = SdkOperationProgrammer = {}));
|
|
125
|
+
const iterateVisited = (metadata) => {
|
|
114
126
|
const names = new Set();
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
if (visited.has(metadata))
|
|
118
|
-
return;
|
|
119
|
-
visited.add(metadata);
|
|
120
|
-
for (const alias of metadata.aliases) {
|
|
127
|
+
MetadataUtil_1.MetadataUtil.visit((m) => {
|
|
128
|
+
for (const alias of m.aliases)
|
|
121
129
|
names.add(alias.name);
|
|
122
|
-
|
|
123
|
-
}
|
|
124
|
-
for (const array of metadata.arrays) {
|
|
130
|
+
for (const array of m.arrays)
|
|
125
131
|
names.add(array.type.name);
|
|
126
|
-
|
|
127
|
-
}
|
|
128
|
-
for (const tuple of metadata.tuples) {
|
|
132
|
+
for (const tuple of m.tuples)
|
|
129
133
|
names.add(tuple.type.name);
|
|
130
|
-
|
|
131
|
-
}
|
|
132
|
-
for (const object of metadata.objects) {
|
|
134
|
+
for (const object of m.objects)
|
|
133
135
|
names.add(object.name);
|
|
134
|
-
|
|
135
|
-
iterate(p.key);
|
|
136
|
-
iterate(p.value);
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
if (metadata.escaped) {
|
|
140
|
-
iterate(metadata.escaped.original);
|
|
141
|
-
iterate(metadata.escaped.returns);
|
|
142
|
-
}
|
|
143
|
-
if (metadata.rest)
|
|
144
|
-
iterate(metadata.rest);
|
|
145
|
-
};
|
|
146
|
-
iterate(metdata);
|
|
136
|
+
})(metadata);
|
|
147
137
|
return names;
|
|
148
138
|
};
|
|
149
139
|
const join = ({ object, key, }) => {
|
|
@@ -155,13 +145,4 @@ const join = ({ object, key, }) => {
|
|
|
155
145
|
return `${object.name}.${key}`;
|
|
156
146
|
return `${object.name}[${JSON.stringify(key)}]`;
|
|
157
147
|
};
|
|
158
|
-
|
|
159
|
-
const content = signature
|
|
160
|
-
.getDocumentationComment(undefined)
|
|
161
|
-
.filter((c) => c.kind === "text")
|
|
162
|
-
.map((c) => c.text);
|
|
163
|
-
return content.length
|
|
164
|
-
? content.map((line) => line.split("\r\n").join("\n")).join("\n")
|
|
165
|
-
: null;
|
|
166
|
-
};
|
|
167
|
-
//# sourceMappingURL=SdkMetadataProgrammer.js.map
|
|
148
|
+
//# sourceMappingURL=SdkOperationProgrammer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SdkOperationProgrammer.js","sourceRoot":"","sources":["../../src/transformers/SdkOperationProgrammer.ts"],"names":[],"mappings":";;;AACA,uEAAoE;AAEpE,yEAAsE;AACtE,iEAA8D;AAI9D,qDAAkD;AAElD,+DAA4D;AAC5D,wDAAqD;AAIrD,IAAiB,sBAAsB,CA4KtC;AA5KD,WAAiB,sBAAsB;IAQxB,4BAAK,GAAG,CAAC,CAAS,EAAsB,EAAE;;QACrD,OAAO;YACL,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CACrD,cAAc,CAAC;gBACb,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,SAAS;gBACT,KAAK;aACN,CAAC,CACH;YACD,OAAO,EAAE,aAAa,CAAC;gBACrB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,IAAI,EAAE,aAAa,CAAC;oBAClB,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO;oBAC1B,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC;iBACjE,CAAC;aACH,CAAC;YACF,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACjC,aAAa,CAAC;gBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;aAC/C,CAAC,CACH;YACD,SAAS,EAAE,MAAA,MAAA,CAAC,CAAC,MAAM,0CAAE,YAAY,EAAE,mCAAI,EAAE;YACzC,WAAW,EAAE,CAAC,CAAC,MAAM;gBACnB,CAAC,CAAC,MAAA,+BAAc,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,mCAAI,IAAI;gBAC9C,CAAC,CAAC,IAAI;SACT,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,KAKvB,EAAiC,EAAE;;QAClC,MAAM,MAAM,GACV,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAiC,SAAS,CAAC;YACrD,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,IAAI,EACF,MAAA,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACvC,MAAA,KAAK,CAAC,SAAS,CAAC,IAAI,mCAAI,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CACnD,mCAAI,IAAI;YACX,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,aAAa,KAAK,SAAS;SACtD,CAAC,CAAC;QACH,uCACK,MAAM,KACT,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EACpC,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,WAAW,EAAE,MAAA,CAAC,MAAM,IAAI,+BAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,mCAAI,IAAI,EACnE,SAAS,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,EAAE,mCAAI,EAAE,IACvC;IACJ,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,KAItB,EAAgC,EAAE,CACjC,SAAS,iCACJ,KAAK,KACR,QAAQ,EAAE,IAAI,IACd,CAAC;IAEL,MAAM,SAAS,GAAG,CAAC,CAKlB,EAAgC,EAAE;QACjC,MAAM,QAAQ,GAA2B,CAAC,CAAC,IAAI;YAC7C,CAAC,CAAC,+BAAc,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC;YAC/D,CAAC,CAAC;gBACE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;gBACrB,OAAO,EAAE,EAAE;aACZ,CAAC;QACN,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACzD,iCAAe,CAAC,OAAO,CACrB,CAAC,CAAC,OAAO,CAAC,OAAO,EACjB,CAAC,CAAC,OAAO,CAAC,GAAG,CACd,CAAC;YACA,MAAM;YACN,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;SACb,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CACjC,CAAC;QACF,uCACK,QAAQ,KACX,SAAS,EAAE,WAAW,CAAC;gBACrB,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU;gBAChC,MAAM,EAAE,SAAS;aAClB,CAAC,EACF,QAAQ,EAAE,WAAW,CAAC;gBACpB,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU;gBAChC,MAAM,EAAE,QAAQ;aACjB,CAAC,IACF;IACJ,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,CAGpB,EAAyE,EAAE;QAC1E,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK;YAC5B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAClC,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,QAAQ,EACN,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI;wBACvB,CAAC,CAAC,IAAI,CAAC;4BACH,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM;4BACxB,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ;yBACxB,CAAC;wBACJ,CAAC,CAAC,IAAI;oBACV,QAAQ,EAAE,CAAC,CAAC,QAAQ;iBACrB,CAAC,CAAC;aACJ,CAAC;QACJ,MAAM,OAAO,GAAgB,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3D,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,UAAU,EAAE;oBACV,OAAO,EAAE,CAAC,CAAC,UAAU;yBAClB,OAAO,EAAE;yBACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;yBAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;oBACzB,OAAO,EAAE,CAAC,CAAC,UAAU;yBAClB,OAAO,EAAE;yBACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;yBAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;oBACzB,MAAM,EAAE,CAAC,CAAC,UAAU;yBACjB,MAAM,EAAE;yBACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;yBAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;oBACzB,MAAM,EAAE,CAAC,CAAC,UAAU;yBACjB,MAAM,EAAE;yBACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;yBAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBAC1B;gBACD,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE;aACjC;SACF,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,CAGtB,EAAkB,EAAE;;QACnB,MAAM,IAAI,GACR,MAAA,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,mCAAI,IAAI,CAAC;QAC3E,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;aAC1B,IAAI,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,MAAK,SAAS,EAAE,CAAC;YACzC,MAAM,OAAO,GAAuB,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAC5D,IAAwB,CACzB,CAAC;YACF,OAAO,MAAA,OAAO,CAAC,CAAC,CAAC,mCAAI,IAAI,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC,EA5KgB,sBAAsB,sCAAtB,sBAAsB,QA4KtC;AAED,MAAM,cAAc,GAAG,CAAC,QAAkB,EAAe,EAAE;IACzD,MAAM,KAAK,GAAgB,IAAI,GAAG,EAAE,CAAC;IACrC,2BAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACvB,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,OAAO;YAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrD,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,MAAM;YAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,MAAM;YAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,KAAK,MAAM,MAAM,IAAI,CAAC,CAAC,OAAO;YAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACb,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,CAAC,EACZ,MAAM,EACN,GAAG,GAIJ,EAAE,EAAE;IACH,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;SAChC,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,MAAM,CAAC,IAAI,OAAO,CAAC;SAC1D,IAAI,iBAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;IAC/D,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;AAClD,CAAC,CAAC"}
|
|
@@ -3,23 +3,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.SdkOperationTransformer = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
7
8
|
const tstl_1 = require("tstl");
|
|
8
9
|
const typescript_1 = __importDefault(require("typescript"));
|
|
9
10
|
const LiteralFactory_1 = require("typia/lib/factories/LiteralFactory");
|
|
10
11
|
const MetadataCollection_1 = require("typia/lib/factories/MetadataCollection");
|
|
11
12
|
const TypeFactory_1 = require("typia/lib/factories/TypeFactory");
|
|
12
13
|
const GenericAnalyzer_1 = require("../analyses/GenericAnalyzer");
|
|
13
|
-
const
|
|
14
|
-
var
|
|
15
|
-
(function (
|
|
16
|
-
|
|
14
|
+
const SdkOperationProgrammer_1 = require("./SdkOperationProgrammer");
|
|
15
|
+
var SdkOperationTransformer;
|
|
16
|
+
(function (SdkOperationTransformer) {
|
|
17
|
+
SdkOperationTransformer.iterateFile = (checker) => (api) => {
|
|
17
18
|
const context = {
|
|
18
19
|
checker,
|
|
19
20
|
api,
|
|
20
|
-
collection:
|
|
21
|
-
replace: MetadataCollection_1.MetadataCollection.replace,
|
|
22
|
-
}),
|
|
21
|
+
collection: collection.get(),
|
|
23
22
|
};
|
|
24
23
|
return (file) => {
|
|
25
24
|
if (file.isDeclarationFile === true)
|
|
@@ -28,7 +27,7 @@ var SdkTransformer;
|
|
|
28
27
|
done: false,
|
|
29
28
|
visited: new tstl_1.HashSet(),
|
|
30
29
|
};
|
|
31
|
-
file = typescript_1.default.visitEachChild(file, (node) =>
|
|
30
|
+
file = typescript_1.default.visitEachChild(file, (node) => iterateNode({
|
|
32
31
|
context,
|
|
33
32
|
visitor,
|
|
34
33
|
node,
|
|
@@ -41,13 +40,29 @@ var SdkTransformer;
|
|
|
41
40
|
]);
|
|
42
41
|
};
|
|
43
42
|
};
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
const iterateNode = (props) => typescript_1.default.visitEachChild(transformNode(props), (child) => iterateNode(Object.assign(Object.assign({}, props), { node: child })), props.context.api);
|
|
44
|
+
const transformNode = (props) => {
|
|
45
|
+
return typescript_1.default.isClassDeclaration(props.node)
|
|
46
|
+
? transformClass(Object.assign(Object.assign({}, props), { node: props.node }))
|
|
47
|
+
: props.node;
|
|
48
|
+
};
|
|
47
49
|
const transformClass = (props) => {
|
|
48
50
|
const generics = GenericAnalyzer_1.GenericAnalyzer.analyze(props.context.checker, props.node);
|
|
51
|
+
// TO AVOID COMMENT COMPILATION BUG
|
|
52
|
+
const symbolDict = new Map();
|
|
53
|
+
const classType = props.context.checker.getTypeAtLocation(props.node);
|
|
54
|
+
for (const symbol of classType.getProperties()) {
|
|
55
|
+
const declaration = (symbol.declarations ||
|
|
56
|
+
[])[0];
|
|
57
|
+
if (!declaration || !typescript_1.default.isMethodDeclaration(declaration))
|
|
58
|
+
continue;
|
|
59
|
+
const identifier = declaration.name;
|
|
60
|
+
if (!typescript_1.default.isIdentifier(identifier))
|
|
61
|
+
continue;
|
|
62
|
+
symbolDict.set(identifier.escapedText.toString(), symbol);
|
|
63
|
+
}
|
|
49
64
|
return typescript_1.default.factory.updateClassDeclaration(props.node, props.node.modifiers, props.node.name, props.node.typeParameters, props.node.heritageClauses, props.node.members.map((m) => typescript_1.default.isMethodDeclaration(m)
|
|
50
|
-
? transformMethod(Object.assign(Object.assign({}, props), { generics, class: props.node, node: m }))
|
|
65
|
+
? transformMethod(Object.assign(Object.assign({}, props), { generics, class: props.node, node: m, symbol: symbolDict.get(m.name.getText()) }))
|
|
51
66
|
: m));
|
|
52
67
|
};
|
|
53
68
|
const transformMethod = (props) => {
|
|
@@ -64,7 +79,10 @@ var SdkTransformer;
|
|
|
64
79
|
return props.node;
|
|
65
80
|
else
|
|
66
81
|
props.visitor.visited.insert(key);
|
|
67
|
-
const metadata =
|
|
82
|
+
const metadata = SdkOperationProgrammer_1.SdkOperationProgrammer.write(Object.assign(Object.assign({}, props), { exceptions: getExceptionTypes({
|
|
83
|
+
checker: props.context.checker,
|
|
84
|
+
decorators,
|
|
85
|
+
}) }));
|
|
68
86
|
return typescript_1.default.factory.updateMethodDeclaration(props.node, [
|
|
69
87
|
...((_c = props.node.modifiers) !== null && _c !== void 0 ? _c : []),
|
|
70
88
|
typescript_1.default.factory.createDecorator(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("__OperationMetadata.OperationMetadata"), undefined, [
|
|
@@ -72,7 +90,25 @@ var SdkTransformer;
|
|
|
72
90
|
])),
|
|
73
91
|
], props.node.asteriskToken, props.node.name, props.node.questionToken, props.node.typeParameters, props.node.parameters, props.node.type, props.node.body);
|
|
74
92
|
};
|
|
75
|
-
|
|
93
|
+
const getExceptionTypes = (props) => props.decorators
|
|
94
|
+
.map((deco) => {
|
|
95
|
+
var _a, _b, _c;
|
|
96
|
+
if (false === typescript_1.default.isCallExpression(deco.expression))
|
|
97
|
+
return null;
|
|
98
|
+
const signature = props.checker.getResolvedSignature(deco.expression);
|
|
99
|
+
if (signature === undefined)
|
|
100
|
+
return null;
|
|
101
|
+
else if (!signature.declaration)
|
|
102
|
+
return null;
|
|
103
|
+
const location = path_1.default.resolve((_b = (_a = signature.declaration.getSourceFile()) === null || _a === void 0 ? void 0 : _a.fileName) !== null && _b !== void 0 ? _b : "");
|
|
104
|
+
if (location.includes(TYPED_EXCEPTION_PATH) === false)
|
|
105
|
+
return null;
|
|
106
|
+
else if (((_c = deco.expression.typeArguments) === null || _c === void 0 ? void 0 : _c.length) !== 1)
|
|
107
|
+
return null;
|
|
108
|
+
return deco.expression.typeArguments[0];
|
|
109
|
+
})
|
|
110
|
+
.filter((t) => t !== null);
|
|
111
|
+
})(SdkOperationTransformer || (exports.SdkOperationTransformer = SdkOperationTransformer = {}));
|
|
76
112
|
class MethodKey {
|
|
77
113
|
constructor(className, methodName) {
|
|
78
114
|
this.className = className;
|
|
@@ -85,4 +121,8 @@ class MethodKey {
|
|
|
85
121
|
return (0, tstl_1.hash)(this.className, this.methodName);
|
|
86
122
|
}
|
|
87
123
|
}
|
|
88
|
-
|
|
124
|
+
const TYPED_EXCEPTION_PATH = path_1.default.join("@nestia", "core", "lib", "decorators", `TypedException.d.ts`);
|
|
125
|
+
const collection = new tstl_1.Singleton(() => new MetadataCollection_1.MetadataCollection({
|
|
126
|
+
replace: MetadataCollection_1.MetadataCollection.replace,
|
|
127
|
+
}));
|
|
128
|
+
//# sourceMappingURL=SdkOperationTransformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SdkOperationTransformer.js","sourceRoot":"","sources":["../../src/transformers/SdkOperationTransformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MetadataUtil = void 0;
|
|
4
|
+
var MetadataUtil;
|
|
5
|
+
(function (MetadataUtil) {
|
|
6
|
+
MetadataUtil.visit = (closure) => {
|
|
7
|
+
const visited = new WeakSet();
|
|
8
|
+
const iterate = (metadata) => {
|
|
9
|
+
if (visited.has(metadata))
|
|
10
|
+
return;
|
|
11
|
+
visited.add(metadata);
|
|
12
|
+
closure(metadata);
|
|
13
|
+
for (const alias of metadata.aliases)
|
|
14
|
+
iterate(alias.value);
|
|
15
|
+
for (const array of metadata.arrays)
|
|
16
|
+
iterate(array.type.value);
|
|
17
|
+
for (const tuple of metadata.tuples)
|
|
18
|
+
tuple.type.elements.map(iterate);
|
|
19
|
+
for (const object of metadata.objects)
|
|
20
|
+
object.properties.forEach((p) => {
|
|
21
|
+
iterate(p.key);
|
|
22
|
+
iterate(p.value);
|
|
23
|
+
});
|
|
24
|
+
if (metadata.escaped) {
|
|
25
|
+
iterate(metadata.escaped.original);
|
|
26
|
+
iterate(metadata.escaped.returns);
|
|
27
|
+
}
|
|
28
|
+
if (metadata.rest)
|
|
29
|
+
iterate(metadata.rest);
|
|
30
|
+
};
|
|
31
|
+
return iterate;
|
|
32
|
+
};
|
|
33
|
+
})(MetadataUtil || (exports.MetadataUtil = MetadataUtil = {}));
|
|
34
|
+
//# sourceMappingURL=MetadataUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetadataUtil.js","sourceRoot":"","sources":["../../src/utils/MetadataUtil.ts"],"names":[],"mappings":";;;AAEA,IAAiB,YAAY,CAuB5B;AAvBD,WAAiB,YAAY;IACd,kBAAK,GAAG,CAAC,OAAiC,EAAE,EAAE;QACzD,MAAM,OAAO,GAAsB,IAAI,OAAO,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,CAAC,QAAkB,EAAQ,EAAE;YAC3C,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,OAAO;YAClC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtB,OAAO,CAAC,QAAQ,CAAC,CAAC;YAClB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO;gBAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3D,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM;gBAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/D,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM;gBAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtE,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO;gBACnC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC9B,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACf,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC,CAAC,CAAC;YACL,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;YACD,IAAI,QAAQ,CAAC,IAAI;gBAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;AACJ,CAAC,EAvBgB,YAAY,4BAAZ,YAAY,QAuB5B"}
|
package/lib/utils/StringUtil.js
CHANGED
|
@@ -5,5 +5,11 @@ var StringUtil;
|
|
|
5
5
|
(function (StringUtil) {
|
|
6
6
|
StringUtil.capitalize = (text) => text.charAt(0).toUpperCase() + text.slice(1).toLowerCase();
|
|
7
7
|
StringUtil.escapeDuplicate = (keep) => (change) => keep.includes(change) ? StringUtil.escapeDuplicate(keep)(`_${change}`) : change;
|
|
8
|
+
StringUtil.isImplicit = (str) => str === "object" ||
|
|
9
|
+
str === "__type" ||
|
|
10
|
+
str === "__object" ||
|
|
11
|
+
str.startsWith("__type.") ||
|
|
12
|
+
str.startsWith("__object.") ||
|
|
13
|
+
str.includes("readonly [");
|
|
8
14
|
})(StringUtil || (exports.StringUtil = StringUtil = {}));
|
|
9
15
|
//# sourceMappingURL=StringUtil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringUtil.js","sourceRoot":"","sources":["../../src/utils/StringUtil.ts"],"names":[],"mappings":";;;AAAA,IAAiB,UAAU,
|
|
1
|
+
{"version":3,"file":"StringUtil.js","sourceRoot":"","sources":["../../src/utils/StringUtil.ts"],"names":[],"mappings":";;;AAAA,IAAiB,UAAU,CAgB1B;AAhBD,WAAiB,UAAU;IACZ,qBAAU,GAAG,CAAC,IAAY,EAAU,EAAE,CACjD,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAEhD,0BAAe,GAC1B,CAAC,IAAc,EAAE,EAAE,CACnB,CAAC,MAAc,EAAU,EAAE,CACzB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAA,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAE5D,qBAAU,GAAG,CAAC,GAAW,EAAE,EAAE,CACxC,GAAG,KAAK,QAAQ;QAChB,GAAG,KAAK,QAAQ;QAChB,GAAG,KAAK,UAAU;QAClB,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;QACzB,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC;QAC3B,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC/B,CAAC,EAhBgB,UAAU,0BAAV,UAAU,QAgB1B"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { MetadataFactory } from "typia/lib/factories/MetadataFactory";
|
|
2
|
+
import { Metadata } from "typia/lib/schemas/metadata/Metadata";
|
|
3
|
+
export declare namespace HttpHeadersValidator {
|
|
4
|
+
const validate: (meta: Metadata, explore: MetadataFactory.IExplore) => string[];
|
|
5
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HttpHeadersValidator = void 0;
|
|
4
|
+
const MetadataArrayType_1 = require("typia/lib/schemas/metadata/MetadataArrayType");
|
|
5
|
+
var HttpHeadersValidator;
|
|
6
|
+
(function (HttpHeadersValidator) {
|
|
7
|
+
HttpHeadersValidator.validate = (meta, explore) => {
|
|
8
|
+
const errors = [];
|
|
9
|
+
const insert = (msg) => errors.push(msg);
|
|
10
|
+
if (explore.top === true) {
|
|
11
|
+
const expected = meta.atomics.length +
|
|
12
|
+
meta.templates.length +
|
|
13
|
+
meta.constants.map((c) => c.values.length).reduce((a, b) => a + b, 0) +
|
|
14
|
+
meta.arrays.length;
|
|
15
|
+
if (meta.size() !== expected)
|
|
16
|
+
insert("Only atomic or array of atomic types are allowed.");
|
|
17
|
+
}
|
|
18
|
+
else if (explore.nested !== null &&
|
|
19
|
+
explore.nested instanceof MetadataArrayType_1.MetadataArrayType) {
|
|
20
|
+
const expected = meta.atomics.length +
|
|
21
|
+
meta.templates.length +
|
|
22
|
+
meta.constants.map((c) => c.values.length).reduce((a, b) => a + b, 0);
|
|
23
|
+
if (meta.size() !== expected)
|
|
24
|
+
insert("Only atomic types are allowed in array.");
|
|
25
|
+
}
|
|
26
|
+
return errors;
|
|
27
|
+
};
|
|
28
|
+
})(HttpHeadersValidator || (exports.HttpHeadersValidator = HttpHeadersValidator = {}));
|
|
29
|
+
//# sourceMappingURL=HttpHeadersValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpHeadersValidator.js","sourceRoot":"","sources":["../../src/validators/HttpHeadersValidator.ts"],"names":[],"mappings":";;;AAEA,oFAAiF;AAEjF,IAAiB,oBAAoB,CA6BpC;AA7BD,WAAiB,oBAAoB;IACtB,6BAAQ,GAAG,CACtB,IAAc,EACd,OAAiC,EACvB,EAAE;QACZ,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEjD,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;YACzB,MAAM,QAAQ,GACZ,IAAI,CAAC,OAAO,CAAC,MAAM;gBACnB,IAAI,CAAC,SAAS,CAAC,MAAM;gBACrB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACrB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,QAAQ;gBAC1B,MAAM,CAAC,mDAAmD,CAAC,CAAC;QAChE,CAAC;aAAM,IACL,OAAO,CAAC,MAAM,KAAK,IAAI;YACvB,OAAO,CAAC,MAAM,YAAY,qCAAiB,EAC3C,CAAC;YACD,MAAM,QAAQ,GACZ,IAAI,CAAC,OAAO,CAAC,MAAM;gBACnB,IAAI,CAAC,SAAS,CAAC,MAAM;gBACrB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACxE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,QAAQ;gBAC1B,MAAM,CAAC,yCAAyC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC,EA7BgB,oBAAoB,oCAApB,oBAAoB,QA6BpC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HttpQueryValidator = void 0;
|
|
4
|
+
const MetadataArrayType_1 = require("typia/lib/schemas/metadata/MetadataArrayType");
|
|
5
|
+
var HttpQueryValidator;
|
|
6
|
+
(function (HttpQueryValidator) {
|
|
7
|
+
HttpQueryValidator.validate = (meta, explore) => {
|
|
8
|
+
const errors = [];
|
|
9
|
+
const insert = (msg) => errors.push(msg);
|
|
10
|
+
if (explore.top === true) {
|
|
11
|
+
const expected = meta.atomics.length +
|
|
12
|
+
meta.templates.length +
|
|
13
|
+
meta.constants.map((c) => c.values.length).reduce((a, b) => a + b, 0) +
|
|
14
|
+
meta.arrays.length;
|
|
15
|
+
if (meta.size() !== expected)
|
|
16
|
+
insert("Only atomic or array of atomic types are allowed.");
|
|
17
|
+
}
|
|
18
|
+
else if (explore.nested !== null &&
|
|
19
|
+
explore.nested instanceof MetadataArrayType_1.MetadataArrayType) {
|
|
20
|
+
const expected = meta.atomics.length +
|
|
21
|
+
meta.templates.length +
|
|
22
|
+
meta.constants.map((c) => c.values.length).reduce((a, b) => a + b, 0);
|
|
23
|
+
if (meta.size() !== expected)
|
|
24
|
+
insert("Only atomic types are allowed in array.");
|
|
25
|
+
}
|
|
26
|
+
return errors;
|
|
27
|
+
};
|
|
28
|
+
})(HttpQueryValidator || (exports.HttpQueryValidator = HttpQueryValidator = {}));
|
|
29
|
+
//# sourceMappingURL=HttpQueryValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpQueryValidator.js","sourceRoot":"","sources":["../../src/validators/HttpQueryValidator.ts"],"names":[],"mappings":";;;AAEA,oFAAiF;AAEjF,IAAiB,kBAAkB,CA6BlC;AA7BD,WAAiB,kBAAkB;IACpB,2BAAQ,GAAG,CACtB,IAAc,EACd,OAAiC,EACvB,EAAE;QACZ,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEjD,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;YACzB,MAAM,QAAQ,GACZ,IAAI,CAAC,OAAO,CAAC,MAAM;gBACnB,IAAI,CAAC,SAAS,CAAC,MAAM;gBACrB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACrB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,QAAQ;gBAC1B,MAAM,CAAC,mDAAmD,CAAC,CAAC;QAChE,CAAC;aAAM,IACL,OAAO,CAAC,MAAM,KAAK,IAAI;YACvB,OAAO,CAAC,MAAM,YAAY,qCAAiB,EAC3C,CAAC;YACD,MAAM,QAAQ,GACZ,IAAI,CAAC,OAAO,CAAC,MAAM;gBACnB,IAAI,CAAC,SAAS,CAAC,MAAM;gBACrB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACxE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,QAAQ;gBAC1B,MAAM,CAAC,yCAAyC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC,EA7BgB,kBAAkB,kCAAlB,kBAAkB,QA6BlC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestia/sdk",
|
|
3
|
-
"version": "3.11.0-dev.
|
|
3
|
+
"version": "3.11.0-dev.20240814",
|
|
4
4
|
"description": "Nestia SDK and Swagger generator",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -32,9 +32,9 @@
|
|
|
32
32
|
},
|
|
33
33
|
"homepage": "https://nestia.io",
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@nestia/core": "^3.11.0-dev.
|
|
36
|
-
"@nestia/fetcher": "^3.11.0-dev.
|
|
37
|
-
"@samchon/openapi": "^0.4.
|
|
35
|
+
"@nestia/core": "^3.11.0-dev.20240814",
|
|
36
|
+
"@nestia/fetcher": "^3.11.0-dev.20240814",
|
|
37
|
+
"@samchon/openapi": "^0.4.5",
|
|
38
38
|
"@wrtnio/openai-function-schema": "^0.2.3",
|
|
39
39
|
"cli": "^1.0.1",
|
|
40
40
|
"get-function-location": "^2.0.0",
|
|
@@ -45,16 +45,16 @@
|
|
|
45
45
|
"tsconfck": "^2.1.2",
|
|
46
46
|
"tsconfig-paths": "^4.1.1",
|
|
47
47
|
"tstl": "^3.0.0",
|
|
48
|
-
"typia": "^6.8.0
|
|
48
|
+
"typia": "^6.8.0"
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
|
-
"@nestia/core": ">=3.11.0-dev.
|
|
52
|
-
"@nestia/fetcher": ">=3.11.0-dev.
|
|
51
|
+
"@nestia/core": ">=3.11.0-dev.20240814",
|
|
52
|
+
"@nestia/fetcher": ">=3.11.0-dev.20240814",
|
|
53
53
|
"@nestjs/common": ">=7.0.1",
|
|
54
54
|
"@nestjs/core": ">=7.0.1",
|
|
55
55
|
"reflect-metadata": ">=0.1.12",
|
|
56
56
|
"ts-node": ">=10.6.0",
|
|
57
|
-
"typia": ">=6.8.0
|
|
57
|
+
"typia": ">=6.8.0 <7.0.0"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
60
|
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
|
|
@@ -27,6 +27,24 @@ import { VersioningStrategy } from "./utils/VersioningStrategy";
|
|
|
27
27
|
export class NestiaSdkApplication {
|
|
28
28
|
public constructor(private readonly config: INestiaConfig) {}
|
|
29
29
|
|
|
30
|
+
public async all(): Promise<void> {
|
|
31
|
+
if (
|
|
32
|
+
!this.config.output &&
|
|
33
|
+
!this.config.swagger?.output &&
|
|
34
|
+
!this.config.openai?.output
|
|
35
|
+
)
|
|
36
|
+
throw new Error("Error on NestiaApplication.all(): nothing to generate.");
|
|
37
|
+
print_title("Nestia All Generator");
|
|
38
|
+
await this.generate({
|
|
39
|
+
generate: async (app) => {
|
|
40
|
+
if (this.config.output) await SdkGenerator.generate(app);
|
|
41
|
+
if (this.config.e2e) await E2eGenerator.generate(app);
|
|
42
|
+
if (this.config.swagger) await SwaggerGenerator.generate(app);
|
|
43
|
+
if (this.config.openai) await OpenAiGenerator.generate(app);
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
|
|
30
48
|
public async e2e(): Promise<void> {
|
|
31
49
|
if (!this.config.output)
|
|
32
50
|
throw new Error(
|
|
@@ -234,6 +252,7 @@ export class NestiaSdkApplication {
|
|
|
234
252
|
if (props.validate !== undefined)
|
|
235
253
|
props.validate({
|
|
236
254
|
project,
|
|
255
|
+
collection,
|
|
237
256
|
routes,
|
|
238
257
|
});
|
|
239
258
|
if (project.errors.length)
|
|
@@ -243,6 +262,7 @@ export class NestiaSdkApplication {
|
|
|
243
262
|
});
|
|
244
263
|
await props.generate({
|
|
245
264
|
project,
|
|
265
|
+
collection,
|
|
246
266
|
routes,
|
|
247
267
|
});
|
|
248
268
|
}
|
|
@@ -254,22 +274,6 @@ const print_title = (str: string): void => {
|
|
|
254
274
|
console.log("-----------------------------------------------------------");
|
|
255
275
|
};
|
|
256
276
|
|
|
257
|
-
// const is_implicit_return_typed = (route: ITypedHttpRoute): boolean => {
|
|
258
|
-
// const name: string = route.output.typeName;
|
|
259
|
-
// if (name === "void") return false;
|
|
260
|
-
// else if (name.indexOf("readonly [") !== -1) return true;
|
|
261
|
-
|
|
262
|
-
// const pos: number = name.indexOf("__object");
|
|
263
|
-
// if (pos === -1) return false;
|
|
264
|
-
|
|
265
|
-
// const before: number = pos - 1;
|
|
266
|
-
// const after: number = pos + "__object".length;
|
|
267
|
-
// for (const i of [before, after])
|
|
268
|
-
// if (name[i] === undefined) continue;
|
|
269
|
-
// else if (VARIABLE.test(name[i])) return false;
|
|
270
|
-
// return true;
|
|
271
|
-
// };
|
|
272
|
-
|
|
273
277
|
const report = (props: {
|
|
274
278
|
type: "error" | "warning";
|
|
275
279
|
errors: IReflectOperationError[];
|
|
@@ -311,20 +315,6 @@ const report = (props: {
|
|
|
311
315
|
].join("");
|
|
312
316
|
console.log(message);
|
|
313
317
|
}
|
|
314
|
-
|
|
315
|
-
// for (const [file, cMap] of map) {
|
|
316
|
-
// for (const [controller, fMap] of cMap)
|
|
317
|
-
// for (const [func, messages] of fMap) {
|
|
318
|
-
// const location: string = path.relative(process.cwd(), file);
|
|
319
|
-
// console.log(
|
|
320
|
-
// `${location} - ${
|
|
321
|
-
// func !== null ? `${controller}.${func}()` : controller
|
|
322
|
-
// }`,
|
|
323
|
-
// );
|
|
324
|
-
// for (const msg of messages) console.log(` - ${msg}`);
|
|
325
|
-
// console.log("");
|
|
326
|
-
// }
|
|
327
|
-
// }
|
|
328
318
|
};
|
|
329
319
|
|
|
330
320
|
const wrapPaths = (paths: string[]): string[] =>
|
|
@@ -72,6 +72,8 @@ export namespace ReflectControllerAnalyzer {
|
|
|
72
72
|
key,
|
|
73
73
|
);
|
|
74
74
|
if (metadata === undefined) continue;
|
|
75
|
+
else if (metadata.jsDocTags.some((tag) => tag.name === "ignore"))
|
|
76
|
+
continue;
|
|
75
77
|
const next: ReflectHttpOperationAnalyzer.IProps = {
|
|
76
78
|
project: props.project,
|
|
77
79
|
controller: controller,
|
|
@@ -11,6 +11,7 @@ import { IOperationMetadata } from "../transformers/IOperationMetadata";
|
|
|
11
11
|
import { ArrayUtil } from "../utils/ArrayUtil";
|
|
12
12
|
import { ImportAnalyzer } from "./ImportAnalyzer";
|
|
13
13
|
import { PathAnalyzer } from "./PathAnalyzer";
|
|
14
|
+
import { ReflectHttpOperationExceptionAnalyzer } from "./ReflectHttpOperationExceptionAnalyzer";
|
|
14
15
|
import { ReflectHttpOperationParameterAnalyzer } from "./ReflectHttpOperationParameterAnalyzer";
|
|
15
16
|
import { ReflectHttpOperationResponseAnalyzer } from "./ReflectHttpOperationResponseAnalyzer";
|
|
16
17
|
import { ReflectMetadataAnalyzer } from "./ReflectMetadataAnalyzer";
|
|
@@ -91,7 +92,14 @@ export namespace ReflectHttpOperationAnalyzer {
|
|
|
91
92
|
parameters,
|
|
92
93
|
success,
|
|
93
94
|
security: ReflectMetadataAnalyzer.securities(props.function),
|
|
94
|
-
exceptions: {
|
|
95
|
+
exceptions: ReflectHttpOperationExceptionAnalyzer.analyze({
|
|
96
|
+
controller: props.controller,
|
|
97
|
+
function: props.function,
|
|
98
|
+
functionName: props.name,
|
|
99
|
+
httpMethod: method,
|
|
100
|
+
metadata: props.metadata,
|
|
101
|
+
errors,
|
|
102
|
+
}),
|
|
95
103
|
tags: Reflect.getMetadata("swagger/apiUseTags", props.function) ?? [],
|
|
96
104
|
imports: ImportAnalyzer.unique(
|
|
97
105
|
[
|
|
@@ -99,6 +107,7 @@ export namespace ReflectHttpOperationAnalyzer {
|
|
|
99
107
|
.filter((x) => parameters.some((y) => x.index === y.index))
|
|
100
108
|
.map((x) => x.imports),
|
|
101
109
|
...props.metadata.success.imports,
|
|
110
|
+
...Object.values(props.metadata.exceptions).map((e) => e.imports),
|
|
102
111
|
].flat(),
|
|
103
112
|
),
|
|
104
113
|
description: props.metadata.description,
|