@dnemoga/fetcher
v1.3.0
Published
A minimalistic library built around the native Fetch API with zero dependencies.
Maintainers
Readme
@dnemoga/fetcher
A minimalistic library built around the native Fetch API with zero dependencies.
Getting Started
Installation
npm install @dnemoga/fetcherImporting
import { Fetcher } from '@dnemoga/fetcher';Creating Instance
const fetcher = new Fetcher({ /* Fetcher Options */ });Fetcher Options
These options apply to every request outcoming from the current instance.
mode(defaultcors)credentials(defaultsame-origin)cache(defaultdefault)redirect(defaultfollow)referrerPolicy(defaultstrict-origin-when-cross-origin)
Making Request
fetcher.get('/resource', { /* Request Options */ })
.then(console.log, console.error);| Note: Supported methods are get, head, post, put, patch, and delete.
Request Options
data
Any body that you want to add to your request. Note that a request using theGETorHEADmethod cannot have a body.params
Any search parameters you want to add to your request, contained within an object literal with string values.headers
Any headers you want to add to your request, contained within an object literal with string values. Note that some names are forbidden.integrity
Contains the subresource integrity value of the request.keepalive
Thekeepaliveoption can be used to allow the request to outlive the page. Fetch with thekeepaliveflag is a replacement for theNavigator.sendBeacon()API.signal
AnAbortSignalobject instance; allows you to communicate with a fetch request and abort it if required via anAbortController.
Next Steps
Interceptors
onRequest.use()
const customHeaders = async (request) => {
request.headers.set('X-Foo', 'Foo');
request.headers.set('X-Bar', 'Bar');
return request;
};
fetcher.onRequest.use(customHeaders);onRequest.eject()
fetcher.onRequest.eject(customHeaders);onResponse.use()
const errorHandler = async (response) => {
if (!response.ok) {
throw new Error(response.statusText);
}
return response;
};
fetcher.onResponse.use(errorHandler);onResponse.eject()
fetcher.onResponse.eject(errorHandler);Request Timeout
fetcher.get('/resource', {
signal: AbortSignal.timeout(30000)
});