compile() — react Function Reference
Architecture documentation for the compile() function in updateMockSourceMaps.js from the react codebase.
Entity Profile
Dependency Diagram
graph TD 6c1ebf5e_efab_ad65_3dce_d177106307f1["compile()"] 2130af67_69df_01e0_f9cc_d9ee95c1cbc3["updateMockSourceMaps.js"] 6c1ebf5e_efab_ad65_3dce_d177106307f1 -->|defined in| 2130af67_69df_01e0_f9cc_d9ee95c1cbc3 style 6c1ebf5e_efab_ad65_3dce_d177106307f1 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/react-devtools-shared/src/hooks/__tests__/updateMockSourceMaps.js lines 76–314
function compile(fileName) {
const code = readFileSync(resolve(sourceDir, fileName), 'utf8');
const transformed = transformSync(code, {
plugins: ['@babel/plugin-transform-modules-commonjs'],
presets: [
// 'minify',
[
'@babel/react',
// {
// runtime: 'automatic',
// development: false,
// },
],
],
sourceMap: true,
});
const sourceMap = transformed.map;
sourceMap.sources = [fileName];
// Generate compiled output with external source maps
writeFileSync(
resolve(externalDir, fileName),
transformed.code +
`\n//# sourceMappingURL=${fileName}.map?foo=bar¶m=some_value`,
'utf8',
);
writeFileSync(
resolve(externalDir, `${fileName}.map`),
JSON.stringify(sourceMap),
'utf8',
);
// Generate compiled output with inline base64 source maps
writeFileSync(
resolve(inlineDir, fileName),
transformed.code +
'\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,' +
btoa(JSON.stringify(sourceMap)),
'utf8',
);
// Strip column numbers from source map to mimic Webpack 'cheap-module-source-map'
// The mappings field represents a list of integer arrays.
// Each array defines a pair of corresponding file locations, one in the generated code and one in the original.
// Each array has also been encoded first as VLQs (variable-length quantities)
// and then as base64 because this makes them more compact overall.
// https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/view#
const decodedMappings = decode(sourceMap.mappings).map(entries =>
entries.map(entry => {
if (entry.length === 0) {
return entry;
}
// Each non-empty segment has the following components:
// generated code column, source index, source code line, source code column, and (optional) name index
return [...entry.slice(0, 3), 0, ...entry.slice(4)];
}),
);
const encodedMappings = encode(decodedMappings);
// Generate compiled output with inline base64 source maps without column numbers
writeFileSync(
resolve(noColumnsDir, fileName),
transformed.code +
'\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,' +
btoa(
JSON.stringify({
...sourceMap,
mappings: encodedMappings,
}),
),
'utf8',
);
// Artificially construct a source map that uses the index map format
// (https://sourcemaps.info/spec.html#h.535es3xeprgt)
const indexMap = {
version: sourceMap.version,
file: sourceMap.file,
Domain
Subdomains
Source
Frequently Asked Questions
What does compile() do?
compile() is a function in the react codebase, defined in packages/react-devtools-shared/src/hooks/__tests__/updateMockSourceMaps.js.
Where is compile() defined?
compile() is defined in packages/react-devtools-shared/src/hooks/__tests__/updateMockSourceMaps.js at line 76.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free