-
Notifications
You must be signed in to change notification settings - Fork 54
Expand file tree
/
Copy pathgitCacheKeys.ts
More file actions
79 lines (75 loc) · 3.19 KB
/
Copy pathgitCacheKeys.ts
File metadata and controls
79 lines (75 loc) · 3.19 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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import { resolveService } from "@posthog/di/container";
import {
IMPERATIVE_QUERY_CLIENT,
type ImperativeQueryClient,
} from "../../shell/queryClient";
import {
GIT_CACHE_KEY_PROVIDER,
type GitCacheKeyProvider,
} from "./gitCacheProvider";
export function invalidateGitWorkingTreeQueries(repoPath: string) {
const queryClient = resolveService<ImperativeQueryClient>(
IMPERATIVE_QUERY_CLIENT,
);
const provider = resolveService<GitCacheKeyProvider>(GIT_CACHE_KEY_PROVIDER);
const input = { directoryPath: repoPath };
queryClient.invalidateQueries(
provider.gitQueryFilter("getChangedFilesHead", input),
);
queryClient.invalidateQueries(provider.gitQueryFilter("getDiffStats", input));
queryClient.invalidateQueries(provider.gitPathFilter("getDiffCached"));
queryClient.invalidateQueries(provider.gitPathFilter("getDiffUnstaged"));
}
export function invalidateGitBranchQueries(repoPath: string) {
// A branch/index change (stage, commit, checkout) also changes the working
// tree, so the diff and changed-file queries must refresh too.
invalidateGitWorkingTreeQueries(repoPath);
const queryClient = resolveService<ImperativeQueryClient>(
IMPERATIVE_QUERY_CLIENT,
);
const provider = resolveService<GitCacheKeyProvider>(GIT_CACHE_KEY_PROVIDER);
const input = { directoryPath: repoPath };
queryClient.invalidateQueries(
provider.gitQueryFilter("getCurrentBranch", input),
);
queryClient.invalidateQueries(
provider.gitQueryFilter("getAllBranches", input),
);
queryClient.invalidateQueries(
provider.gitQueryFilter("getGitBusyState", input),
);
queryClient.invalidateQueries(
provider.gitQueryFilter("getGitSyncStatus", input),
);
queryClient.invalidateQueries(
provider.gitQueryFilter("getLatestCommit", input),
);
queryClient.invalidateQueries(provider.gitQueryFilter("getPrStatus", input));
queryClient.invalidateQueries(provider.gitPathFilter("getFileAtHead"));
queryClient.invalidateQueries(
provider.gitPathFilter("getLocalBranchChangedFiles"),
);
queryClient.invalidateQueries(provider.gitPathFilter("getPrChangedFiles"));
queryClient.invalidateQueries(
provider.gitPathFilter("getBranchChangedFiles"),
);
}
export function clearGitReviewQueries() {
const queryClient = resolveService<ImperativeQueryClient>(
IMPERATIVE_QUERY_CLIENT,
);
const provider = resolveService<GitCacheKeyProvider>(GIT_CACHE_KEY_PROVIDER);
queryClient.removeQueries(provider.gitPathFilter("getDiffCached"));
queryClient.removeQueries(provider.gitPathFilter("getDiffUnstaged"));
queryClient.removeQueries(provider.gitPathFilter("getFileAtHead"));
queryClient.removeQueries(provider.fsPathFilter("readRepoFile"));
queryClient.removeQueries(provider.fsPathFilter("readRepoFiles"));
queryClient.removeQueries(provider.fsPathFilter("readRepoFileBounded"));
queryClient.removeQueries(provider.fsPathFilter("readRepoFilesBounded"));
queryClient.removeQueries(
provider.gitPathFilter("getLocalBranchChangedFiles"),
);
queryClient.removeQueries(provider.gitPathFilter("getPrChangedFiles"));
queryClient.removeQueries(provider.gitPathFilter("getPrDetailsByUrl"));
queryClient.removeQueries(provider.gitPathFilter("getPrReviewComments"));
}