#!/usr/bin/env node
/**
* API Documentation Generation Script
* Automatically generates comprehensive documentation for all MCP tools
*/
import { DocumentationGenerator } from "../dist/docs/DocumentationGenerator.js";
import path from "path";
import { fileURLToPath } from "url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
async function generateDocumentation() {
console.log("π WordPress MCP Server - Documentation Generator");
console.log("==============================================");
try {
// Initialize documentation generator
const generator = new DocumentationGenerator({
outputDir: path.join(__dirname, "..", "docs", "api"),
includeExamples: true,
includeWordPressMapping: true,
generateOpenAPI: true,
generateInteractiveHtml: false, // Disable for now
validateExamples: false,
});
console.log("π Analyzing codebase and extracting tool documentation...");
// Generate full documentation
const startTime = Date.now();
const output = await generator.generateFullDocumentation();
const endTime = Date.now();
// Display results
console.log("\nβ
Documentation generation completed successfully!");
console.log("================================================");
console.log(`π Output directory: docs/api/`);
console.log(`β±οΈ Generation time: ${endTime - startTime}ms`);
console.log("\nπ Documentation Summary:");
console.log(` π§ Tools documented: ${output.summary.totalTools}`);
console.log(` π Categories: ${output.summary.totalCategories}`);
console.log(` π Type definitions: ${output.summary.totalTypes}`);
console.log(` π Tools with examples: ${output.summary.coverage.toolsWithExamples}`);
console.log(` π WordPress API mappings: ${output.summary.coverage.toolsWithWordPressMapping}`);
console.log("\nπ Generated Files:");
console.log(" π docs/api/README.md - Main API documentation");
console.log(" π§ docs/api/tools/ - Individual tool documentation");
console.log(" π docs/api/categories/ - Category documentation");
console.log(" π docs/api/types/ - Type documentation");
console.log(" π docs/api/openapi.json - OpenAPI specification");
console.log(" π docs/api/summary.json - Documentation summary");
console.log("\nπ― Next Steps:");
console.log(" 1. Review generated documentation in docs/api/");
console.log(" 2. Commit documentation files to version control");
console.log(" 3. Set up automated regeneration on code changes");
console.log(" 4. Consider hosting interactive documentation");
console.log("\nπ API documentation is now ready for use!");
} catch (error) {
console.error("β Documentation generation failed:", error);
process.exit(1);
}
}
// Run the script
generateDocumentation().catch((error) => {
console.error("π₯ Fatal error:", error);
process.exit(1);
});