docs.ts
5 documented symbols. Read the signatures first, then expand each item for parameters, return types, and examples.
Reference
moduledocsSource Documentation Extraction and Generation This module provides comprehensive tools for extracting JSDoc/TSDoc comm…
Source Documentation Extraction and Generation
This module provides comprehensive tools for extracting JSDoc/TSDoc comments from TypeScript/JavaScript source files and automatically generating Markdown documentation.
Features
- Automatic Extraction: Parses JSDoc comments from functions, classes, interfaces, and types
- Flexible Filtering: Include/exclude patterns for selective documentation
- Markdown Generation: Converts extracted docs to organized Markdown files
- Navigation Generation: Auto-generates sidebar navigation metadata
- GitHub Links: Includes clickable links to source code on GitHub
Supported JSDoc Tags
@param {type} name - description- Function parameter documentation@returns {type} description- Return value documentation@example- Code examples (multi-line blocks)@private- Mark item as private (excluded from docs if private=false)@default value- Default parameter value- Custom tags are preserved in the
tagsfield
Usage Flow
- Call
extractDocs()to parse source files - Call
generateMarkdown()to create Markdown content - Call
writeDocs()to write files to output directory - Generated nav.ts can be imported for sidebar navigation
Examples
import { extractDocs, generateMarkdown, writeDocs } from './docs';
const docsOptions = {
enabled: true,
src: ['./src'],
out: './docs/api',
include: ['/*.ts'],
exclude: ['/*.test.ts'],
groupBy: 'file',
githubUrl: 'https://github.com/user/project',
};
fnextractDocs(srcDirs: string[], options: ResolvedDocsOptions): Promise<ExtractedDocs[]>Extracts JSDoc documentation from source files in specified directories. This f…
Extracts JSDoc documentation from source files in specified directories.
This function recursively searches directories for source files matching the include/exclude patterns, then extracts all documented items (functions, classes, interfaces, types) from those files.
Process
- File Discovery: Recursively walks directories, applying filters
- File Reading: Loads each matching file's content
- JSDoc Extraction: Parses JSDoc comments using the native parser
- Declaration Matching: Pairs JSDoc comments with source declarations
- Result Collection: Aggregates extracted documentation by file
Include/Exclude Patterns
Patterns support:
**- Match any directory structure*- Match any filename- Standard glob patterns (e.g.,
**\/*.test.ts)
Performance Considerations
- Uses filesystem I/O which can be slow for large codebases
- Consider using more specific include patterns to reduce file scanning
- Results are not cached; call once per build/dev session
Signature
export async function extractDocs(srcDirs: string[], options: ResolvedDocsOptions): Promise<ExtractedDocs[]>
Parameters
-
srcDirsstring[]Array of source directory paths to scan
-
optionsResolvedDocsOptionsDocumentation extraction options (filters, grouping, etc.)
Returns
Promise<ExtractedDocs[]>
Promise resolving to array of extracted documentation by file.
Each ExtractedDocs object contains file path and array of DocEntry items.
Examples
const docs = await extractDocs(
['./packages/vite-plugin/src'],
{
enabled: true,
src: [],
out: 'docs',
include: ['**\/*.ts'],
exclude: ['**\/*.test.ts', '**\/*.spec.ts'],
format: 'markdown',
private: false,
toc: true,
groupBy: 'file',
generateNav: true,
}
);
fngenerateMarkdown(docs: ExtractedDocs[], options: ResolvedDocsOptions): Record<string, string>Generates Markdown documentation from extracted docs.
Generates Markdown documentation from extracted docs.
Signature
export function generateMarkdown(docs: ExtractedDocs[], options: ResolvedDocsOptions): Record<string, string>
Parameters
-
docsExtractedDocs[] -
optionsResolvedDocsOptions
Returns
Record<string, string>
fnresolveDocsOptions(options: false): falseResolves docs options with defaults.
Resolves docs options with defaults.
Signature
export function resolveDocsOptions(options: false): false
Parameters
-
optionsfalse
Returns
false
fnwriteDocs(docs: Record<string, string>, outDir: string, extractedDocs?: ExtractedDocs[], options?: ResolvedDocsOptions): Promise<void>Writes generated documentation to the output directory.
Writes generated documentation to the output directory.
Signature
export async function writeDocs(docs: Record<string, string>, outDir: string, extractedDocs?: ExtractedDocs[], options?: ResolvedDocsOptions): Promise<void>
Parameters
-
docsRecord<string, string> -
outDirstring -
extractedDocsExtractedDocs[]optional
-
optionsResolvedDocsOptionsoptional
Returns
Promise<void>