formatters.js — react Source File
Architecture documentation for formatters.js, a javascript file in the react codebase.
Entity Profile
Relationship Graph
Source Code
'use strict';
const {toCsvRow} = require('./utils');
const NO_CHANGES_MESSAGE = 'No changes since the last release.';
function buildChangelogEntries({
packageSpecs,
commitsByPackage,
summariesByPackage,
prMetadata,
}) {
const entries = [];
for (let i = 0; i < packageSpecs.length; i++) {
const spec = packageSpecs[i];
const version = spec.displayVersion || spec.version;
const commitsForPackage = commitsByPackage.get(spec.name) || [];
if (commitsForPackage.length === 0) {
entries.push({
package: spec.name,
version,
hasChanges: false,
note: NO_CHANGES_MESSAGE,
commits: [],
});
continue;
}
const summaryMap = summariesByPackage.get(spec.name) || new Map();
const commitEntries = commitsForPackage.map(commit => {
let summary = summaryMap.get(commit.sha) || commit.subject;
if (commit.prNumber) {
const prPattern = new RegExp(`\\s*\\(#${commit.prNumber}\\)$`);
summary = summary.replace(prPattern, '').trim();
}
const commitSha = commit.sha;
const commitUrl = `https://github.com/facebook/react/commit/${commitSha}`;
const prNumber = commit.prNumber || null;
const prUrl = prNumber
? `https://github.com/facebook/react/pull/${prNumber}`
: null;
const prEntry = prNumber ? prMetadata.get(prNumber) : null;
const authorLogin = prEntry?.authorLogin || null;
const authorName = commit.authorName || null;
const authorEmail = commit.authorEmail || null;
let authorUrl = null;
let authorDisplay = authorName || 'unknown author';
if (authorLogin) {
authorUrl = `https://github.com/${authorLogin}`;
authorDisplay = `[@${authorLogin}](${authorUrl})`;
} else if (authorName && authorName.startsWith('@')) {
const username = authorName.slice(1);
authorUrl = `https://github.com/${username}`;
authorDisplay = `[@${username}](${authorUrl})`;
// ... (169 more lines)
Domain
Subdomains
Functions
Source
Frequently Asked Questions
What does formatters.js do?
formatters.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 formatters.js?
formatters.js defines 2 function(s): buildChangelogEntries, renderChangelog.
Where is formatters.js in the architecture?
formatters.js is located at scripts/tasks/generate-changelog/formatters.js (domain: BabelCompiler, subdomain: Optimization, directory: scripts/tasks/generate-changelog).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free