@stacksjs/dtsx
Version:
A modern, fast .d.ts generation tool, powered by Bun.
98 lines (97 loc) • 2.79 kB
TypeScript
import type { Declaration } from './types';
/**
* Parse JSDoc comments from a declaration
*/
export declare function parseJSDoc(comments: string[] | undefined): JSDocInfo;
/**
* Extract documentation from source files
*/
export declare function extractDocumentation(files: string[], config?: Partial<DocsConfig>): Promise<Documentation>;
/**
* Generate markdown documentation
*/
export declare function generateMarkdown(docs: Documentation, config?: Partial<DocsConfig>): string;
/**
* Generate HTML documentation
*/
export declare function generateHTML(docs: Documentation, config?: Partial<DocsConfig>): string;
/**
* Generate JSON documentation
*/
export declare function generateJSON(docs: Documentation, config?: Partial<DocsConfig>): string;
/**
* Generate documentation in TypeDoc-compatible JSON format
*/
export declare function generateTypeDocJSON(docs: Documentation): string;
/**
* Generate and write documentation files
*/
export declare function generateDocs(files: string[], config: DocsConfig): Promise<void>;
/**
* Create a documentation generator with preset configuration
*/
export declare function createDocsGenerator(config?: Partial<DocsConfig>): {
extract: (files: string[]) => Promise<Documentation>
generateMarkdown: (docs: Documentation) => string
generateHTML: (docs: Documentation) => string
generateJSON: (docs: Documentation) => string
parseJSDoc: typeof parseJSDoc
};
/**
* Documentation configuration
*/
export declare interface DocsConfig {
format: 'markdown' | 'html' | 'json'
outdir: string
includePrivate?: boolean
includeInternal?: boolean
groupByCategory?: boolean
title?: string
description?: string
includeSourceLinks?: boolean
sourceBaseUrl?: string
includeTypes?: boolean
splitByModule?: boolean
template?: 'default' | 'minimal' | 'detailed'
customCss?: string
includeSidebar?: boolean
}
/**
* Parsed JSDoc information
*/
export declare interface JSDocInfo {
description: string
params: Array<{ name: string, type?: string, description: string, optional?: boolean }>
returns?: { type?: string, description: string }
examples: string[]
tags: Record<string, string[]>
deprecated?: string
since?: string
see: string[]
throws: Array<{ type?: string, description: string }>
category?: string
}
/**
* Documentation entry for a declaration
*/
export declare interface DocEntry {
name: string
kind: Declaration['kind']
signature: string
jsdoc: JSDocInfo
isExported: boolean
isDefault?: boolean
sourceFile?: string
sourceLine?: number
members?: DocEntry[]
}
/**
* Documentation output structure
*/
export declare interface Documentation {
title: string
description?: string
entries: DocEntry[]
categories: Map<string, DocEntry[]>
generatedAt: Date
}