1import * as Changelogs from '../Changelogs'; 2import dependenciesChangelogs from '../data/androidDependenciesChangelogs.json'; 3import { AndroidProjectDependenciesUpdates } from './types'; 4 5function maybeWrapInChangelogLink(text: string, dependencyName: string) { 6 const changelog = dependenciesChangelogs[dependencyName]; 7 return changelog ? `[${text}](${changelog})` : text; 8} 9 10export async function addChangelogEntries( 11 updatesList: AndroidProjectDependenciesUpdates[] 12): Promise<void> { 13 await Promise.all( 14 updatesList 15 .filter((update) => update.updates.length > 0) 16 .filter((update) => update.report.changelogPath) 17 .map(async ({ updates, report }) => { 18 const changelog = Changelogs.loadFrom(report.changelogPath!); 19 20 const changelogEntries = updates.map( 21 (update) => 22 `Updated Android native dependency: ${maybeWrapInChangelogLink( 23 `\`${update.fullName}:${update.oldVersion}\` ➡️ \`${update.newVersion}\``, 24 update.fullName 25 )}` 26 ); 27 await changelog.insertEntriesAsync( 28 Changelogs.UNPUBLISHED_VERSION_NAME, 29 Changelogs.ChangeType.LIBRARY_UPGRADES, 30 null, 31 changelogEntries 32 ); 33 34 await changelog.saveAsync(); 35 }) 36 ); 37} 38