Skip to content
fossyl

Type-safe REST API framework (v0.18)

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

// Hover any identifier to see its type
import { createRouter<BasePath extends string>(_: BasePath) => Router<BasePath> } from "@fossyl/core";
const routerRouter<"/api"> = createRouter<BasePath extends string>(_: BasePath) => Router<BasePath><"/api">("/api");
const _userRouteRoute = { 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">
.createEndpoint<Path extends `/api${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(({ url{ id: string } & { readonly __kind: "url" } }) => async () => {
const userIdstring = url{ id: string } & { readonly __kind: "url" }.idstring;
return { typeName: "User", id: userIdstring, name: "John Doe" };
});