openalex-client
Version:
TypeScript SDK for OpenAlex academic database API
28 lines • 1.02 kB
TypeScript
import { OpenAlexConfig } from "./types";
export interface FetchResponse<T> {
data: T;
status: number;
statusText: string;
headers: Headers;
}
export declare class OpenAlexClient {
private config;
private abortController?;
constructor(config?: OpenAlexConfig);
private buildURL;
private makeRequest;
private parseJSON;
private safeParseJSON;
private createHTTPError;
private shouldRetry;
private handleError;
private sleep;
get<T>(endpoint: string, params?: Record<string, any>): Promise<FetchResponse<T>>;
post<T>(endpoint: string, data?: any, params?: Record<string, any>): Promise<FetchResponse<T>>;
put<T>(endpoint: string, data?: any, params?: Record<string, any>): Promise<FetchResponse<T>>;
delete<T>(endpoint: string, params?: Record<string, any>): Promise<FetchResponse<T>>;
updateConfig(newConfig: Partial<OpenAlexConfig>): void;
abort(): void;
getConfig(): Required<OpenAlexConfig>;
}
//# sourceMappingURL=client.d.ts.map