xref: /third_party/node/deps/npm/node_modules/make-fetch-happen/lib/index.js (revision 1cb0ef41)
  • Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /third_party/node/deps/npm/node_modules/make-fetch-happen/lib/
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
42

Indexes created Thu Nov 07 10:32:03 CST 2024