UXL Fetch Client
Build Status | Statements | Branches | Functions | Lines |
---|
| | | | |
Installation
npm i @uxland/fetch-client
Usage
Configuration
Set Base URL
All relative fetch will use provided url as its own base URL. If using absolute uri when fetching, this will not be taken into account.
import { setBaseUrl } from '@uxland/fetch-client';
setBaseUrl('http://localhost');
Register response handlers
Register a response handler to manipulate result.
import { registerResponseHandler } from '@uxland/fetch-client';
registerResponseHandler((response) => JSON.stringify(response));
Change fetch client configuration
Change configuration globally. All fetch requests will use this configuration.
import { configure } from '@uxland/fetch-client';
configure({mode: 'no-cors',{ headers: {authorization: 'Bearer <token>' }}});
Change headers globally. All fetch requests will use specified headers.
import { setHeaders } from '@uxland/fetch-client';
setHeaders({ authorization: 'Bearer <token>' });
Remove a header from global headers using provided id.
import { removeHeader } from '@uxland/fetch-client';
removeHeader('authorization');
Reset global headers to default.
import { resetHeaders } from '@uxland/fetch-client';
resetHeaders();
Fetch data
import { doFetch } from '@uxland/fetch-client';
const response = doFetch('/dummy', { mode: 'no-cors' }, { foo: 'bar' })
.then((r) => r)
.catch((e) => e);
In addition, fetchClient also publishes (via @uxland/event-aggregator
) two events INVALID_CREDENTIALS_EVENT and INVALID_REQUEST_EVENT when credentials are invalid or request has failed.