import React from 'dom-chef'; import cache from 'webext-storage-cache'; import elementReady from 'element-ready'; import * as pageDetect from 'github-url-detection'; import features from '../feature-manager.js'; import * as api from '../github-helpers/api.js'; import pluralize from '../helpers/pluralize.js'; const getCommitChanges = cache.function('commit-changes', async (commit: string): Promise<[additions: number, deletions: number]> => { const {repository} = await api.v4(` repository() { object(expression: "${commit}") { ... on Commit { additions deletions } } } `); return [repository.object.additions, repository.object.deletions]; }); async function init(): Promise { const commitSha = location.pathname.split('/').pop()!; const [additions, deletions] = await getCommitChanges(commitSha); const tooltip = pluralize(additions + deletions, '1 line changed', '$$ lines changed'); const diffstat = await elementReady('.diffstat', {waitForChildren: false}); diffstat!.replaceWith( +{additions}{' '} −{deletions}{' '} , ); } void features.add(import.meta.url, { include: [ pageDetect.isPRCommit, ], deduplicate: 'has-rgh-inner', init, });