writeConfig() — react Function Reference
Architecture documentation for the writeConfig() function in createFlowConfigs.js from the react codebase.
Entity Profile
Dependency Diagram
graph TD a6bf12e5_9e65_9a63_3833_a10afa833d8f["writeConfig()"] 58d7564a_60ca_fe34_fb9c_a10335b3f9f8["createFlowConfigs.js"] a6bf12e5_9e65_9a63_3833_a10afa833d8f -->|defined in| 58d7564a_60ca_fe34_fb9c_a10335b3f9f8 07fb6643_c59b_953c_9585_53a1158ee784["addFork()"] a6bf12e5_9e65_9a63_3833_a10afa833d8f -->|calls| 07fb6643_c59b_953c_9585_53a1158ee784 style a6bf12e5_9e65_9a63_3833_a10afa833d8f fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
scripts/flow/createFlowConfigs.js lines 55–139
function writeConfig(
renderer,
rendererInfo,
isServerSupported,
isFlightSupported,
) {
const folder = __dirname + '/' + renderer;
mkdirp.sync(folder);
isFlightSupported =
isFlightSupported === true ||
(isServerSupported && isFlightSupported !== false);
const serverRenderer = isServerSupported ? renderer : 'custom';
const flightRenderer = isFlightSupported ? renderer : 'custom';
const ignoredPaths = [];
inlinedHostConfigs.forEach(otherRenderer => {
if (otherRenderer === rendererInfo) {
return;
}
otherRenderer.paths.forEach(otherPath => {
if (rendererInfo.paths.indexOf(otherPath) !== -1) {
return;
}
ignoredPaths.push(`.*/packages/${otherPath}`);
});
});
const forks = new Map();
addFork(forks, renderer, 'react-reconciler/src/ReactFiberConfig');
addFork(forks, serverRenderer, 'react-server/src/ReactServerStreamConfig');
addFork(forks, serverRenderer, 'react-server/src/ReactFizzConfig');
addFork(forks, flightRenderer, 'react-server/src/ReactFlightServerConfig');
addFork(forks, flightRenderer, 'react-client/src/ReactFlightClientConfig');
forks.set(
'react-devtools-shared/src/config/DevToolsFeatureFlags.default',
'react-devtools-feature-flags',
);
allForks.forEach(fork => {
if (!forks.has(fork)) {
ignoredPaths.push(`.*/packages/.*/${fork}`);
}
});
let moduleMappings = '';
forks.forEach((source, target) => {
moduleMappings += `module.name_mapper='${source.slice(
source.lastIndexOf('/') + 1,
)}' -> '${target}'\n`;
});
const config = configTemplate
.replace('%REACT_RENDERER_FLOW_OPTIONS%', moduleMappings.trim())
.replace('%REACT_RENDERER_FLOW_IGNORES%', ignoredPaths.join('\n'))
.replace('%FLOW_VERSION%', flowVersion);
const disclaimer = `
# ---------------------------------------------------------------#
# NOTE: this file is generated. #
# If you want to edit it, open ./scripts/flow/config/flowconfig. #
# Then run Yarn for changes to take effect. #
# ---------------------------------------------------------------#
`.trim();
const configFile = folder + '/.flowconfig';
let oldConfig;
try {
oldConfig = fs.readFileSync(configFile).toString();
} catch (err) {
oldConfig = null;
}
const newConfig = `
${disclaimer}
${config}
${disclaimer}
`.trim();
if (newConfig !== oldConfig) {
Domain
Subdomains
Defined In
Calls
Source
Frequently Asked Questions
What does writeConfig() do?
writeConfig() is a function in the react codebase, defined in scripts/flow/createFlowConfigs.js.
Where is writeConfig() defined?
writeConfig() is defined in scripts/flow/createFlowConfigs.js at line 55.
What does writeConfig() call?
writeConfig() calls 1 function(s): addFork.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free