JSDoc Builder is a CLI tool for automatically generating JSDoc comments for JavaScript, TypeScript, JSX, TSX, and Vue files. It parses functions and variables to infer parameter types, return types, and descriptions, and then inserts JSDoc comments directly into the source code.
- Automatically generates JSDoc comments for:
- Function declarations
- Arrow functions
- TypeScript types and interfaces
- Supports multiple file formats:
- JavaScript (
.js) - TypeScript (
.ts) - JSX (
.jsx) - TSX (
.tsx) - Vue Single File Components (
.vue)
- JavaScript (
- Infers parameter and return types from TypeScript annotations.
- Outputs clean and structured JSDoc comments.
- Preserves Vue SFC structure (template, script, and style sections).
Install the library globally or locally via npm:
npm install jsdoc-builder -gor
npm install jsdoc-builder --save-devRun the following command to generate JSDoc comments for a file:
jsdoc-builder <file-path>Replace <file-path> with the path to the JavaScript, TypeScript, JSX, TSX, or Vue file you want to process.
function add(a: number, b: number) {
return a + b;
}
const multiply = (a: number, b: number): number => {
return a * b;
};jsdoc-builder example.ts/**
* @description Press Your { Function add } Description
* @param {number} a
* @param {number} b
* @returns {void}
*/
function add(a: number, b: number) {
return a + b;
}
/**
* @description Press Your { Function multiply } Description
* @param {number} a
* @param {number} b
* @returns {number}
*/
const multiply = (a: number, b: number): number => {
return a * b;
};function Component(props) {
return <div>{props.title}</div>;
}
const ArrowComponent = (props) => {
return <div>{props.content}</div>;
};jsdoc-builder example.jsx/**
* @description Press Your { Function Component } Description
* @param {any} props
* @returns {void}
*/
function Component(props) {
return <div>{props.title}</div>;
}
/**
* @description Press Your { Function ArrowComponent } Description
* @param {any} props
* @returns {void}
*/
const ArrowComponent = (props) => {
return <div>{props.content}</div>;
};<template>
<div>{{ message }}</div>
</template>
<script>
function greet(name) {
return `Hello, ${name}`;
}
export default {
name: 'ExampleComponent',
setup() {
return { greet };
}
}
</script>jsdoc-builder example.vue<template>
<div>{{ message }}</div>
</template>
<script>
/**
* @description Press Your { Function greet } Description
* @param {any} name
* @returns {void}
*/
function greet(name) {
return `Hello, ${name}`;
}
export default {
name: 'ExampleComponent',
setup() {
return { greet };
}
}
</script>- Description: Processes the specified file to add JSDoc comments.
- Parameters:
filePath(string): The path to the file to be processed.
- Returns:
void
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature-name. - Commit your changes:
git commit -m 'Add feature-name'. - Push to the branch:
git push origin feature-name. - Submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.