2.0.1 • Published 8 months ago
pathgen v2.0.1
██╗ ██╗ ██╗██████╗ ██████╗ ██╗
██║ ██║ ██║██╔══██╗██╔════╝ ██║
██║ ██║ ██║██║ ██║██║ ███╗██║
██║ ██║ ██║██║ ██║██║ ██║██║
███████╗╚██████╔╝██████╔╝╚██████╔╝██║
╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝
Manage your API routes effortlessly with Pathgen CLIEnglish
pathgen Overview
pathgen is a CLI tool for Next.js developers that explores and structures API routes based on existing route.ts files in the src/app/api/ directory, enabling type support and centralized management.
Features
- Explores and structures API routes from
route.tsfiles insrc/app/api/ - Generates TypeScript interfaces and route objects for type safety and autocompletion
- Supports nested routes (e.g.,
/api/admin/products→apiRoutes.routes.admin.routes.products.path) - Lightweight and easy to integrate
Installation
Global Installation
npm install -g pathgenLocal Installation (Recommended)
npm install --save-dev pathgenUsage
Basic Command
npx pathgen- Default directory:
./src/app/api/ - Default output:
./src/lib/apiRoutes.ts
Custom Options
npx pathgen --dir ./custom/app/api --output ./custom/apiRoutes.ts--dir: Directory to explore forroute.tsfiles (default:./src/app/api/)--output: Generated TypeScript file path (default:./src/lib/apiRoutes.ts)
Execution Notes
- Local Install: Use
npx pathgenor add"pathgen": "pathgen"topackage.jsonscripts and runnpm run pathgen. - Global Install: Use
pathgendirectly. - Note: With local install,
pathgenalone won’t work; usenpx.
Example
src/app/api/
├── admin/
│ └── products/
│ └── route.ts
├── users/
│ └── route.ts
└── route.tsAfter npx pathgen:
// src/lib/apiRoutes.ts
interface ApiRoutes {
routes: {
admin: {
routes: {
products: {
path: string;
};
};
};
users: {
path: string;
};
"": {
path: string;
};
};
}
export const apiRoutes: ApiRoutes = {
"routes": {
"admin": {
"routes": {
"products": {
"path": "/api/admin/products"
}
}
},
"users": {
"path": "/api/users"
},
"": {
"path": "/api"
}
}
};Prerequisites
- Node.js (v14 or higher)
- Next.js project with
route.tsfiles insrc/app/api/
Options
| Option | Description | Default Value |
|---|---|---|
-d, --dir | Directory to explore for route.ts files | ./src/app/api/ |
-o, --output | Path to generated routes file | ./src/lib/apiRoutes.ts |
-v, --version | Show version number | - |
-h, --help | Display help information | - |