forked from steveukx/git-js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgit-response-error.ts
35 lines (30 loc) · 1021 Bytes
/
git-response-error.ts
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
import { GitError } from './git-error';
/**
* The `GitResponseError` is the wrapper for a parsed response that is treated as
* a fatal error, for example attempting a `merge` can leave the repo in a corrupted
* state when there are conflicts so the task will reject rather than resolve.
*
* For example, catching the merge conflict exception:
*
* ```typescript
import { gitP, SimpleGit, GitResponseError, MergeSummary } from 'simple-git';
const git = gitP(repoRoot);
const mergeOptions: string[] = ['--no-ff', 'other-branch'];
const mergeSummary: MergeSummary = await git.merge(mergeOptions)
.catch((e: GitResponseError<MergeSummary>) => e.git);
if (mergeSummary.failed) {
// deal with the error
}
```
*/
export class GitResponseError<T = any> extends GitError {
constructor(
/**
* `.git` access the parsed response that is treated as being an error
*/
public readonly git: T,
message?: string,
) {
super(undefined, message || String(git));
}
}