Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add JSDoc #2739

Open
2 tasks done
QuentinLemCode opened this issue Apr 24, 2024 · 8 comments
Open
2 tasks done

Add JSDoc #2739

QuentinLemCode opened this issue Apr 24, 2024 · 8 comments
Labels

Comments

@QuentinLemCode
Copy link

QuentinLemCode commented Apr 24, 2024

Please avoid duplicates

Context

When using Nock, most of the functions don't have JSDoc.
It would improve the developer experience, as it would allow one to understand how to use a function directly in the IDE without having to search for the nock documentation.

Example in VSCode :
image

With JSDoc it would give something like that :
image

Of course, the JSDoc should be replicated in Typescript types.

Alternatives

No response

If the feature request is accepted, would you be willing to submit a PR?

  • yes
@Uzlopak
Copy link
Member

Uzlopak commented Apr 24, 2024

I am not against JSDoc, i personally prefer it. But I dont know the opinion of the other maintainers.

@mikicho
Copy link
Contributor

mikicho commented Apr 24, 2024

I'm not sure this is the best option for documentation, but I see your point.
p.s: I'm using JSDoc as well for types.

@QuentinLemCode
Copy link
Author

Yes, the idea is not to replace the current documentation, but add some in JSDoc to improve developer experience

@mikicho
Copy link
Contributor

mikicho commented Apr 26, 2024

@QuentinLemCode how can we make sure the jsdoc and readme are updated and one of them not left behind?

@QuentinLemCode
Copy link
Author

@QuentinLemCode how can we make sure the jsdoc and readme are updated and one of them not left behind?

@mikicho The most obvious would be to add the rule to the contributing guideline and PR template.

If you think we need to enforce it with a CI test for example, maybe we can rework the Readme to have a structure we can reuse to generate JSDoc or inversely.

Do you have suggestions?

@mikicho
Copy link
Contributor

mikicho commented Apr 26, 2024

I haven't used jsdoc for documentation previously, so any solution that establishes a single source of truth is acceptable to me.

@QuentinLemCode
Copy link
Author

QuentinLemCode commented Apr 29, 2024

@mikicho
Sure, I propose to make JSDoc the single source of truth in that case. Because JSDoc is structured, it's easier to generate markdown from JSDoc than the inverse.
This project can help us achieve that : https://github.com/jsdoc2md/jsdoc-to-markdown

Another thing to take in mind is the typescript type definition file. We can use the typescript compiler to generate the type definition from JSDoc : https://www.typescriptlang.org/docs/handbook/declaration-files/dts-from-js.html
A CI build step can be added for that.

Is that all right with you?

@gr2m
Copy link
Member

gr2m commented Apr 29, 2024

A solution I looked for in the past is to have sections in the README wrapped HTML comment tags (e.g. somethin like <!-- jsdoc path/to/file.js#method --> ... <!-- /jsdoc -->) which could then include API specs that are defined in JS Doc. That way we would keep a high level documentation of our README, but could also include docs that live in the code, avoiding duplication. But I was not successful in the past. Maybe you know a solution that could provide that?

But even if that's not possible, I wouldn't mind adding descriptions via JSDocs, I'd just keep them short, and add a link to the README for more)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants