create-request
Version:
A modern, chainable wrapper for fetch with automatic retries, timeouts, comprehensive error handling, and first-class TypeScript support
92 lines (91 loc) • 2.69 kB
TypeScript
import { BaseRequest } from "./BaseRequest.js";
import { BodyRequest } from "./BodyRequest.js";
import { HttpMethod } from "./enums.js";
/**
* HTTP GET request implementation
* Used for retrieving data from an API endpoint.
*
* @example
* const request = new GetRequest('/api/users')
* .withQueryParams({ id: '123' });
* const data = await request.getData();
*/
export declare class GetRequest extends BaseRequest {
protected method: HttpMethod;
constructor(url: string);
}
/**
* HTTP HEAD request implementation
* Similar to GET but returns only headers without a response body.
*
* @example
* const request = new HeadRequest('/api/users/123');
* const response = await request.getResponse();
*/
export declare class HeadRequest extends BaseRequest {
protected method: HttpMethod;
constructor(url: string);
}
/**
* HTTP OPTIONS request implementation
* Used to describe the communication options for the target resource.
*
* @example
* const request = new OptionsRequest('/api/users');
* const response = await request.getResponse();
*/
export declare class OptionsRequest extends BaseRequest {
protected method: HttpMethod;
constructor(url: string);
}
/**
* HTTP DELETE request implementation
* Used to delete a resource on the server.
*
* @example
* const request = new DeleteRequest('/api/users/123');
* await request.getData();
*/
export declare class DeleteRequest extends BaseRequest {
protected method: HttpMethod;
constructor(url: string);
}
/**
* HTTP POST request implementation
* Used to create a new resource or submit data for processing.
*
* @example
* const request = new PostRequest('/api/users')
* .withBody({ name: 'John', email: 'john@example.com' });
* const data = await request.getData();
*/
export declare class PostRequest extends BodyRequest {
protected method: HttpMethod;
constructor(url: string);
}
/**
* HTTP PUT request implementation
* Used to replace or update an existing resource.
*
* @example
* const request = new PutRequest('/api/users/123')
* .withBody({ id: '123', name: 'John', email: 'john@example.com' });
* const data = await request.getData();
*/
export declare class PutRequest extends BodyRequest {
protected method: HttpMethod;
constructor(url: string);
}
/**
* HTTP PATCH request implementation
* Used to apply partial modifications to a resource.
*
* @example
* const request = new PatchRequest('/api/users/123')
* .withBody({ email: 'new.email@example.com' });
* const data = await request.getData();
*/
export declare class PatchRequest extends BodyRequest {
protected method: HttpMethod;
constructor(url: string);
}