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__
type HookSourceData = {|
  
  hookSource: HookSource,
  
  originalSourceAST: AST | null,
  
  
  originalSourceCode: string | null,
  
  originalSourceURL: string | null,
  
  runtimeSourceCode: string | null,
  
  runtimeSourceURL: string,
  
  sourceConsumer: SourceConsumer | null,
  
  
  sourceMapURL: string | null,
|};
type CachedRuntimeCodeMetadata = {|
  sourceConsumer: SourceConsumer | null,
|};
const runtimeURLToMetadataCache: LRUCache<
  string,
  CachedRuntimeCodeMetadata,
> = new LRU({
  max: 50,
  dispose: (runtimeSourceURL: string, metadata: CachedRuntimeCodeMetadata) => {
    if (__DEBUG__) {