Home / File/ index.js — react Source File

index.js — react Source File

Architecture documentation for index.js, a javascript file in the react codebase. 7 imports, 0 dependents.

File javascript BabelCompiler Validation 7 imports 5 functions

Entity Profile

Dependency Diagram

graph LR
  406e0fbd_f3e8_fc3b_d05b_4922f1996e21["index.js"]
  fe7f3f36_186a_b5fa_46a3_1c8b67d7534d["dynamicallyInjectContentScripts.js"]
  406e0fbd_f3e8_fc3b_d05b_4922f1996e21 --> fe7f3f36_186a_b5fa_46a3_1c8b67d7534d
  340180c0_7449_8026_336c_23b84d74eda4["tabsManager.js"]
  406e0fbd_f3e8_fc3b_d05b_4922f1996e21 --> 340180c0_7449_8026_336c_23b84d74eda4
  eda1c637_7f7a_9fee_baa9_c174b535138c["messageHandlers.js"]
  406e0fbd_f3e8_fc3b_d05b_4922f1996e21 --> eda1c637_7f7a_9fee_baa9_c174b535138c
  00586d16_bb96_cb3e_a14c_a4dfaccc0daf["handleDevToolsPageMessage"]
  406e0fbd_f3e8_fc3b_d05b_4922f1996e21 --> 00586d16_bb96_cb3e_a14c_a4dfaccc0daf
  9fee6380_b476_6a5c_d72f_636cae3c4ef8["handleBackendManagerMessage"]
  406e0fbd_f3e8_fc3b_d05b_4922f1996e21 --> 9fee6380_b476_6a5c_d72f_636cae3c4ef8
  3ac927b9_a998_c583_e76e_b2a8ab58732f["handleReactDevToolsHookMessage"]
  406e0fbd_f3e8_fc3b_d05b_4922f1996e21 --> 3ac927b9_a998_c583_e76e_b2a8ab58732f
  bfc282c9_7ed7_328e_f9e3_4788d84d83e6["handleFetchResourceContentScriptMessage"]
  406e0fbd_f3e8_fc3b_d05b_4922f1996e21 --> bfc282c9_7ed7_328e_f9e3_4788d84d83e6
  style 406e0fbd_f3e8_fc3b_d05b_4922f1996e21 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

/* global chrome */

'use strict';

import './dynamicallyInjectContentScripts';
import './tabsManager';

import {
  handleDevToolsPageMessage,
  handleBackendManagerMessage,
  handleReactDevToolsHookMessage,
  handleFetchResourceContentScriptMessage,
} from './messageHandlers';

/*
  {
    [tabId]: {
      extension: ExtensionPort,
      proxy: ProxyPort,
      disconnectPipe: Function,
    },
    ...
   }
 */
const ports = {};

function registerTab(tabId) {
  if (!ports[tabId]) {
    ports[tabId] = {
      extension: null,
      proxy: null,
      disconnectPipe: null,
    };
  }
}

function registerExtensionPort(port, tabId) {
  ports[tabId].extension = port;

  port.onDisconnect.addListener(() => {
    // This should delete disconnectPipe from ports dictionary
    ports[tabId].disconnectPipe?.();

    delete ports[tabId].extension;
  });
}

function registerProxyPort(port, tabId) {
  ports[tabId].proxy = port;

  // In case proxy port was disconnected from the other end, from content script
  // This can happen if content script was detached, when user does in-tab navigation
  // This listener should never be called when we call port.disconnect() from this (background/index.js) script
  port.onDisconnect.addListener(() => {
    ports[tabId].disconnectPipe?.();

    delete ports[tabId].proxy;
  });
}

// ... (155 more lines)

Domain

Subdomains

Frequently Asked Questions

What does index.js do?
index.js is a source file in the react codebase, written in javascript. It belongs to the BabelCompiler domain, Validation subdomain.
What functions are defined in index.js?
index.js defines 5 function(s): connectExtensionAndProxyPorts, isNumeric, registerExtensionPort, registerProxyPort, registerTab.
What does index.js depend on?
index.js imports 7 module(s): dynamicallyInjectContentScripts.js, handleBackendManagerMessage, handleDevToolsPageMessage, handleFetchResourceContentScriptMessage, handleReactDevToolsHookMessage, messageHandlers.js, tabsManager.js.
Where is index.js in the architecture?
index.js is located at packages/react-devtools-extensions/src/background/index.js (domain: BabelCompiler, subdomain: Validation, directory: packages/react-devtools-extensions/src/background).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free