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 '.'; import * as api from '../github-helpers/api'; import pluralize from '../helpers/pluralize'; const getCommitChanges = cache.function(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]; }, { cacheKey: ([commit]) => 'commit-changes:' + commit }); 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'); diffstat!.replaceWith( +{additions}{' '} −{deletions}{' '} ); } void features.add(__filebasename, { include: [ pageDetect.isPRCommit ], awaitDomReady: false, init });