Skip to content

Commit 62526c7

Browse files
committed
js-client-gen: Add optional class name for improved JSDocs.
1 parent de5fcf0 commit 62526c7

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

stone/target/js_client.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,17 @@
2020
help=('The name to give the single Javascript file that is created and '
2121
'contains all of the routes.'),
2222
)
23+
_cmdline_parser.add_argument(
24+
'-c',
25+
'--class-name',
26+
type=str,
27+
help=('The name of the class the generated functions will be attached to. '
28+
'The name will be added to each function documentation, which makes '
29+
'it available for tools like JSDoc.'),
30+
)
2331

2432
_header = """\
2533
// Auto-generated by Stone, do not modify.
26-
/**
27-
* @class Routes
28-
* @classdesc Contains a corresponding method for each route.
29-
*/
3034
var routes = {};
3135
"""
3236

@@ -59,7 +63,9 @@ def _generate_route(self, route_schema, namespace, route):
5963
self.emit('/**')
6064
if route.doc:
6165
self.emit_wrapped_text(self.process_doc(route.doc, self._docf), prefix=' * ')
62-
self.emit(' * @function Routes#%s' % function_name)
66+
if self.args.class_name:
67+
self.emit(' * @function {}#{}'.format(self.args.class_name,
68+
function_name))
6369
if route.deprecated:
6470
self.emit(' * @deprecated')
6571

0 commit comments

Comments
 (0)