Skip to content

Commit f8764c2

Browse files
authored
[nodegit] Add IndexerProgress types for RemoteCallbacks.transferProgress callback (DefinitelyTyped#74260)
1 parent f7773e7 commit f8764c2

File tree

2 files changed

+40
-1
lines changed

2 files changed

+40
-1
lines changed

types/nodegit/nodegit-tests.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,9 +153,20 @@ revwalk.fastWalk(100).then(oids => {
153153
}
154154
});
155155

156+
const pushOptions: Git.PushOptions = {
157+
callbacks: {
158+
pushTransferProgress: (
159+
pushedObjects, // $ExpectType number
160+
totalObjects, // $ExpectType number
161+
pushedBytes, // $ExpectType number
162+
) => {},
163+
},
164+
};
165+
156166
Git.Remote.create(repo, "test-repository", "https://github.com/test-repository/test-repository").then(remote => {
157167
remote.connect(Git.Enums.DIRECTION.FETCH, {});
158168
remote.defaultBranch(); // $ExpectType Promise<string>
169+
remote.push([], pushOptions);
159170
});
160171

161172
Git.Worktree.list(repo).then(list => {
@@ -220,6 +231,14 @@ const cloneOptions: Git.CloneOptions = {
220231
fetchOpts: {
221232
callbacks: {
222233
credentials: () => Git.Credential.sshKeyFromAgent("git"),
234+
transferProgress: (progress) => {
235+
progress.indexedDeltas(); // $ExpectType number
236+
progress.indexedObjects(); // $ExpectType number
237+
progress.localObjects(); // $ExpectType number
238+
progress.receivedBytes(); // $ExpectType number
239+
progress.receivedObjects(); // $ExpectType number
240+
progress.totalObjects(); // $ExpectType number
241+
},
223242
},
224243
},
225244
};

types/nodegit/remote-callbacks.d.ts

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,27 @@ export class RemoteCallbacks {
22
version?: number | undefined;
33
credentials?: Function | undefined;
44
certificateCheck?: Function | undefined;
5-
transferProgress?: Function | undefined;
5+
/** Progress callback for push operations */
6+
pushTransferProgress?: PushTransferProgressCallback;
7+
/** Progress callback for fetch and clone operations */
8+
transferProgress?: (progress: IndexerProgress) => unknown;
69
transport?: Function | undefined;
710
payload?: undefined;
811
}
12+
13+
/** @see https://libgit2.org/docs/reference/main/remote/git_push_transfer_progress_cb.html */
14+
export type PushTransferProgressCallback = (
15+
pushedObjects: number,
16+
totalObjects: number,
17+
pushedBytes: number,
18+
) => unknown;
19+
20+
export interface IndexerProgress {
21+
indexedDeltas: () => number;
22+
indexedObjects: () => number;
23+
localObjects: () => number;
24+
receivedBytes: () => number;
25+
receivedObjects: () => number;
26+
totalDeltas: () => number;
27+
totalObjects: () => number;
28+
}

0 commit comments

Comments
 (0)