Universal fetch-based, typed HTTP client with error-first ergonomics, retries, caching, SSE, and Standard Schema validation.
Docs: https://wiretyped.io
pnpm add wiretyped
# or: npm install wiretyped
# or: npx jsr add @kasperrt/wiretypedWireTyped is a small, composable HTTP client for fetch-based runtimes (browser, Node, Bun, Deno, workers). You define your API as typed endpoint definitions and call it with a consistent, error-first API.
import { RequestClient, type RequestDefinitions } from 'wiretyped';
import { z } from 'zod';
// Or your standard-schema/spec of choice
const endpoints = {
'/users/{id}': {
get: { response: z.object({ id: z.string(), name: z.string() }) },
},
} satisfies RequestDefinitions;
const client = new RequestClient({
hostname: 'https://api.example.com',
baseUrl: '/api',
endpoints,
validation: true,
});
const [err, user] = await client.get('/users/{id}', { id: '123' });
if (err) {
return err;
}
console.log(user.name);