CLI tools for @yigityalim/next-router - route scanning, OpenAPI generation, and scaffolding
npm install @yigityalim/next-router-cli@yigityalim/next-router - route management, validation, and OpenAPI generation.
bash
pnpm add -D @yigityalim/next-router-cli
`
Usage
$3
`bash
JSON format (default)
route-handler generate openapi --output ./openapi.json
YAML format
route-handler generate openapi --output ./openapi.yaml --format yaml
With custom title and version
route-handler generate openapi \
--output ./docs/api.yaml \
--format yaml \
--title "My API" \
--version "2.0.0"
`
Output:
`
βββββββββββββββββββββββββββββββββββββ
β π Generate OpenAPI Specification β
βββββββββββββββββββββββββββββββββββββ
βΈ Scanning
βΉ Discovering route files...
β Found 16 route files
βΈ Parsing
βΉ Extracting route metadata...
β Parsed 38 routes
βΈ Generating
βΉ Creating OpenAPI 3.1 spec (yaml)...
β OpenAPI spec written to: api-spec.yaml
βββ¨ Generation Completeβββββ
β Format: YAML β
β Output: api-spec.yaml β
β Routes: 38 β
β Paths: 13 β
βββββββββββββββββββββββββββββ
`
$3
`bash
Beautiful table (default)
route-handler list
JSON format
route-handler list --format json
CSV format
route-handler list --format csv
Filter by pattern
route-handler list --filter "/api/users/*"
`
Output:
`
ββββββββββββββββββββββ
β π List API Routes β
ββββββββββββββββββββββ
βββββββββββ¬βββββββββββββββββββ¬βββββββββββ¬βββββββββββββ
β Method β Path β Auth β Rate Limit β
βββββββββββΌβββββββββββββββββββΌβββββββββββΌβββββββββββββ€
β GET β /api/users β Required β 100/min β
β POST β /api/users β Required β 10/min β
β GET β /api/users/[id] β Required β 100/min β
β DELETE β /api/users/[id] β Admin β 50/min β
βββββββββββ΄βββββββββββββββββββ΄βββββββββββ΄βββββββββββββ
β Total: 4 routes
`
$3
`bash
Standard validation
route-handler validate
Strict mode (more checks)
route-handler validate --strict
Verbose output
route-handler validate --verbose
`
Output:
`
ββββββββββββββββββββββββββ
β π Validate API Routes β
ββββββββββββββββββββββββββ
βΈ Scanning
βΉ Discovering route files...
β Found 16 route files
βΈ Analyzing
βΉ Extracting and validating metadata...
ββπ Validation Resultsββ
β Routes: 38 β
β Errors: 0 β
β Warnings: 12 β
ββββββββββββββββββββββββββ
βΈ Warnings
β POST /api/users - Missing OpenAPI summary
β POST /api/users - Missing OpenAPI tags
β DELETE /api/users/[id] - Missing body schema
β ... and 9 more warnings
`
$3
`bash
route-handler dev
`
Coming soon - watch mode with auto-validation
Options
$3
- --cwd - Working directory (default: current directory)
- --verbose - Enable verbose logging
$3
- -o, --output - Output file path
- -f, --format - Output format: json or yaml
- -t, --title - API title
- -v, --version - API version
- -s, --servers - Server URLs
$3
- -f, --format - Output format: table, json, or csv
- --filter - Filter routes by glob pattern
$3
- --strict - Enable strict validation mode
How It Works
1. Scans your Next.js App Router structure for route files
2. Parses TypeScript AST to extract RouteBuilder metadata
3. Extracts .openapi(), .schemas(), .auth(), etc.
4. Generates OpenAPI 3.1 spec or validates routes
5. No runtime - pure static analysis!
Examples
$3
`bash
route-handler generate openapi \
--output ./public/api-docs.json \
--title "Production API" \
--version "1.0.0" \
--servers https://api.example.com
`
$3
`bash
route-handler list --format csv > routes.csv
`
$3
`bash
route-handler validate --strict || exit 1
`
Requirements
- Next.js 14+ with App Router
- @yigityalim/next-router` package