Repository navigation
Expand file tree
/
Copy pathgit-service.ts
More file actions
42 lines (39 loc) · 1.77 KB
/
Copy pathgit-service.ts
File metadata and controls
42 lines (39 loc) · 1.77 KB
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
import { createDiffEngine } from './diff-engine.js';
import { createCommitHistoryOperations } from './commit-history.js';
import { createComparisonOperations } from './comparison.js';
import { createConflictOperations } from './conflicts.js';
import { createStashOperations } from './stashes.js';
import { createFileHistoryOperations } from './file-history.js';
import { createStatusOperations } from './status.js';
import { createWorktreeOperations } from './worktrees.js';
import { createQuickSummaryOperations } from './quick-summary.js';
import { GitReviewDocumentRegistry } from './review-document-registry.js';
import { createReviewDocumentOperations } from './review-document-service.js';
import type { GitOperations } from './types.js';
export function createGitOperations({ assertProjectPathAllowed, reviewRegistry = new GitReviewDocumentRegistry() }: {
assertProjectPathAllowed?(projectPath: string): Promise<string>;
reviewRegistry?: GitReviewDocumentRegistry;
} = {}): GitOperations {
const status = createStatusOperations();
const diff = createDiffEngine(reviewRegistry);
const commitHistory = createCommitHistoryOperations(reviewRegistry);
const comparison = createComparisonOperations(reviewRegistry, assertProjectPathAllowed);
const reviewDocuments = createReviewDocumentOperations(reviewRegistry);
const conflicts = createConflictOperations();
const stashes = createStashOperations();
const fileHistory = createFileHistoryOperations();
const worktrees = createWorktreeOperations({ assertProjectPathAllowed });
const quickSummary = createQuickSummaryOperations();
return {
...status,
...diff,
...commitHistory,
...comparison,
...reviewDocuments,
...conflicts,
...stashes,
...fileHistory,
...worktrees,
...quickSummary,
};
}