@yigityalim/next-router-client
v1.0.1
Published
TypeScript client generator from OpenAPI spec for @yigityalim/next-router
Maintainers
Readme
@yigityalim/next-router-client
TypeScript client code generator from OpenAPI specifications for @yigityalim/next-router.
Installation
npm install @yigityalim/next-router-client
# or
pnpm add @yigityalim/next-router-client
# or
yarn add @yigityalim/next-router-clientSetup
Add path mapping to your tsconfig.json:
{
"compilerOptions": {
"paths": {
"myy/*": ["./.myy/route-handlers/*"]
}
}
}This allows clean imports like import { useGetUsers } from 'myy/hooks' instead of relative paths.
Usage
CLI (Recommended)
Use via @yigityalim/next-router-cli:
npx @yigityalim/next-router-cli generate-client -i ./openapi.json -o ./.myy/route-handlersProgrammatic API
import { generateClient } from '@yigityalim/next-router-client';
await generateClient({
openApiPath: './api-spec.json',
outputDir: './.myy/route-handlers',
library: 'react-query', // 'react-query' | 'swr' | 'vanilla'
baseUrl: '/api/v1'
});Features
- Multiple Libraries: Generate clients for React Query, SWR, or vanilla fetchers
- Type-Safe: Full TypeScript support with generated types from OpenAPI spec
- Customizable: Configure base URL, output directory, and more
- OpenAPI 3.x: Full support for OpenAPI 3.0 and 3.1 specifications
Generated Code
React Query Example
import { useGetUsers, useCreateUser } from 'myy/hooks';
function Users() {
const { data, isLoading } = useGetUsers();
const createMutation = useCreateUser();
// ...
}SWR Example
import { useGetUsers, useCreateUser } from 'myy/hooks';
function Users() {
const { data, error } = useGetUsers();
const { trigger } = useCreateUser();
// ...
}Vanilla Example
import { getUsers, createUser } from 'myy/fetchers';
const users = await getUsers();
const newUser = await createUser({ name: 'John' });API
generateClient(options)
Generate TypeScript client code from OpenAPI spec.
Options:
openApiPath(string, required) - Path to OpenAPI JSON/YAML fileoutputDir(string, required) - Output directory for generated codelibrary(string, optional) - Client library:'react-query'|'swr'|'vanilla'(default:'react-query')baseUrl(string, optional) - Base URL for API requests (default:'/api')
Related Packages
- @yigityalim/next-router - Type-safe Next.js API route handler
- @yigityalim/next-router-cli - CLI tools for route management
License
MIT © yigityalim
