main() — react Function Reference
Architecture documentation for the main() function in index.js from the react codebase.
Entity Profile
Dependency Diagram
graph TD b820a5b1_eaac_bb88_0a69_0d0448036f47["main()"] 50fe247d_7ce0_aaae_b002_93c23cc44a73["index.js"] b820a5b1_eaac_bb88_0a69_0d0448036f47 -->|defined in| 50fe247d_7ce0_aaae_b002_93c23cc44a73 style b820a5b1_eaac_bb88_0a69_0d0448036f47 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
scripts/tasks/generate-changelog/index.js lines 16–149
async function main() {
const {packageSpecs, summarizer, debug, format} = parseArgs(
process.argv.slice(2)
);
const log = debug
? (...args) => console.log('[generate-changelog]', ...args)
: noopLogger;
const allStablePackages = Object.keys(stablePackages);
const packageTargets = new Map();
for (let i = 0; i < packageSpecs.length; i++) {
const spec = packageSpecs[i];
if (!allStablePackages.includes(spec.name)) {
throw new Error(
`Package "${spec.name}" is not listed in stablePackages.`
);
}
if (packageTargets.has(spec.name)) {
throw new Error(`Package "${spec.name}" was specified more than once.`);
}
packageTargets.set(spec.name, spec);
}
const targetPackages = packageSpecs.map(spec => spec.name);
log(
`Starting changelog generation for: ${packageSpecs
.map(spec => `${spec.name}@${spec.displayVersion || spec.version}`)
.join(', ')}`
);
const packageInfoMap = new Map();
const packageInfoResults = await Promise.all(
targetPackages.map(async pkg => {
const info = await fetchNpmInfo(pkg, {log});
return {pkg, info};
})
);
for (let i = 0; i < packageInfoResults.length; i++) {
const entry = packageInfoResults[i];
packageInfoMap.set(entry.pkg, entry.info);
}
const commitPackagesMap = new Map();
const commitCollections = await Promise.all(
targetPackages.map(async pkg => {
const {gitHead} = packageInfoMap.get(pkg);
const commits = await collectCommitsSince(pkg, gitHead, {log});
log(`Package ${pkg} has ${commits.length} commit(s) since ${gitHead}.`);
return {pkg, commits};
})
);
for (let i = 0; i < commitCollections.length; i++) {
const entry = commitCollections[i];
const pkg = entry.pkg;
const commits = entry.commits;
for (let j = 0; j < commits.length; j++) {
const sha = commits[j];
if (!commitPackagesMap.has(sha)) {
commitPackagesMap.set(sha, new Set());
}
commitPackagesMap.get(sha).add(pkg);
}
}
log(`Found ${commitPackagesMap.size} commits touching target packages.`);
if (commitPackagesMap.size === 0) {
console.log('No commits found for the selected packages.');
return;
}
const commitDetails = await Promise.all(
Array.from(commitPackagesMap.entries()).map(
async ([sha, packagesTouched]) => {
const detail = await loadCommitDetails(sha, {log});
detail.packages = packagesTouched;
detail.prNumber = extractPrNumber(detail.subject, detail.body);
return detail;
}
)
);
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does main() do?
main() is a function in the react codebase, defined in scripts/tasks/generate-changelog/index.js.
Where is main() defined?
main() is defined in scripts/tasks/generate-changelog/index.js at line 16.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free