Skip to content

v0.5.0

Choose a tag to compare

@hoorayimhelping hoorayimhelping released this 14 Oct 21:26

Add pre-request and post-response functionality hooks

Adds the ability to modify the request or response by creating a request handler function or response handler function.

type RequestHandler = (
  url: string,
  query: string,
  init: RequestInit // this represents the second parameter passed to `fetch`
) => {url: string, query: string, init: RequestInit}

type ResponseHandler = (
  status: number,
  headers: Headers,
  data: any
) => {status: number, headers: Headers, data: any}

These hooks are added by the following function calls:

setRequestHandler: (requestHandler: RequestHandler) => void

setResponseHandler: (responseHandler: ResponseHandler) => void

An example of it in action:

import {setRequestHandler, setResponseHandler} from '/location-of-routes'

setRequestHandler((url, query, init) => {
  if (init.method === 'put') {
    init.method = 'patch'
  }
  return {url, query, init}
})

setResponseHandler((status, headers, data) => {
  if (status === 404) {
    window.location.href = '/adorable-404-page'
  }

  return {status, headers, data}
})