Home / Function/ findHookNames() — react Function Reference

findHookNames() — react Function Reference

Architecture documentation for the findHookNames() function in parseSourceAndMetadata.js from the react codebase.

Entity Profile

Dependency Diagram

graph TD
  8fcd4639_43fc_b147_7c26_e198696286ab["findHookNames()"]
  76da1f28_5fe1_2c37_5657_67756acc6f55["parseSourceAndMetadata.js"]
  8fcd4639_43fc_b147_7c26_e198696286ab -->|defined in| 76da1f28_5fe1_2c37_5657_67756acc6f55
  fba84d46_f44f_7ea7_9af3_a0121e3e1415["parseSourceAndMetadata()"]
  fba84d46_f44f_7ea7_9af3_a0121e3e1415 -->|calls| 8fcd4639_43fc_b147_7c26_e198696286ab
  53395c34_7472_4850_0d26_5722d5c6d970["hookNameFor()"]
  8fcd4639_43fc_b147_7c26_e198696286ab -->|calls| 53395c34_7472_4850_0d26_5722d5c6d970
  ae74fc61_22de_3ac9_6314_d002de1a11ab["getHookName()"]
  8fcd4639_43fc_b147_7c26_e198696286ab -->|calls| ae74fc61_22de_3ac9_6314_d002de1a11ab
  style 8fcd4639_43fc_b147_7c26_e198696286ab fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/react-devtools-shared/src/hooks/parseHookNames/parseSourceAndMetadata.js lines 123–195

function findHookNames(
  hooksList: HooksList,
  locationKeyToHookParsedMetadata: LocationKeyToHookParsedMetadata,
): HookNames {
  const map: HookNames = new Map();

  hooksList.map(hook => {
    // We already guard against a null HookSource in parseHookNames()
    const hookSource = ((hook.hookSource: any): HookSource);
    const fileName = hookSource.fileName;
    if (!fileName) {
      return null; // Should not be reachable.
    }

    const locationKey = getHookSourceLocationKey(hookSource);
    const hookParsedMetadata = locationKeyToHookParsedMetadata.get(locationKey);
    if (!hookParsedMetadata) {
      return null; // Should not be reachable.
    }

    const {lineNumber, columnNumber} = hookSource;
    if (!lineNumber || !columnNumber) {
      return null; // Should not be reachable.
    }

    const {
      originalSourceURL,
      originalSourceColumnNumber,
      originalSourceLineNumber,
    } = hookParsedMetadata;

    if (
      originalSourceLineNumber == null ||
      originalSourceColumnNumber == null ||
      originalSourceURL == null
    ) {
      return null; // Should not be reachable.
    }

    let name;
    const {metadataConsumer} = hookParsedMetadata;
    if (metadataConsumer != null) {
      name = withSyncPerfMeasurements('metadataConsumer.hookNameFor()', () =>
        metadataConsumer.hookNameFor({
          line: originalSourceLineNumber,
          column: originalSourceColumnNumber,
          source: originalSourceURL,
        }),
      );
    }

    if (name == null) {
      name = withSyncPerfMeasurements('getHookName()', () =>
        getHookName(
          hook,
          hookParsedMetadata.originalSourceAST,
          ((hookParsedMetadata.originalSourceCode: any): string),
          ((originalSourceLineNumber: any): number),
          originalSourceColumnNumber,
        ),
      );
    }

    if (__DEBUG__) {
      console.log(`findHookNames() Found name "${name || '-'}"`);
    }

    const key = getHookSourceLocationKey(hookSource);
    map.set(key, name);
  });

  return map;
}

Domain

Subdomains

Frequently Asked Questions

What does findHookNames() do?
findHookNames() is a function in the react codebase, defined in packages/react-devtools-shared/src/hooks/parseHookNames/parseSourceAndMetadata.js.
Where is findHookNames() defined?
findHookNames() is defined in packages/react-devtools-shared/src/hooks/parseHookNames/parseSourceAndMetadata.js at line 123.
What does findHookNames() call?
findHookNames() calls 2 function(s): getHookName, hookNameFor.
What calls findHookNames()?
findHookNames() is called by 1 function(s): parseSourceAndMetadata.

Analyze Your Own Codebase

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

Try Supermodel Free