check-release-dependencies.js — react Source File
Architecture documentation for check-release-dependencies.js, a javascript file in the react codebase.
Entity Profile
Relationship Graph
Source Code
'use strict';
/* eslint-disable no-for-of-loops/no-for-of-loops */
const fs = require('fs');
const semver = require('semver');
const {stablePackages} = require('../../ReactVersions');
function main() {
if (!fs.existsSync('./build/oss-stable-semver')) {
throw new Error('No build artifacts found');
}
const packages = new Map();
for (const packageName in stablePackages) {
if (!fs.existsSync(`build/oss-stable-semver/${packageName}/package.json`)) {
throw new Error(`${packageName}`);
} else {
const info = JSON.parse(
fs.readFileSync(`build/oss-stable-semver/${packageName}/package.json`)
);
packages.set(info.name, info);
}
}
for (const [packageName, info] of packages) {
if (info.dependencies) {
for (const [depName, depRange] of Object.entries(info.dependencies)) {
if (packages.has(depName)) {
const releaseVersion = packages.get(depName).version;
checkDependency(packageName, depName, releaseVersion, depRange);
}
}
}
if (info.peerDependencies) {
for (const [depName, depRange] of Object.entries(info.peerDependencies)) {
if (packages.has(depName)) {
const releaseVersion = packages.get(depName).version;
checkDependency(packageName, depName, releaseVersion, depRange);
}
}
}
}
}
function checkDependency(packageName, depName, version, range) {
if (!semver.satisfies(version, range)) {
throw new Error(
`${packageName} has an invalid dependency on ${depName}: ${range}` +
'\n\n' +
'Actual version is: ' +
version
);
}
}
main();
Domain
Subdomains
Functions
Source
Frequently Asked Questions
What does check-release-dependencies.js do?
check-release-dependencies.js is a source file in the react codebase, written in javascript. It belongs to the BabelCompiler domain, Optimization subdomain.
What functions are defined in check-release-dependencies.js?
check-release-dependencies.js defines 2 function(s): checkDependency, main.
Where is check-release-dependencies.js in the architecture?
check-release-dependencies.js is located at scripts/release/check-release-dependencies.js (domain: BabelCompiler, subdomain: Optimization, directory: scripts/release).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free