fetchNpmInfo() — react Function Reference
Architecture documentation for the fetchNpmInfo() function in data.js from the react codebase.
Entity Profile
Dependency Diagram
graph TD c5d4c6f6_8dab_2c72_24cc_7ef4d282c94a["fetchNpmInfo()"] 60d0c3ed_734d_56fa_7d21_b53dc8d70afe["data.js"] c5d4c6f6_8dab_2c72_24cc_7ef4d282c94a -->|defined in| 60d0c3ed_734d_56fa_7d21_b53dc8d70afe style c5d4c6f6_8dab_2c72_24cc_7ef4d282c94a fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
scripts/tasks/generate-changelog/data.js lines 8–59
async function fetchNpmInfo(packageName, {log}) {
const npmArgs = ['view', `${packageName}@latest`, '--json'];
const options = {cwd: repoRoot, maxBuffer: 10 * 1024 * 1024};
log(`Fetching npm info for ${packageName}...`);
const {stdout} = await execFileAsync('npm', npmArgs, options);
let data = stdout.trim();
if (!data) {
throw new Error(`npm view returned empty result for ${packageName}`);
}
let info = JSON.parse(data);
if (Array.isArray(info)) {
info = info[info.length - 1];
}
const version = info.version || info['dist-tags']?.latest;
let gitHead = info.gitHead || null;
if (!gitHead) {
const gitHeadResult = await execFileAsync(
'npm',
['view', `${packageName}@${version}`, 'gitHead'],
{cwd: repoRoot, maxBuffer: 1024 * 1024}
);
const possibleGitHead = gitHeadResult.stdout.trim();
if (
possibleGitHead &&
possibleGitHead !== 'undefined' &&
possibleGitHead !== 'null'
) {
log(`Found gitHead for ${packageName}@${version}: ${possibleGitHead}`);
gitHead = possibleGitHead;
}
}
if (!version) {
throw new Error(
`Unable to determine latest published version for ${packageName}`
);
}
if (!gitHead) {
throw new Error(
`Unable to determine git commit for ${packageName}@${version}`
);
}
return {
publishedVersion: version,
gitHead,
};
}
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does fetchNpmInfo() do?
fetchNpmInfo() is a function in the react codebase, defined in scripts/tasks/generate-changelog/data.js.
Where is fetchNpmInfo() defined?
fetchNpmInfo() is defined in scripts/tasks/generate-changelog/data.js at line 8.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free