@@ -49,6 +49,31 @@ const getName = (node, src) => {
49
49
return name
50
50
}
51
51
52
+ /**
53
+ * Fill missing method declaration
54
+ *
55
+ * @param {string } comment
56
+ * @param member
57
+ * @param {string } src
58
+ * @return {string }
59
+ */
60
+ const fillMethodComment = ( comment , member , src ) => {
61
+ if ( ! comment . includes ( '@method' ) ) {
62
+ comment = appendComment ( comment , '@method' )
63
+ }
64
+ if ( ! comment . includes ( '@param' ) ) {
65
+ comment = convertParams ( comment , member , src )
66
+ }
67
+ if ( ts . isArrayTypeNode ( member . type ) ) {
68
+ comment = convertMembers ( comment , member . type , src )
69
+ }
70
+ if ( ! comment . includes ( '@return' ) ) {
71
+ const returnType = getTypeName ( member . type , src )
72
+ comment = appendComment ( comment , `@return {${ returnType } }` )
73
+ }
74
+ return comment
75
+ }
76
+
52
77
/**
53
78
* converts function parameters to @params
54
79
*
@@ -203,7 +228,7 @@ module.exports = function typeConverter(src, filename = 'test.ts') {
203
228
let memberComment = src . substring ( member . jsDoc [ 0 ] . pos , member . jsDoc [ 0 ] . end )
204
229
const modifiers = ( member . modifiers || [ ] ) . map ( m => m . getText ( { text : src } ) )
205
230
modifiers . forEach ( modifier => {
206
- const allowedModifiers = [ 'abstract' , 'private' , 'public' , 'protected' ]
231
+ const allowedModifiers = [ 'async' , ' abstract', 'private' , 'public' , 'protected' ]
207
232
if ( allowedModifiers . includes ( modifier ) ) {
208
233
memberComment = appendComment ( memberComment , `@${ modifier } ` )
209
234
}
@@ -213,10 +238,7 @@ module.exports = function typeConverter(src, filename = 'test.ts') {
213
238
memberComment = appendComment ( memberComment , `@type {${ type } }` )
214
239
}
215
240
if ( member . type && ts . isFunctionLike ( member ) ) {
216
- memberComment = appendComment ( memberComment , '@method' )
217
- memberComment = convertParams ( memberComment , member , src )
218
- memberComment = convertMembers ( memberComment , member . type , src )
219
- memberComment = appendComment ( memberComment , `@return {${ getTypeName ( member . type , src ) } }` )
241
+ memberComment = fillMethodComment ( memberComment , member , src )
220
242
}
221
243
if ( modifiers . find ( ( m => m === 'static' ) ) ) {
222
244
memberComment += '\n' + `${ className } .${ getName ( member , src ) } `
0 commit comments