Mon Nov 03 2025
Tucker McKnight <tucker@pangolin.lan>
add more clear types for getBranchInfo
268685ca2b2d95435aef7ae0cae6328464f07903
15
export default async function repoViewer(eleventyConfig, reposConfiguration: ReposConfiguration) {
15
export default async function repoViewer(eleventyConfig: any, reposConfiguration: ReposConfiguration) {
34
eleventyConfig.addFilter("getFileName", (filePath) => {
34
eleventyConfig.addFilter("getFileName", (filePath: string) => {
1
type Repository = {
1
export type Repository = {
1
1
import {type Repository} from './dataTypes.ts'
14
15
16
17
18
19
20
21
type DiffInfo = {
file: string,
lineNumber: number,
previousText: string,
afterText: string,
}
const getGitDiffsFromPatchText = (patchText: string): Array<DiffInfo> => {
const hunks: Array<Hunk> = []
14
15
16
17
type Diffs = ReturnType<Repository['commits']['get']>['diffs']
const getGitDiffsFromPatchText = (patchText: string): Diffs => {
const hunks: Diffs = []
55
56
57
58
59
let previousText = ""
previousText = previousText + obj.value
previousText = previousText + "<mark>" + obj.value + "</mark>"
file: previousFilename !== '' ? previousFilename : currentFilename,
previousText,
55
56
57
58
59
let beforeText = ""
beforeText = beforeText + obj.value
beforeText = beforeText + "<mark>" + obj.value + "</mark>"
fileName: previousFilename !== '' ? previousFilename : currentFilename,
beforeText,
4
4
import { getBranchInfo } from './vcses/git/operations.ts'
35
const patches = await repoOperations[vcs].getBranchInfo(repoName, branchName, repoLocation)
35
const patches = await getBranchInfo(branchName, repoLocation)
2
2
import { type Repository } from '../../dataTypes.ts'
37
38
export const getBranchInfo = async (repoName: string, branchName: string, repoLocation: string) => {
const patches = new Map()
37
38
39
40
41
42
43
44
45
export const getBranchInfo = async (branchName: string, repoLocation: string) => {
const patches: Map<string, {
name: string,
description: string,
author: string,
date: string,
hash: string,
diffs: ReturnType<Repository['commits']['get']>['diffs'],
}> = new Map()
54
let author, date
54
let author: string, date: string
1
getBranchInfo as getGitBranchInfo,
1
7
getBranchInfo: (repoName: string, branchName: string, repoLocation: string) => Promise<BranchInfo['patches']>,
7
15
getBranchInfo: getGitBranchInfo,
15
27
28
29
<span class="font-monospace fw-bold"><a href="{{reposPath}}/{{patchInfo.repoName | slugify}}/branches/{{patchInfo.branchName | slugify}}/files/{{ hunk.file | slugify}}.html">{{ hunk.file }}:{{ hunk.lineNumber }}</a></span>
{%- for lineNumber in hunk.previousText | lineNumbers -%}
<pre data-start="{{hunk.lineNumber}}"><code data-type="before" class="line-numbers language-{{hunk.file | languageExtension(patchInfo.repoName)}}">{{hunk.previousText | safe}}</code></pre>
27
28
29
<span class="font-monospace fw-bold"><a href="{{reposPath}}/{{patchInfo.repoName | slugify}}/branches/{{patchInfo.branchName | slugify}}/files/{{ hunk.fileName | slugify}}.html">{{ hunk.fileName }}:{{ hunk.lineNumber }}</a></span>
{%- for lineNumber in hunk.beforeText | lineNumbers -%}
<pre data-start="{{hunk.lineNumber}}"><code data-type="before" class="line-numbers language-{{hunk.fileName | languageExtension(patchInfo.repoName)}}">{{hunk.beforeText | safe}}</code></pre>
55
<pre data-start="{{hunk.lineNumber}}"><code data-type="after" class="line-numbers language-{{hunk.file | languageExtension(patchInfo.repoName)}}">{{ hunk.afterText | safe}}</code></pre>
55
<pre data-start="{{hunk.lineNumber}}"><code data-type="after" class="line-numbers language-{{hunk.fileName | languageExtension(patchInfo.repoName)}}">{{ hunk.afterText | safe}}</code></pre>