Files snapshot from file-caching-performance-improvements

./src/dataTypes.ts

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
cdb797 Tucker McKnight
cdb797 Tucker McKnight
cdb797 Tucker McKnight
cdb797 Tucker McKnight
cdb797 Tucker McKnight
cdb797 Tucker McKnight
cdb797 Tucker McKnight
cdb797 Tucker McKnight
3e9007 Tucker McKnight
3e9007 Tucker McKnight
3e9007 Tucker McKnight
3e9007 Tucker McKnight
3e9007 Tucker McKnight
c759cb Tucker McKnight
3e9007 Tucker McKnight
3e9007 Tucker McKnight
3e9007 Tucker McKnight
3e9007 Tucker McKnight
3e9007 Tucker McKnight
3e9007 Tucker McKnight
3e9007 Tucker McKnight
3e9007 Tucker McKnight
3e9007 Tucker McKnight
268685 Tucker McKnight
929902 Tucker McKnight
929902 Tucker McKnight
929902 Tucker McKnight
bc3cc7 Tucker McKnight
929902 Tucker McKnight
929902 Tucker McKnight
01b859 Tucker McKnight
4eaa3d Tucker McKnight
4eaa3d Tucker McKnight
4eaa3d Tucker McKnight
b30bd9 Tucker McKnight
f7c4e5 Tucker McKnight
929902 Tucker McKnight
f7c4e5 Tucker McKnight
782f36 Tucker McKnight
929902 Tucker McKnight
929902 Tucker McKnight
f7c4e5 Tucker McKnight
929902 Tucker McKnight
3e9007 Tucker McKnight
929902 Tucker McKnight
88b515 Tucker McKnight
88b515 Tucker McKnight
88b515 Tucker McKnight
88b515 Tucker McKnight
88b515 Tucker McKnight
88b515 Tucker McKnight
import { type BlameInfo } from "./vcses/git/operations.ts"

export type FileInfo = {
  contents: string,
  lastModified: Date,
  blameLines: Array<BlameInfo>,
}

export type Commit = {
  hash: string,
  message: string,
  isMerge: boolean,
  author: string,
  parent: string | null,
  date: Date,
  diffs: Array<{
    fileName: string,
    lineNumber: number,
    beforeText: string,
    afterText: string,
  }>
}

export type Repository = {
  name: string,
  description?: string,
  cloneUrl: string,
  defaultBranch: string,
  branches: Array<{
    name: string,
    description?: string,
    ahead: number,
    behind: number,
    compareTo: string,
    sha: string,
    fileList: Set<string>,
  }>,
  files: (filename: string, sha: string) => Promise<FileInfo>,
  tags?: Array<{
    name: string,
    sha: string,
    fileList: Set<string>,
  }>,
  commits?: Map<string, Commit>,
}

export type SortedFileList = Array<{
  name: string,
  fullPath: string,
  isDirectory: boolean,
}>