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.79 kB
TypeScript
import { GetRequest, PostRequest, PutRequest, DeleteRequest, PatchRequest, HeadRequest, OptionsRequest } from "./requestMethods.js";
/**
* Create a GET request
* Used for retrieving resources from the server.
*
* @param url - The URL to send the request to
* @returns A new GET request instance
*
* @example
* const request = get('/api/users')
* .withQueryParams({ limit: 10 });
* const users = await request.getData();
*/
export declare function get(url: string): GetRequest;
/**
* Create a POST request
* Used for creating new resources or submitting data.
*
* @param url - The URL to send the request to
* @returns A new POST request instance
*
* @example
* const request = post('/api/users')
* .withBody({ name: 'John', email: 'john@example.com' });
* const newUser = await request.getData();
*/
export declare function post(url: string): PostRequest;
/**
* Create a PUT request
* Used for replacing or updating an existing resource.
*
* @param url - The URL to send the request to
* @returns A new PUT request instance
*
* @example
* const request = put('/api/users/123')
* .withBody({ name: 'John Updated', email: 'john@example.com' });
* const updatedUser = await request.getData();
*/
export declare function put(url: string): PutRequest;
/**
* Create a DELETE request
* Used for removing resources from the server.
*
* @param url - The URL to send the request to
* @returns A new DELETE request instance
*
* @example
* const request = del('/api/users/123');
* await request.getData();
*/
export declare function del(url: string): DeleteRequest;
/**
* Create a PATCH request
* Used for applying partial modifications to a resource.
*
* @param url - The URL to send the request to
* @returns A new PATCH request instance
*
* @example
* const request = patch('/api/users/123')
* .withBody({ status: 'active' });
* const patchedUser = await request.getData();
*/
export declare function patch(url: string): PatchRequest;
/**
* Create a HEAD request
* Similar to GET but returns only headers without a body.
*
* @param url - The URL to send the request to
* @returns A new HEAD request instance
*
* @example
* const request = head('/api/users/123');
* const response = await request.getResponse();
* console.log(response.headers.get('Last-Modified'));
*/
export declare function head(url: string): HeadRequest;
/**
* Create an OPTIONS request
* Used to describe the communication options for a resource.
*
* @param url - The URL to send the request to
* @returns A new OPTIONS request instance
*
* @example
* const request = options('/api/users');
* const response = await request.getResponse();
* console.log(response.headers.get('Allow'));
*/
export declare function options(url: string): OptionsRequest;