DevTools tells Babel to parse the source code using "jsx" and "typescript" plug-ins:
https://github.com/facebook/react/blob/ed6c091fe961a3b95e956ebcefe8f152177b1fb7/packages/react-devtools-extensions/src/parseHookNames.js#L446-L462

This will work for some simple usages of Flow, but syntax may diverge and cause the parsing to fail.

Let's scan the source code for a `@flow` pragma and pass "flow" instead of "typescript" if one is found.

---

We should also add tests for both Flow and TypeScript to the test component pool:
https://github.com/facebook/react/tree/main/packages/react-devtools-extensions/src/__tests__/__source__
runtimeSourceCode: null,
        runtimeSourceURL,
        sourceConsumer: null,
        sourceMapURL: null,
      };
      
      
      const runtimeMetadata = runtimeURLToMetadataCache.get(
        hookSourceData.runtimeSourceURL,
      );
      if (runtimeMetadata != null) {
        if (__DEBUG__) {
          console.groupCollapsed(
            `parseHookNames() Found cached runtime metadata for file "${hookSourceData.runtimeSourceURL}"`,
          );
          console.log(runtimeMetadata);
          console.groupEnd();
        }
        hookSourceData.sourceConsumer = runtimeMetadata.sourceConsumer;
      }
      locationKeyToHookSourceData.set(locationKey, hookSourceData);
    }
  }
  return loadSourceFiles(locationKeyToHookSourceData)
    .then(() => extractAndLoadSourceMaps(locationKeyToHookSourceData))
    .then(() => parseSourceAST(locationKeyToHookSourceData))
    .then(() => updateLruCache(locationKeyToHookSourceData))
    .then(() => findHookNames(hooksList, locationKeyToHookSourceData));
}
function decodeBase64String(encoded: string): Object {