Skip to content

Commit f961714

Browse files
committed
feat: 2.3.0 handle return type from design:returntype
1 parent 63a7619 commit f961714

File tree

4 files changed

+21
-9
lines changed

4 files changed

+21
-9
lines changed

deno.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@danet/swagger",
3-
"version": "2.2.0",
3+
"version": "2.3.0",
44
"exports": {
55
".":"./mod.ts",
66
"./decorators": "./decorators.ts"

deno.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

example/app.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ class HelloController {
133133
@Controller('zod')
134134
class ZodController {
135135
@Post()
136-
posZodSomething(@ZodBody(ZodTodo) todo: ZodTodo): number {
136+
posZodSomething(@ZodBody(ZodTodo) todo: ZodTodo) {
137137
return 1;
138138
}
139139

@@ -156,10 +156,9 @@ class MyController {
156156
}
157157

158158
@ApiOAuth2(['my-permission:all'])
159-
@ReturnedType(Todo)
160159
@Post()
161-
postSomething(@Body() todo: Todo): number {
162-
return 1;
160+
postSomething(@Body() todo: Todo): Todo {
161+
return new Todo();
163162
}
164163

165164
@ApiCookieAuth()
@@ -171,7 +170,7 @@ class MyController {
171170

172171
@BodyType(Todo)
173172
@Put('somethingagain')
174-
putSomething(): Todo {
173+
putSomething() {
175174
return new Todo();
176175
}
177176
}

method-definer.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,19 @@ export class MethodDefiner {
259259
this.Controller.prototype,
260260
this.methodName,
261261
);
262+
if (!returnedValue) {
263+
const returnedType = MetadataHelper.getMetadata<Constructor>(
264+
'design:returntype',
265+
this.Controller.prototype,
266+
this.methodName,
267+
);
268+
if (returnedType) {
269+
returnedValue = {
270+
returnedType,
271+
isArray: false,
272+
};
273+
}
274+
}
262275
if (returnedValue) {
263276
if (isPrimitive(returnedValue.returnedType.name.toLowerCase())) {
264277
if (returnedValue.isArray) {
@@ -298,7 +311,6 @@ export class MethodDefiner {
298311
this.Controller.prototype,
299312
this.methodName
300313
);
301-
console.log('returnedSchema', returnedSchema);
302314
if (returnedSchema) {
303315
const openApiSchema = this.generateZodSchema(returnedSchema.returnedSchema);
304316
if (returnedSchema.isArray) {
@@ -313,6 +325,7 @@ export class MethodDefiner {
313325
'$ref': `#/components/schemas/${openApiSchema.title}`,
314326
}).setDescription('').get();
315327
}
328+
return;
316329
}
317330

318331
return null;

0 commit comments

Comments
 (0)