@nestia/sdk 2.0.0-dev.20230831-5 → 2.0.0-dev.20230901
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/utils/NestiaSimulator.ts +1 -23
- package/lib/NestiaSdkApplication.js +1 -1
- package/lib/NestiaSdkApplication.js.map +1 -1
- package/lib/analyses/ControllerAnalyzer.js +11 -5
- package/lib/analyses/ControllerAnalyzer.js.map +1 -1
- package/lib/analyses/ExceptionAnalyzer.js +7 -2
- package/lib/analyses/ExceptionAnalyzer.js.map +1 -1
- package/lib/analyses/ImportAnalyzer.js +1 -1
- package/lib/analyses/ImportAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectAnalyzer.js +0 -10
- package/lib/analyses/ReflectAnalyzer.js.map +1 -1
- package/lib/executable/internal/NestiaSdkConfig.js +37 -46
- package/lib/executable/internal/NestiaSdkConfig.js.map +1 -1
- package/lib/generates/SwaggerGenerator.d.ts +10 -0
- package/lib/generates/SwaggerGenerator.js +29 -497
- package/lib/generates/SwaggerGenerator.js.map +1 -1
- package/lib/generates/internal/E2eFileProgrammer.js +5 -44
- package/lib/generates/internal/E2eFileProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkFunctionProgrammer.js +12 -10
- package/lib/generates/internal/SdkFunctionProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkSimulationProgrammer.js +4 -4
- package/lib/generates/internal/SdkSimulationProgrammer.js.map +1 -1
- package/lib/generates/internal/SwaggerSchemaGenerator.d.ts +19 -0
- package/lib/generates/internal/SwaggerSchemaGenerator.js +301 -0
- package/lib/generates/internal/SwaggerSchemaGenerator.js.map +1 -0
- package/lib/generates/internal/SwaggerSchemaValidator.d.ts +7 -0
- package/lib/generates/internal/SwaggerSchemaValidator.js +200 -0
- package/lib/generates/internal/SwaggerSchemaValidator.js.map +1 -0
- package/lib/structures/IController.d.ts +0 -4
- package/lib/structures/IRoute.d.ts +6 -3
- package/lib/structures/ISwaggerError.d.ts +6 -0
- package/lib/structures/ISwaggerError.js +3 -0
- package/lib/structures/ISwaggerError.js.map +1 -0
- package/lib/structures/ISwaggerRoute.d.ts +2 -1
- package/lib/structures/ISwaggerSchemaTuple.d.ts +6 -0
- package/lib/structures/ISwaggerSchemaTuple.js +3 -0
- package/lib/structures/ISwaggerSchemaTuple.js.map +1 -0
- package/lib/structures/ITypeTuple.d.ts +1 -1
- package/package.json +5 -5
- package/src/NestiaSdkApplication.ts +1 -1
- package/src/analyses/ControllerAnalyzer.ts +13 -4
- package/src/analyses/ExceptionAnalyzer.ts +3 -2
- package/src/analyses/ImportAnalyzer.ts +1 -1
- package/src/analyses/ReflectAnalyzer.ts +0 -10
- package/src/generates/SwaggerGenerator.ts +86 -478
- package/src/generates/internal/E2eFileProgrammer.ts +7 -49
- package/src/generates/internal/SdkFunctionProgrammer.ts +13 -11
- package/src/generates/internal/SdkSimulationProgrammer.ts +5 -5
- package/src/generates/internal/SwaggerSchemaGenerator.ts +433 -0
- package/src/generates/internal/SwaggerSchemaValidator.ts +222 -0
- package/src/structures/IController.ts +0 -4
- package/src/structures/IRoute.ts +6 -3
- package/src/structures/ISwaggerError.ts +8 -0
- package/src/structures/ISwaggerRoute.ts +2 -1
- package/src/structures/ISwaggerSchemaTuple.ts +7 -0
- package/src/structures/ITypeTuple.ts +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestia/sdk",
|
|
3
|
-
"version": "2.0.0-dev.
|
|
3
|
+
"version": "2.0.0-dev.20230901",
|
|
4
4
|
"description": "Nestia SDK and Swagger generator",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
},
|
|
36
36
|
"homepage": "https://nestia.io",
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@nestia/fetcher": "^2.0.0-dev.
|
|
38
|
+
"@nestia/fetcher": "^2.0.0-dev.20230901",
|
|
39
39
|
"cli": "^1.0.1",
|
|
40
40
|
"glob": "^7.2.0",
|
|
41
41
|
"path-to-regexp": "^6.2.1",
|
|
@@ -44,16 +44,16 @@
|
|
|
44
44
|
"tsconfck": "^2.0.1",
|
|
45
45
|
"tsconfig-paths": "^4.1.1",
|
|
46
46
|
"tstl": "^2.5.13",
|
|
47
|
-
"typia": "^
|
|
47
|
+
"typia": "^5.0.1"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
|
-
"@nestia/fetcher": ">=2.0.0-dev.
|
|
50
|
+
"@nestia/fetcher": ">=2.0.0-dev.20230901",
|
|
51
51
|
"@nestjs/common": ">=7.0.1",
|
|
52
52
|
"@nestjs/core": ">=7.0.1",
|
|
53
53
|
"reflect-metadata": ">=0.1.12",
|
|
54
54
|
"ts-node": ">=10.6.0",
|
|
55
55
|
"typescript": ">=4.8.0",
|
|
56
|
-
"typia": ">=
|
|
56
|
+
"typia": ">=5.0.1 <6.0.0"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@nestjs/common": ">= 7.0.1",
|
|
@@ -287,7 +287,7 @@ const title = (str: string): void => {
|
|
|
287
287
|
};
|
|
288
288
|
|
|
289
289
|
const is_implicit_return_typed = (route: IRoute): boolean => {
|
|
290
|
-
const name: string = route.output.
|
|
290
|
+
const name: string = route.output.typeName;
|
|
291
291
|
if (name === "void") return false;
|
|
292
292
|
else if (name.indexOf("readonly [") !== -1) return true;
|
|
293
293
|
|
|
@@ -133,8 +133,8 @@ export namespace ControllerAnalyzer {
|
|
|
133
133
|
);
|
|
134
134
|
else if (
|
|
135
135
|
func.method === "HEAD" &&
|
|
136
|
-
outputType.
|
|
137
|
-
outputType.
|
|
136
|
+
outputType.typeName !== "void" &&
|
|
137
|
+
outputType.typeName !== "undefined"
|
|
138
138
|
)
|
|
139
139
|
throw new Error(
|
|
140
140
|
`Error on ControllerAnalyzer.analyze(): HEAD method must return void type - ${controller.name}.${func.name}().`,
|
|
@@ -170,7 +170,11 @@ export namespace ControllerAnalyzer {
|
|
|
170
170
|
const common: Omit<IRoute, "path" | "accessors"> = {
|
|
171
171
|
...func,
|
|
172
172
|
parameters,
|
|
173
|
-
output: {
|
|
173
|
+
output: {
|
|
174
|
+
type: outputType.type,
|
|
175
|
+
typeName: outputType.typeName,
|
|
176
|
+
contentType: func.contentType,
|
|
177
|
+
},
|
|
174
178
|
imports,
|
|
175
179
|
status: func.status,
|
|
176
180
|
|
|
@@ -185,6 +189,10 @@ export namespace ControllerAnalyzer {
|
|
|
185
189
|
}:${character + 1}`;
|
|
186
190
|
})(),
|
|
187
191
|
description: CommentFactory.description(symbol),
|
|
192
|
+
operationId: tags
|
|
193
|
+
.find(({ name }) => name === "operation")
|
|
194
|
+
?.text!?.[0].text.split(" ")[0]
|
|
195
|
+
.trim(),
|
|
188
196
|
tags,
|
|
189
197
|
setHeaders: tags
|
|
190
198
|
.filter(
|
|
@@ -297,7 +305,8 @@ export namespace ControllerAnalyzer {
|
|
|
297
305
|
...param,
|
|
298
306
|
name,
|
|
299
307
|
optional,
|
|
300
|
-
type: tuple,
|
|
308
|
+
type: tuple.type,
|
|
309
|
+
typeName: tuple.typeName,
|
|
301
310
|
};
|
|
302
311
|
}
|
|
303
312
|
}
|
|
@@ -80,11 +80,12 @@ export namespace ExceptionAnalyzer {
|
|
|
80
80
|
const matched: IController.IException[] = Object.entries(
|
|
81
81
|
func.exceptions,
|
|
82
82
|
)
|
|
83
|
-
.filter(([_key, value]) => value.type === tuple.
|
|
83
|
+
.filter(([_key, value]) => value.type === tuple.typeName)
|
|
84
84
|
.map(([_key, value]) => value);
|
|
85
85
|
for (const m of matched)
|
|
86
86
|
output[m.status] = {
|
|
87
|
-
|
|
87
|
+
type: tuple.type,
|
|
88
|
+
typeName: tuple.typeName,
|
|
88
89
|
contentType: "application/json",
|
|
89
90
|
description: m.description,
|
|
90
91
|
};
|
|
@@ -328,16 +328,6 @@ export namespace ReflectAnalyzer {
|
|
|
328
328
|
name: param.name,
|
|
329
329
|
index: param.index,
|
|
330
330
|
field: param.data,
|
|
331
|
-
meta: (() => {
|
|
332
|
-
const type = (param.factory as any).type;
|
|
333
|
-
const nullable = (param.factory as any).nullable;
|
|
334
|
-
if (type !== undefined && nullable !== undefined)
|
|
335
|
-
return {
|
|
336
|
-
type,
|
|
337
|
-
nullable,
|
|
338
|
-
};
|
|
339
|
-
return undefined;
|
|
340
|
-
})(),
|
|
341
331
|
};
|
|
342
332
|
else if (param.factory.name === "TypedQuery")
|
|
343
333
|
return {
|