Creates a new Fetchios instance with optional configuration.
Parameters:
config(optional): Configuration object
Returns: Fetchios<ErrorType> instance
Example:
import Fetchios from '@team-splab/fetchios';
const api = Fetchios.create({
baseUrl: 'https://api.example.com',
withCredentials: true,
});interface FetchiosConfig<ERR> {
baseUrl?: string | URL;
withCredentials?: boolean;
interceptors?: {
request?: RequestInterceptor;
response?: ResponseInterceptor;
};
useDefaultOptions?: boolean;
defaultErrorResponseBody?: ERR;
}- Type:
string | URL - Default:
undefined - Description: Base URL for all requests
- Type:
boolean - Default:
false - Description: Include credentials in requests
- Type:
{ request?: RequestInterceptor; response?: ResponseInterceptor; } - Default:
undefined - Description: Request and response interceptors
- Type:
boolean - Default:
false - Description: Enable default options (required for using
defaultsproperty)
- Type:
ERR - Default:
undefined - Description: Default error response body for failed requests
Performs a GET request.
Parameters:
url: Request URLconfig(optional): Request configuration
Returns: Promise<JsonResponse<T>>
Performs a POST request.
Parameters:
url: Request URLdata(optional): Request body dataconfig(optional): Request configuration
Returns: Promise<JsonResponse<T>>
Performs a PUT request.
Performs a PATCH request.
Performs a DELETE request.
Performs a HEAD request.
Performs an OPTIONS request.
Generic request method.
Creates a customized fetch function with additional features.
Parameters:
options(optional): Configuration options
Returns: Custom fetch function
Example:
import { extendFetch } from '@team-splab/fetchios';
const customFetch = extendFetch({
baseUrl: 'https://api.example.com',
headers: {
'Content-Type': 'application/json',
},
});
const response = await customFetch('/users');Built-in request interceptor for logging.
Type: RequestInterceptor
Example:
import { logRequestInterceptor } from '@team-splab/fetchios';
const api = Fetchios.create({
interceptors: {
request: logRequestInterceptor,
},
});Built-in response interceptor for logging.
Type: ResponseInterceptor
type RequestInterceptor = (requestArgs: FetchArgs) => Promise<FetchArgs>;type ResponseInterceptor = (
response: ResponseGenericBody<unknown>,
requestArgs: FetchArgs
) => Promise<ResponseGenericBody<unknown>>;type JsonResponse<T> = T extends object ? ResponseGenericBody<T> : ResponseGenericBody<string>;class FetchError<T> extends Error {
constructor(public response: JsonResponse<T>);
}