UNPKG

fdy-scraping

Version:

`fdy-scraping` is a versatile HTTP client designed for making API requests with support for proxy configuration, debugging, and detailed error handling. It utilizes the [`got-scraping`](https://github.com/apify/got-scraping) library for HTTP operations.

181 lines (164 loc) 5.11 kB
// index.d.ts import { gotScraping, ExtendedOptionsOfTextResponseBody } from "got-scraping"; declare module "fdyFetchClient" { /** * Function that initializes and returns the gotScraping instance. * @returns {Promise<gotScraping>} */ export function fdyHttpClient(): Promise<gotScraping>; /** * Custom error class for FdyFetchClient errors. */ export class FdyFetchClientError extends Error { name: string; status: number; response: any; config: { method: string; url: string; headers: { [key: string]: string }; }; constructor(message: string, status: number, response: any, config: object); } /** * Options for the Fetch Client. */ export interface FetchClientOptions { headers?: { [key: string]: string }; proxy?: { ip: string; port: number; protocol: "http" | "https"; username?: string; password?: string; }; baseUrl?: string; } /** * Response structure returned by the request helper. */ export interface FdyResponse { data: object; status: number; headers: object; ok: boolean; url?: string; request: { config: object; headers: { [key: string]: string }; }; } /** * FdyFetchClient class for making API requests. */ export class FdyFetchClient { #debug: boolean; defaults: { headers: { [key: string]: string } }; proxy: FetchClientOptions["proxy"] | null; baseUrl: string | null; constructor(options?: FetchClientOptions, debug?: boolean); /** * Helper method for making HTTP requests. * @param url The request URL. * @param method The HTTP method (GET, POST, PUT, DELETE, etc.). * @param body Optional request body. * @param headers Optional headers for the request. * @param options Optional additional request options. * @returns {Promise<FdyResponse>} */ #requestHelper( url: string, method: "GET" | "POST" | "PUT" | "DELETE" | string, body?: string, headers?: { [key: string]: string }, options?: ExtendedOptionsOfTextResponseBody ): Promise<FdyResponse>; /** * Creates a new instance of the FdyFetchClient. * @param options Client options. * @param debug Enable or disable debugging. */ create(options?: FetchClientOptions, debug?: boolean): FdyFetchClient; /** * Make a generic HTTP request. * @param url The request URL. * @param method The HTTP method (GET, POST, etc.). * @param body Optional request body. * @param headers Optional headers. * @param options Optional additional options. * @returns {Promise<FdyResponse>} */ request( url: string, method: string, body?: string, headers?: { [key: string]: string }, options?: ExtendedOptionsOfTextResponseBody ): Promise<FdyResponse>; /** * Make a GET request. * @param url The request URL. * @param headers Optional headers for the request. * @param options Optional additional options. * @param debug Enable or disable debugging. * @returns {Promise<FdyResponse>} */ get( url: string, headers?: { [key: string]: string }, options?: ExtendedOptionsOfTextResponseBody, debug?: boolean ): Promise<FdyResponse>; /** * Make a POST request. * @param url The request URL. * @param body The request body. * @param headers Optional headers for the request. * @param options Optional additional options. * @param debug Enable or disable debugging. * @returns {Promise<FdyResponse>} */ post( url: string, body?: string, headers?: { [key: string]: string }, options?: ExtendedOptionsOfTextResponseBody, debug?: boolean ): Promise<FdyResponse>; /** * Make a PUT request. * @param url The request URL. * @param body The request body. * @param headers Optional headers for the request. * @param options Optional additional options. * @param debug Enable or disable debugging. * @returns {Promise<FdyResponse>} */ put( url: string, body?: string, headers?: { [key: string]: string }, options?: ExtendedOptionsOfTextResponseBody, debug?: boolean ): Promise<FdyResponse>; /** * Make a DELETE request. * @param url The request URL. * @param headers Optional headers for the request. * @param options Optional additional options. * @param debug Enable or disable debugging. * @returns {Promise<FdyResponse>} */ delete( url: string, headers?: { [key: string]: string }, options?: ExtendedOptionsOfTextResponseBody, debug?: boolean ): Promise<FdyResponse>; } /** * Exported instance of FdyFetchClient. */ const fdy: FdyFetchClient; export default fdy; }