UNPKG

@adamtools/apifinder

Version:

Finds all api endpoints of any nextjs project and adds them into README.md , makes api documentation easier

86 lines (59 loc) 2.9 kB
# ApiFinder Automatically discover and document Next.js API endpoints by analyzing your project's file structure. ApiFinder scans your Next.js project for API routes in both Pages Router and App Router patterns, extracts HTTP methods, and generates beautiful documentation. ## CLI Usage ```bash # Analyze current directory and update README.md apifinder # Analyze specific project path apifinder --path /path/to/your/nextjs-project # Output to custom file apifinder --output API_DOCS.md # Preview without updating files apifinder --dry-run # Get JSON output apifinder --json ``` ## Programmatic Usage ```javascript const { ApiFinder } = require('apifinder'); async function analyzeProject() { const analyzer = new ApiFinder('./my-nextjs-project'); const endpoints = await analyzer.analyze(); console.log('Found endpoints:', endpoints); // Generate markdown table const markdownTable = analyzer.generateMarkdownTable(); console.log(markdownTable); // Update README.md await analyzer.updateReadme(); } analyzeProject(); ``` ## Supported Patterns ### Pages Router - pages/api/users.js → /api/users - pages/api/users/[id].js → /api/users/:id - pages/api/posts/[...slug].js → /api/posts/*slug - src/pages/api/auth/login.js → /api/auth/login ### App Router - app/api/users/route.js → /api/users - app/api/users/[id]/route.js → /api/users/:id - app/api/posts/[...slug]/route.js → /api/posts/*slug - src/app/api/auth/login/route.js → /api/auth/login ## Output Example ApiFinder generates a table like this in your README: | **Route** | **Methods** | **File** | **Type** | |----------------------|------------------|------------------------------------------|----------------| | `/api/auth/login` | POST | `pages/api/auth/login.js` | Pages Router | | `/api/users` | GET, POST | `app/api/users/route.js` | App Router | | `/api/users/:id` | GET, PUT, DELETE | `app/api/users/[id]/route.js` | App Router | | `/api/posts/*slug` | GET | `pages/api/posts/[...slug].js` | Pages Router | --- ## Configuration ### CLI Options | **Option** | **Description** | **Default** | |------------------------|--------------------------------------------------|----------------| | `-p, --path <path>` | Path to Next.js project | Current directory | | `-o, --output <file>` | Output README file | `README.md` | | `--dry-run` | Show endpoints without updating README | `false` | | `--json` | Output endpoints as JSON | `false` |