Skip to content

Commit

Permalink
Added support for generic types.
Browse files Browse the repository at this point in the history
  • Loading branch information
neogeek committed Sep 5, 2022
1 parent bc4f871 commit 8a32841
Showing 1 changed file with 16 additions and 1 deletion.
17 changes: 16 additions & 1 deletion lib/dox.js
Expand Up @@ -406,7 +406,7 @@ exports.parseTagTypes = function(str, tag) {
}
return [];
}
var {parse, publish, createDefaultPublisher, NodeType} = require('jsdoctypeparser');
var {parse, publish, createDefaultPublisher, NodeType, SyntaxType} = require('jsdoctypeparser');
var result = parse(str.substring(1, str.length - 1));

var customPublisher = Object.assign({}, createDefaultPublisher(), {
Expand All @@ -433,6 +433,21 @@ exports.parseTagTypes = function(str, tag) {
obj[entry.key] = transform(entry.value);
return obj;
}, {})];
} else if (type && type.type === NodeType.GENERIC) {
if (type.meta.syntax === SyntaxType.GenericTypeSyntax.ANGLE_BRACKET) {
return [type.subject.name + '<' + transform(type.objects[0]).join('|') + '>'];
} else if (type.meta.syntax === SyntaxType.GenericTypeSyntax.ANGLE_BRACKET_WITH_DOT) {
return [type.subject.name + '.<' + transform(type.objects[0]).join('|') + '>'];
} else if (type.meta.syntax === SyntaxType.GenericTypeSyntax.SQUARE_BRACKET) {
return [type.subject.name + '[' + transform(type.objects[0]).join('|') + ']'];
} else if (type.meta.syntax === SyntaxType.VariadicTypeSyntax.PREFIX_DOTS) {
return [`...${type.subject.name}`];
} else if (type.meta.syntax === SyntaxType.VariadicTypeSyntax.SUFFIX_DOTS) {
return [`${type.subject.name}...`];
} else if (type.meta.syntax === SyntaxType.VariadicTypeSyntax.ONLY_DOTS) {
return ['...'];
}
return [type.subject.name]
} else if (type && type.value) {
return transform(type.value);
} else {
Expand Down

0 comments on commit 8a32841

Please sign in to comment.