Type-Safe Routes
Full TypeScript type inference for routes, parameters, and responses
Type-Safe Routes
Full TypeScript type inference for routes, parameters, and responses
Pure Functional
Validator-library agnostic with simple function types
Query Validation
Optional type-safe query parameter validation
Authentication
Type-safe authentication with custom authentication functions
AI-First
Designed for seamless integration with AI coding assistants
export const getUserRoute = {
path: string
method: RestMethod
steps: Steps[]
handler: Function
authenticator?: AuthenticationFunction<any>
validator?: ValidatorFunction<any>
queryValidator?: ValidatorFunction<any>
urlParamValidator?: ValidatorFunction<any>
paginationConfig?: PaginationConfig
hasTransaction: boolean
} = routerRouter<"/api/users"> .createEndpoint<Path extends `/api/users${string}`>(
path: Path,
) => Endpoint<Path, true>("/api/users/:id") .get<Response extends ResponseData>(
handler: (
parameters: { url: { id: string } & { readonly __kind: "url" } } & {
readonly __kind: "parameters"
},
) => () => Promise<Response>,
) => Route((params{ url: { id: string } & { readonly __kind: "url" } } & {
readonly __kind: "parameters"
}) => async () => { const userUserRow = {
id: number
name: string
email: string
created_at: string
} = await userService.getUserRoute = {
path: string
method: RestMethod
steps: Steps[]
handler: Function
authenticator?: AuthenticationFunction<any>
validator?: ValidatorFunction<any>
queryValidator?: ValidatorFunction<any>
urlParamValidator?: ValidatorFunction<any>
paginationConfig?: PaginationConfig
hasTransaction: boolean
}(Number(params{ url: { id: string } & { readonly __kind: "url" } } & {
readonly __kind: "parameters"
}.url{ id: string } & { readonly __kind: "url" }.idstring)); return { typeName: "User" as const, ...userUserRow = {
id: number
name: string
email: string
created_at: string
} }; });