MCPcopy Index your code
hub / github.com/remix-run/react-router / parseAllChangeFiles

Function parseAllChangeFiles

scripts/changes/changes.ts:218–338  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

216 * Returns releases if valid, or errors if invalid.
217 */
218export function parseAllChangeFiles(): ParsedChanges {
219 let packageDirNames = getAllPackageDirNames();
220 let errors: ValidationError[] = [];
221
222 // Build maps for lookup
223 let dirNameToPackageName = new Map<string, string>();
224 let packageNameToDirName = new Map<string, string>();
225
226 // First pass: collect package info and validate change files
227 interface ParsedPackageInfo {
228 packageDirName: string;
229 packageName: string;
230 currentVersion: string;
231 changes: ChangeFile[];
232 }
233 let parsedPackages: ParsedPackageInfo[] = [];
234
235 for (let packageDirName of packageDirNames) {
236 let parsed = parsePackageChanges(packageDirName);
237
238 if (!parsed.valid) {
239 errors.push(...parsed.errors);
240 continue;
241 }
242
243 let packageJsonPath = getPackageFile(packageDirName, "package.json");
244 let packageJson = readJson(packageJsonPath);
245 let packageName = packageJson.name as string;
246 let currentVersion = packageJson.version as string;
247
248 dirNameToPackageName.set(packageDirName, packageName);
249 packageNameToDirName.set(packageName, packageDirName);
250
251 parsedPackages.push({
252 packageDirName,
253 packageName,
254 currentVersion,
255 changes: parsed.changes,
256 });
257 }
258
259 if (errors.length > 0) {
260 return { valid: false, errors };
261 }
262
263 let allChanges = new Set(
264 parsedPackages.flatMap((p) => p.changes.flatMap((c) => c.bump)),
265 );
266
267 if (allChanges.size === 0) {
268 return { valid: true, releases: [] };
269 }
270
271 let bump: BumpType = allChanges.has("major")
272 ? "major"
273 : allChanges.has("minor")
274 ? "minor"
275 : "patch";

Callers 3

mainFunction · 0.90
version.tsFile · 0.90
mainFunction · 0.90

Calls 12

getAllPackageDirNamesFunction · 0.90
getPackageFileFunction · 0.90
readJsonFunction · 0.90
getPackageDependenciesFunction · 0.90
getGitHubReleaseUrlFunction · 0.90
parsePackageChangesFunction · 0.85
getNextVersionFunction · 0.85
packageNameComparatorFunction · 0.85
hasMethod · 0.80
addMethod · 0.80
pushMethod · 0.65
setMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…