Skip to content

Commit 126e10a

Browse files
committed
Adds util to get a ref from a ref class
1 parent be8024f commit 126e10a

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

src/git/utils/-webview/reference.utils.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,27 @@
11
import type { GitBranch } from '../../models/branch';
2+
import { isBranch } from '../../models/branch';
23
import type { GitCommit, GitStashCommit } from '../../models/commit';
3-
import type { GitBranchReference, GitRevisionReference, GitTagReference } from '../../models/reference';
4+
import { isCommit } from '../../models/commit';
5+
import type { GitBranchReference, GitReference, GitRevisionReference, GitTagReference } from '../../models/reference';
46
import type { GitTag } from '../../models/tag';
7+
import { isTag } from '../../models/tag';
58
import { createReference } from '../reference.utils';
69

10+
export function getReference(ref: GitReference): GitReference;
11+
export function getReference(ref: GitReference | undefined): GitReference | undefined;
12+
export function getReference(ref: GitReference | undefined): GitReference | undefined {
13+
if (ref == null) return undefined;
14+
15+
switch (ref.refType) {
16+
case 'branch':
17+
return isBranch(ref) ? getReferenceFromBranch(ref) : ref;
18+
case 'tag':
19+
return isTag(ref) ? getReferenceFromTag(ref) : ref;
20+
default:
21+
return isCommit(ref) ? getReferenceFromRevision(ref) : ref;
22+
}
23+
}
24+
725
export function getReferenceFromBranch(branch: GitBranch): GitBranchReference {
826
return createReference(branch.ref, branch.repoPath, {
927
id: branch.id,

0 commit comments

Comments
 (0)