@straw-hat/fetcher
Version:
Simple HTTP Client
26 lines • 794 B
JavaScript
import { compose } from './middleware.js';
import { asNativeRequest } from './request.js';
function dispatcher(client = fetch) {
return (request) => client(asNativeRequest(request));
}
function withDefaults(request) {
return {
context: {},
credentials: 'same-origin',
headers: new Headers(),
mode: 'same-origin',
...request,
};
}
export function fetcher(opts = {}) {
const dispatchRequest = dispatcher(opts.fetch);
const dispatch = opts.middleware ? opts.middleware(dispatchRequest) : dispatchRequest;
const executeRequest = compose(dispatch, withDefaults);
return (path, options = {}) => {
return executeRequest({
...options,
url: path,
});
};
}
//# sourceMappingURL=fetcher.js.map