Relay

Published Sep 30, 2024
Chrome Extension
Active
23 views

An open-source HTTP interceptor in your browser

Quick Links

Tech Stack

Typescript, Nextjs, Tailwind CSS, Plasmo Framework

Key Features

Featured Snippets

Capturing Requests

Relay makes it simple to monitor and store network activity in real time. By using Chrome's Debugger API, it tracks every request and response within a browser tab, helping developers debug faster and better.

Here’s how it works:

// Capture and store network requests
chrome.debugger.onEvent.addListener((source, eventMethod, params: any) => {
  if (eventMethod === "Network.requestWillBeSent" && params.requestId) {
    requests[params.requestId] = {
      url: params.request.url,
      method: params.request.method,
      startTime: performance.now(),
    };
  }
 
  if (eventMethod === "Network.responseReceived" && params.requestId) {
    const request = requests[params.requestId];
    if (request) {
      const duration = `${Math.round(performance.now() - request.startTime)}ms`;
      request.duration = duration;
 
      // Store request in storage
      storage.get("apiRequests").then((stored) => {
        storage.set("apiRequests", [...(stored || []), request]);
        console.log("Saved request:", request);
      });
    }
  }
})

Why It’s Useful

Debugging network issues can be time-consuming. Relay helps by: