index.js 1.0 KB

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