UNPKG

1.17 kBJavaScriptView Raw
1const { FetchError, Headers, Request, Response } = require('minipass-fetch')
2
3const configureOptions = require('./options.js')
4const fetch = require('./fetch.js')
5
6const makeFetchHappen = (url, opts) => {
7 const options = configureOptions(opts)
8
9 const request = new Request(url, options)
10 return fetch(request, options)
11}
12
13makeFetchHappen.defaults = (defaultUrl, defaultOptions = {}, wrappedFetch = makeFetchHappen) => {
14 if (typeof defaultUrl === 'object') {
15 defaultOptions = defaultUrl
16 defaultUrl = null
17 }
18
19 const defaultedFetch = (url, options = {}) => {
20 const finalUrl = url || defaultUrl
21 const finalOptions = {
22 ...defaultOptions,
23 ...options,
24 headers: {
25 ...defaultOptions.headers,
26 ...options.headers,
27 },
28 }
29 return wrappedFetch(finalUrl, finalOptions)
30 }
31
32 defaultedFetch.defaults = (defaultUrl1, defaultOptions1 = {}) =>
33 makeFetchHappen.defaults(defaultUrl1, defaultOptions1, defaultedFetch)
34 return defaultedFetch
35}
36
37module.exports = makeFetchHappen
38module.exports.FetchError = FetchError
39module.exports.Headers = Headers
40module.exports.Request = Request
41module.exports.Response = Response