This commit is contained in:
Christoph Brandau
2026-06-27 13:03:07 +02:00
commit 3b9d636fdb
25 changed files with 9890 additions and 0 deletions
+75
View File
@@ -0,0 +1,75 @@
import { invoke } from "@tauri-apps/api/core";
import type { GitBranch, GitCommit, GitRepositoryFile, GitStatus } from "./types";
export function openRepository(path: string): Promise<GitStatus> {
return invoke<GitStatus>("open_repository", { path });
}
export function getStatus(path: string): Promise<GitStatus> {
return invoke<GitStatus>("get_status", { path });
}
export function listBranches(path: string): Promise<GitBranch[]> {
return invoke<GitBranch[]>("list_branches", { path });
}
export function checkoutBranch(path: string, branch: string): Promise<GitStatus> {
return invoke<GitStatus>("checkout_branch", { path, branch });
}
export function stageFiles(path: string, files: string[]): Promise<GitStatus> {
return invoke<GitStatus>("stage_files", { path, files });
}
export function unstageFiles(path: string, files: string[]): Promise<GitStatus> {
return invoke<GitStatus>("unstage_files", { path, files });
}
export function restoreFiles(
path: string,
files: string[],
staged: boolean,
): Promise<GitStatus> {
return invoke<GitStatus>("restore_files", { path, files, staged });
}
export function commit(path: string, message: string): Promise<GitStatus> {
return invoke<GitStatus>("commit", { path, message });
}
export function pull(path: string): Promise<GitStatus> {
return invoke<GitStatus>("pull", { path });
}
export function push(path: string): Promise<GitStatus> {
return invoke<GitStatus>("push", { path });
}
export function listCommits(path: string, limit = 100): Promise<GitCommit[]> {
return invoke<GitCommit[]>("list_commits", { path, limit });
}
export function restoreToCommit(path: string, commit: string): Promise<GitStatus> {
return invoke<GitStatus>("restore_to_commit", { path, commit });
}
export function restoreFileFromCommit(
path: string,
commit: string,
file: string,
): Promise<GitStatus> {
return invoke<GitStatus>("restore_file_from_commit", { path, commit, file });
}
export function mergeBranch(path: string, branch: string): Promise<GitStatus> {
return invoke<GitStatus>("merge_branch", { path, branch });
}
export function listRepositoryFiles(path: string): Promise<GitRepositoryFile[]> {
return invoke<GitRepositoryFile[]>("list_repository_files", { path });
}
export function listFileHistory(path: string, file: string, limit = 100): Promise<GitCommit[]> {
return invoke<GitCommit[]>("list_file_history", { path, file, limit });
}