Request & Response Interceptor

const originalFetch = window.fetch;

window.requestInterceptor = (args) => {
  console.log("Request has been intercepted");
  return args;
};

window.responseInterceptor = (response) => {
  console.log("Response has been intercepted");
  return response.json();
};

window.fetch = async (...args) => {
  const reqArgs = requestInterceptor(args);
  const response = await originalFetch(...reqArgs);
  const resInterceptor = responseInterceptor(response);
  return resInterceptor;
};

fetch("https://jsonplaceholder.typicode.com/todos/1").then((json) =>
  console.log(json)
);

// "Request has been intercepted"
// "Response has been intercepted"
// {
//   "userId": 1,
//   "id": 1,
//   "title": "delectus aut autem",
//   "completed": false
// }