UNPKG

@remcostoeten/fync

Version:

A unified TypeScript library for easy access to popular APIs (GitHub, Spotify, GitLab, etc.)

35 lines 1.81 kB
type THttpRequestOptions = { method?: "GET" | "POST" | "PUT" | "DELETE"; headers?: Record<string, string>; body?: unknown; }; type THttpResponse<T = unknown> = { data: T; status: number; statusText: string; headers: Record<string, string>; }; type TPaginatedResponse<T = unknown> = { data: T[]; hasNext: boolean; nextUrl?: string; totalCount?: number; }; declare function httpRequest<T = unknown>(url: string, query?: Record<string, string | number>, signal?: AbortSignal, extraHeaders?: Record<string, string>): Promise<THttpResponse<T>>; declare function httpRequestWithPagination<T = unknown>(url: string, query?: Record<string, string | number>, signal?: AbortSignal, extraHeaders?: Record<string, string>): Promise<TPaginatedResponse<T>>; type THttpClientConfig = { baseUrl?: string; defaultHeaders?: Record<string, string>; timeout?: number; }; declare function createHttpClient(config?: THttpClientConfig): { get: <T = unknown>(endpoint: string, query?: Record<string, string | number>, signal?: AbortSignal) => Promise<THttpResponse<T>>; getPaginated: <T = unknown>(endpoint: string, query?: Record<string, string | number>, signal?: AbortSignal) => Promise<TPaginatedResponse<T>>; post: <T = unknown>(endpoint: string, data?: unknown) => Promise<THttpResponse<T>>; put: <T = unknown>(endpoint: string, data?: unknown) => Promise<THttpResponse<T>>; patch: <T = unknown>(endpoint: string, data?: unknown) => Promise<THttpResponse<T>>; delete: <T = unknown>(endpoint: string, data?: unknown) => Promise<THttpResponse<T>>; }; export { httpRequest, httpRequestWithPagination, createHttpClient }; export type { THttpResponse, TPaginatedResponse, THttpRequestOptions, THttpClientConfig, }; //# sourceMappingURL=http-client.d.ts.map