protobuf.js icon indicating copy to clipboard operation
protobuf.js copied to clipboard

`pbts` does not generate comments for enum properties

Open thomasttvo opened this issue 1 year ago • 1 comments

Hi! 👋

Firstly, thanks for your work on this project! 🙂

Today I used patch-package to patch [email protected] for the project I'm working on.

I found that pbts copies the comments for class properties just fine but ignore all comments for enum properties

Here is the diff that solved my problem:

diff --git a/node_modules/protobufjs/cli/lib/tsd-jsdoc/publish.js b/node_modules/protobufjs/cli/lib/tsd-jsdoc/publish.js
index 3846a99..a5c576d 100644
--- a/node_modules/protobufjs/cli/lib/tsd-jsdoc/publish.js
+++ b/node_modules/protobufjs/cli/lib/tsd-jsdoc/publish.js
@@ -398,7 +398,10 @@ function writeInterfaceBody(element) {
 }
 
 function writeProperty(property, declare) {
-    writeComment(property.description);
+    // prevent writing useless comment
+    const isGenericComment = property.description.toLowerCase() === `${property.name} value`.toLowerCase()
+    if(!isGenericComment) writeComment(property.description);
+
     if (declare)
         write("let ");
     write(property.name);
@@ -598,6 +601,10 @@ function handleEnum(element) {
         writeln("enum ", element.name, " {");
         ++indent;
         element.properties.forEach(function(property, i) {
+            // add comment to enum property
+            const isGenericComment = property.description.toLowerCase() === `${property.name} value`.toLowerCase()
+            if(!isGenericComment) writeComment(property.description);
+
             write(property.name);
             if (property.defaultvalue !== undefined)
                 write(" = ", JSON.stringify(property.defaultvalue));

This issue body was partially generated by patch-package.

thomasttvo avatar May 10 '24 20:05 thomasttvo

message's notes will not generate as well.How to resolve it

lovelyJason avatar Jan 21 '25 07:01 lovelyJason