api-client-ts
v1.1.2
Published
TypeScript HTTP API client for browser apps (fetch, auth, timeouts)
Maintainers
Readme
api-client-ts
TypeScript HTTP client for browser apps: configurable fetch wrapper with auth headers, timeouts, uploads, and optional toasts.
Install
npm install api-client-tsUsage
import { createApi, createFetchApi } from "api-client-ts";
const api = createApi({
baseUrl: "https://api.example.com/v1",
getToken: () => localStorage.getItem("token"),
getCsrfToken: () =>
document.querySelector('meta[name="csrf-token"]')?.getAttribute("content"),
getLang: () => "ar",
credentials: "include",
retry: 2,
});
const { data, isError } = await api.get<User[]>("/users", {
dedupe: true,
signal: abortController.signal,
validate: (raw) => {
if (!Array.isArray(raw)) throw new Error("Invalid shape");
return raw;
},
});
const fetchApi = createFetchApi("https://api.example.com/v1");
const res = await fetchApi<User[]>("/users", { token: "..." });License
MIT
