generateHookMap.js — react Source File
Architecture documentation for generateHookMap.js, a javascript file in the react codebase. 2 imports, 5 dependents.
Entity Profile
Dependency Diagram
graph LR d816dd9a_2650_2f50_e9eb_2cdf900b512f["generateHookMap.js"] 22acaf1d_d624_cc04_9046_5e8603f3a58d["astUtils.js"] d816dd9a_2650_2f50_e9eb_2cdf900b512f --> 22acaf1d_d624_cc04_9046_5e8603f3a58d 8b964ac1_528c_b6d4_9dc8_e2ee21534ee0["sourcemap-codec"] d816dd9a_2650_2f50_e9eb_2cdf900b512f --> 8b964ac1_528c_b6d4_9dc8_e2ee21534ee0 5751162b_425a_76d9_4373_4cf5cde09b49["SourceMapMetadataConsumer.js"] 5751162b_425a_76d9_4373_4cf5cde09b49 --> d816dd9a_2650_2f50_e9eb_2cdf900b512f 1cf4efe1_9da2_a991_9522_cf313b27188c["SourceMapTypes.js"] 1cf4efe1_9da2_a991_9522_cf313b27188c --> d816dd9a_2650_2f50_e9eb_2cdf900b512f 13d4ecc3_5f1d_4757_b18c_5c1d3b72cb4f["generateHookMap-test.js"] 13d4ecc3_5f1d_4757_b18c_5c1d3b72cb4f --> d816dd9a_2650_2f50_e9eb_2cdf900b512f 1ab77cff_6803_e7fc_0f93_59c0fdfeb26e["getHookNameForLocation-test.js"] 1ab77cff_6803_e7fc_0f93_59c0fdfeb26e --> d816dd9a_2650_2f50_e9eb_2cdf900b512f 5ab6cc34_8610_de9f_93dc_9e7a8742ce9b["getHookNameForLocation.js"] 5ab6cc34_8610_de9f_93dc_9e7a8742ce9b --> d816dd9a_2650_2f50_e9eb_2cdf900b512f style d816dd9a_2650_2f50_e9eb_2cdf900b512f fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow
*/
import {getHookNamesMappingFromAST} from './astUtils';
import {encode, decode} from '@jridgewell/sourcemap-codec';
// Missing types in @babel/types
type File = any;
export type HookMap = {
names: $ReadOnlyArray<string>,
mappings: HookMapMappings,
};
export type EncodedHookMap = {
names: $ReadOnlyArray<string>,
mappings: string,
};
// See generateHookMap below for more details on formatting
export type HookMapEntry = [
number, // 1-indexed line number
number, // 0-indexed column number
number, // 0-indexed index into names array
number, // TODO: filler number to support reusing encoding from `sourcemap-codec` (see TODO below)
];
export type HookMapLine = HookMapEntry[];
export type HookMapMappings = HookMapLine[];
/**
* Given a parsed source code AST, returns a "Hook Map", which is a
* mapping which maps locations in the source code to their to their
* corresponding Hook name, if there is a relevant Hook name for that
* location (see getHookNamesMappingFromAST for details on the
* representation of the mapping).
*
* The format of the Hook Map follows a similar format as the `name`
* and `mappings` fields in the Source Map spec, where `names` is an
* array of strings, and `mappings` contains segments lines, columns,
* and indices into the `names` array.
*
* E.g.:
* {
* names: ["<no-hook>", "state"],
* mappings: [
* [ -> line 1
* [1, 0, 0], -> line, col, name index
* ],
* [ -> line 2
* [2, 5, 1], -> line, col, name index
* [2, 15, 0], -> line, col, name index
* ],
* ],
* }
// ... (66 more lines)
Domain
Dependencies
- astUtils.js
- sourcemap-codec
Imported By
- packages/react-devtools-shared/src/hooks/SourceMapMetadataConsumer.js
- packages/react-devtools-shared/src/hooks/SourceMapTypes.js
- packages/react-devtools-shared/src/hooks/__tests__/generateHookMap-test.js
- packages/react-devtools-shared/src/hooks/__tests__/getHookNameForLocation-test.js
- packages/react-devtools-shared/src/hooks/getHookNameForLocation.js
Source
Frequently Asked Questions
What does generateHookMap.js do?
generateHookMap.js is a source file in the react codebase, written in javascript. It belongs to the BabelCompiler domain.
What does generateHookMap.js depend on?
generateHookMap.js imports 2 module(s): astUtils.js, sourcemap-codec.
What files import generateHookMap.js?
generateHookMap.js is imported by 5 file(s): SourceMapMetadataConsumer.js, SourceMapTypes.js, generateHookMap-test.js, getHookNameForLocation-test.js, getHookNameForLocation.js.
Where is generateHookMap.js in the architecture?
generateHookMap.js is located at packages/react-devtools-shared/src/hooks/generateHookMap.js (domain: BabelCompiler, directory: packages/react-devtools-shared/src/hooks).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free