@hardlydifficult/repo-processor 1.0.141 → 1.0.143
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +126 -274
- package/dist/GitYamlStore.d.ts +27 -40
- package/dist/GitYamlStore.d.ts.map +1 -1
- package/dist/GitYamlStore.js +155 -142
- package/dist/GitYamlStore.js.map +1 -1
- package/dist/RepoProcessor.d.ts +22 -22
- package/dist/RepoProcessor.d.ts.map +1 -1
- package/dist/RepoProcessor.js +188 -103
- package/dist/RepoProcessor.js.map +1 -1
- package/dist/RepoWatcher.d.ts +19 -62
- package/dist/RepoWatcher.d.ts.map +1 -1
- package/dist/RepoWatcher.js +74 -103
- package/dist/RepoWatcher.js.map +1 -1
- package/dist/index.d.ts +1 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -5
- package/dist/index.js.map +1 -1
- package/dist/internalTypes.d.ts +42 -0
- package/dist/internalTypes.d.ts.map +1 -0
- package/dist/internalTypes.js +3 -0
- package/dist/internalTypes.js.map +1 -0
- package/dist/resolveDirectories.d.ts +3 -12
- package/dist/resolveDirectories.d.ts.map +1 -1
- package/dist/resolveDirectories.js +9 -24
- package/dist/resolveDirectories.js.map +1 -1
- package/dist/types.d.ts +66 -56
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -11
package/dist/RepoProcessor.js
CHANGED
|
@@ -1,175 +1,260 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RepoProcessor = void 0;
|
|
4
|
+
exports.createRepoProcessorForTests = createRepoProcessorForTests;
|
|
4
5
|
const collections_1 = require("@hardlydifficult/collections");
|
|
5
6
|
const github_1 = require("@hardlydifficult/github");
|
|
6
7
|
const text_1 = require("@hardlydifficult/text");
|
|
8
|
+
const GitYamlStore_js_1 = require("./GitYamlStore.js");
|
|
9
|
+
const RepoWatcher_js_1 = require("./RepoWatcher.js");
|
|
7
10
|
const resolveDirectories_js_1 = require("./resolveDirectories.js");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
function parseRepoReference(value, label) {
|
|
12
|
+
const parsed = (0, github_1.parseGitHubRepoReference)(value);
|
|
13
|
+
if (parsed === null) {
|
|
14
|
+
throw new Error(`Invalid ${label}: ${value}. Expected "owner/repo" or a GitHub URL.`);
|
|
15
|
+
}
|
|
16
|
+
return {
|
|
17
|
+
owner: parsed.owner,
|
|
18
|
+
name: parsed.repo,
|
|
19
|
+
fullName: `${parsed.owner}/${parsed.repo}`,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function formatFailures(label, failures) {
|
|
23
|
+
const details = failures
|
|
24
|
+
.map((failure) => ` ${failure.path}: ${(0, text_1.getErrorMessage)(failure.reason)}`)
|
|
25
|
+
.join("\n");
|
|
26
|
+
return new Error(`${String(failures.length)} ${label} failed to process:\n${details}`);
|
|
27
|
+
}
|
|
28
|
+
/** Incrementally processes repository files/directories and stores derived results. */
|
|
14
29
|
class RepoProcessor {
|
|
15
|
-
|
|
30
|
+
static open(options) {
|
|
31
|
+
const repo = parseRepoReference(options.repo, "repo");
|
|
32
|
+
const resultsRepo = parseRepoReference(options.results.repo, "results repo");
|
|
33
|
+
const githubToken = options.githubToken ?? process.env.GH_PAT ?? process.env.GITHUB_TOKEN;
|
|
34
|
+
const github = new github_1.GitHubClient({ token: githubToken });
|
|
35
|
+
const sourceRepo = github.repo(repo.fullName);
|
|
36
|
+
const { processDirectory } = options;
|
|
37
|
+
const store = new GitYamlStore_js_1.GitYamlStore({
|
|
38
|
+
sourceRepo: repo,
|
|
39
|
+
resultsRepo,
|
|
40
|
+
localPath: options.results.directory,
|
|
41
|
+
root: options.results.root ?? "repos",
|
|
42
|
+
branch: options.results.branch,
|
|
43
|
+
authToken: githubToken,
|
|
44
|
+
gitUser: options.results.gitUser,
|
|
45
|
+
});
|
|
46
|
+
return Promise.resolve(new RepoProcessor({
|
|
47
|
+
repo,
|
|
48
|
+
repoClient: {
|
|
49
|
+
getFileTree(ref) {
|
|
50
|
+
return sourceRepo.tree(ref);
|
|
51
|
+
},
|
|
52
|
+
getFileContent(filePath, ref) {
|
|
53
|
+
return sourceRepo.read(filePath, ref);
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
store,
|
|
57
|
+
ref: options.ref,
|
|
58
|
+
concurrency: options.concurrency ?? 5,
|
|
59
|
+
include: options.include ?? (() => true),
|
|
60
|
+
processFile: (input) => options.processFile(input),
|
|
61
|
+
processDirectory: processDirectory === undefined
|
|
62
|
+
? undefined
|
|
63
|
+
: (input) => processDirectory(input),
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
repoRef;
|
|
67
|
+
repoClient;
|
|
16
68
|
store;
|
|
17
|
-
|
|
69
|
+
ref;
|
|
18
70
|
concurrency;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
this.
|
|
24
|
-
this.
|
|
25
|
-
this.
|
|
71
|
+
include;
|
|
72
|
+
processFileHandler;
|
|
73
|
+
processDirectoryHandler;
|
|
74
|
+
constructor(internals) {
|
|
75
|
+
this.repoRef = internals.repo;
|
|
76
|
+
this.repoClient = internals.repoClient;
|
|
77
|
+
this.store = internals.store;
|
|
78
|
+
this.ref = internals.ref;
|
|
79
|
+
this.concurrency = internals.concurrency;
|
|
80
|
+
this.include = internals.include;
|
|
81
|
+
const { processDirectory } = internals;
|
|
82
|
+
this.processFileHandler = (input) => internals.processFile(input);
|
|
83
|
+
this.processDirectoryHandler =
|
|
84
|
+
processDirectory === undefined
|
|
85
|
+
? undefined
|
|
86
|
+
: (input) => processDirectory(input);
|
|
87
|
+
}
|
|
88
|
+
get repo() {
|
|
89
|
+
return this.repoRef.fullName;
|
|
26
90
|
}
|
|
27
|
-
async run(
|
|
91
|
+
async run(options = {}) {
|
|
92
|
+
const { onProgress } = options;
|
|
28
93
|
const emitProgress = (phase, message, filesTotal, filesCompleted, dirsTotal, dirsCompleted) => {
|
|
29
94
|
onProgress?.({
|
|
30
95
|
phase,
|
|
31
96
|
message,
|
|
32
|
-
filesTotal,
|
|
33
|
-
|
|
34
|
-
dirsTotal,
|
|
35
|
-
dirsCompleted,
|
|
97
|
+
files: { total: filesTotal, completed: filesCompleted },
|
|
98
|
+
directories: { total: dirsTotal, completed: dirsCompleted },
|
|
36
99
|
});
|
|
37
100
|
};
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
emitProgress("loading", "Fetching file tree...", 0, 0, 0, 0);
|
|
43
|
-
const { entries, rootSha } = await this.github
|
|
44
|
-
.repo(owner, repo)
|
|
45
|
-
.getFileTree();
|
|
101
|
+
emitProgress("loading", "Initializing results store...", 0, 0, 0, 0);
|
|
102
|
+
await this.store.ensureReady();
|
|
103
|
+
emitProgress("loading", "Fetching source tree...", 0, 0, 0, 0);
|
|
104
|
+
const { entries, rootSha } = await this.repoClient.getFileTree(this.ref);
|
|
46
105
|
const tree = [
|
|
47
106
|
...entries,
|
|
48
107
|
{ path: "", type: "tree", sha: rootSha },
|
|
49
108
|
];
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
109
|
+
const blobs = entries.filter((entry) => {
|
|
110
|
+
if (entry.type !== "blob") {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
return this.include({
|
|
114
|
+
path: entry.path,
|
|
115
|
+
sha: entry.sha,
|
|
116
|
+
size: entry.size,
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
const currentManifest = await this.store.getFileManifest();
|
|
54
120
|
const diff = (0, github_1.diffTree)(blobs, currentManifest);
|
|
55
121
|
const filesTotal = diff.changedFiles.length;
|
|
56
122
|
let filesCompleted = 0;
|
|
57
|
-
emitProgress("files",
|
|
58
|
-
|
|
123
|
+
emitProgress("files", filesTotal === 0
|
|
124
|
+
? "No files to process."
|
|
125
|
+
: `Processing ${String(filesTotal)} files...`, filesTotal, 0, 0, 0);
|
|
126
|
+
const fileFailures = [];
|
|
59
127
|
for (const batch of (0, collections_1.inBatches)(diff.changedFiles, this.concurrency)) {
|
|
60
128
|
const results = await Promise.allSettled(batch.map(async (entry) => {
|
|
61
|
-
const content = await this.
|
|
62
|
-
|
|
63
|
-
.
|
|
64
|
-
|
|
65
|
-
|
|
129
|
+
const content = await this.repoClient.getFileContent(entry.path, this.ref);
|
|
130
|
+
const result = await this.processFileHandler({
|
|
131
|
+
repo: this.repo,
|
|
132
|
+
path: entry.path,
|
|
133
|
+
sha: entry.sha,
|
|
134
|
+
content,
|
|
135
|
+
});
|
|
136
|
+
await this.store.writeFileResult(entry.path, entry.sha, result);
|
|
66
137
|
}));
|
|
67
|
-
const failures = [];
|
|
68
138
|
let succeededCount = 0;
|
|
69
|
-
for (let
|
|
70
|
-
const result = results[
|
|
139
|
+
for (let index = 0; index < results.length; index++) {
|
|
140
|
+
const result = results[index];
|
|
71
141
|
filesCompleted++;
|
|
72
142
|
if (result.status === "rejected") {
|
|
73
|
-
|
|
74
|
-
path: batch[
|
|
143
|
+
fileFailures.push({
|
|
144
|
+
path: batch[index]?.path ?? `unknown-${String(index)}`,
|
|
75
145
|
reason: result.reason,
|
|
76
146
|
});
|
|
77
147
|
}
|
|
78
148
|
else {
|
|
79
149
|
succeededCount++;
|
|
80
150
|
}
|
|
81
|
-
emitProgress("files", `Files: ${String(filesCompleted)}/${String(filesTotal)}`, filesTotal, filesCompleted,
|
|
82
|
-
}
|
|
83
|
-
if (failures.length > 0) {
|
|
84
|
-
const details = failures
|
|
85
|
-
.map((f) => ` ${f.path}: ${(0, text_1.getErrorMessage)(f.reason)}`)
|
|
86
|
-
.join("\n");
|
|
87
|
-
throw new Error(`${String(failures.length)} file(s) failed to process:\n${details}`);
|
|
151
|
+
emitProgress("files", `Files: ${String(filesCompleted)}/${String(filesTotal)}`, filesTotal, filesCompleted, 0, 0);
|
|
88
152
|
}
|
|
89
153
|
if (succeededCount > 0) {
|
|
90
|
-
await this.store.commitBatch(
|
|
154
|
+
await this.store.commitBatch(this.repo, succeededCount);
|
|
91
155
|
}
|
|
92
156
|
}
|
|
93
|
-
|
|
157
|
+
if (fileFailures.length > 0) {
|
|
158
|
+
throw formatFailures("file(s)", fileFailures);
|
|
159
|
+
}
|
|
94
160
|
for (const removedPath of diff.removedFiles) {
|
|
95
|
-
await this.store.deleteFileResult(
|
|
161
|
+
await this.store.deleteFileResult(removedPath);
|
|
96
162
|
}
|
|
97
163
|
if (diff.removedFiles.length > 0) {
|
|
98
|
-
await this.store.commitBatch(
|
|
164
|
+
await this.store.commitBatch(this.repo, diff.removedFiles.length);
|
|
99
165
|
}
|
|
100
|
-
// 7. Resolve stale directories
|
|
101
|
-
const allFilePaths = blobs.map((b) => b.path);
|
|
102
|
-
const allDirs = await (0, resolveDirectories_js_1.resolveStaleDirectories)(owner, repo, diff.staleDirs, allFilePaths, tree, this.store);
|
|
103
166
|
let dirsCompleted = 0;
|
|
104
|
-
if (
|
|
105
|
-
|
|
106
|
-
|
|
167
|
+
if (this.processDirectoryHandler !== undefined) {
|
|
168
|
+
const allFilePaths = blobs.map((blob) => blob.path);
|
|
169
|
+
const allDirs = await (0, resolveDirectories_js_1.resolveStaleDirectories)(diff.staleDirs, allFilePaths, tree, this.store);
|
|
170
|
+
emitProgress("directories", allDirs.length === 0
|
|
171
|
+
? "No directories to process."
|
|
172
|
+
: `Processing ${String(allDirs.length)} directories...`, filesTotal, filesCompleted, allDirs.length, 0);
|
|
173
|
+
const directoryFailures = [];
|
|
107
174
|
for (const dirsAtDepth of (0, collections_1.bottomUp)(allDirs)) {
|
|
108
|
-
let
|
|
175
|
+
let succeededCount = 0;
|
|
109
176
|
for (const batch of (0, collections_1.inBatches)(dirsAtDepth, this.concurrency)) {
|
|
110
177
|
const results = await Promise.allSettled(batch.map(async (dirPath) => {
|
|
111
|
-
const
|
|
112
|
-
const result = await this.
|
|
113
|
-
await this.store.writeDirResult(
|
|
178
|
+
const directory = this.buildDirectoryInput(dirPath, tree, allFilePaths);
|
|
179
|
+
const result = await this.processDirectoryHandler?.(directory);
|
|
180
|
+
await this.store.writeDirResult(dirPath, directory.sha, result);
|
|
114
181
|
}));
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
const result = results[i];
|
|
182
|
+
for (let index = 0; index < results.length; index++) {
|
|
183
|
+
const result = results[index];
|
|
118
184
|
dirsCompleted++;
|
|
119
|
-
dirsInDepthGroup++;
|
|
120
185
|
if (result.status === "rejected") {
|
|
121
|
-
|
|
122
|
-
path: batch[
|
|
186
|
+
directoryFailures.push({
|
|
187
|
+
path: batch[index] ?? `unknown-${String(index)}`,
|
|
123
188
|
reason: result.reason,
|
|
124
189
|
});
|
|
125
190
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
.map((f) => ` ${f.path}: ${(0, text_1.getErrorMessage)(f.reason)}`)
|
|
131
|
-
.join("\n");
|
|
132
|
-
throw new Error(`${String(failures.length)} directory(ies) failed to process:\n${details}`);
|
|
191
|
+
else {
|
|
192
|
+
succeededCount++;
|
|
193
|
+
}
|
|
194
|
+
emitProgress("directories", `Directories: ${String(dirsCompleted)}/${String(allDirs.length)}`, filesTotal, filesCompleted, allDirs.length, dirsCompleted);
|
|
133
195
|
}
|
|
134
196
|
}
|
|
135
|
-
if (
|
|
136
|
-
await this.store.commitBatch(
|
|
197
|
+
if (succeededCount > 0) {
|
|
198
|
+
await this.store.commitBatch(this.repo, succeededCount);
|
|
137
199
|
}
|
|
138
200
|
}
|
|
201
|
+
if (directoryFailures.length > 0) {
|
|
202
|
+
throw formatFailures("directory(ies)", directoryFailures);
|
|
203
|
+
}
|
|
139
204
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
await this.store.commitBatch(owner, repo, 0);
|
|
205
|
+
emitProgress("committing", "Finalizing results...", filesTotal, filesCompleted, this.processDirectoryHandler === undefined ? 0 : dirsCompleted, dirsCompleted);
|
|
206
|
+
await this.store.commitBatch(this.repo, 0);
|
|
143
207
|
return {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
208
|
+
repo: this.repo,
|
|
209
|
+
sourceSha: rootSha,
|
|
210
|
+
processedFiles: filesCompleted,
|
|
211
|
+
removedFiles: diff.removedFiles.length,
|
|
212
|
+
processedDirectories: dirsCompleted,
|
|
147
213
|
};
|
|
148
214
|
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
215
|
+
async readFileResult(filePath, schema) {
|
|
216
|
+
return this.store.readFileResult(filePath, schema);
|
|
217
|
+
}
|
|
218
|
+
async readDirectoryResult(dirPath, schema) {
|
|
219
|
+
return this.store.readDirectoryResult(dirPath, schema);
|
|
220
|
+
}
|
|
221
|
+
async watch(options = {}) {
|
|
222
|
+
return RepoWatcher_js_1.RepoWatcher.open(this, options);
|
|
223
|
+
}
|
|
224
|
+
buildDirectoryInput(dirPath, tree, allFilePaths) {
|
|
225
|
+
const dirTreeEntry = tree.find((entry) => entry.type === "tree" && entry.path === dirPath);
|
|
152
226
|
const prefix = dirPath === "" ? "" : `${dirPath}/`;
|
|
153
|
-
const
|
|
154
|
-
// Build immediate children list
|
|
227
|
+
const files = allFilePaths.filter((filePath) => dirPath === "" || filePath.startsWith(prefix));
|
|
155
228
|
const seen = new Set();
|
|
156
229
|
const children = [];
|
|
157
|
-
for (const
|
|
158
|
-
const relative = prefix ?
|
|
230
|
+
for (const filePath of files) {
|
|
231
|
+
const relative = prefix === "" ? filePath : filePath.slice(prefix.length);
|
|
159
232
|
const slashIndex = relative.indexOf("/");
|
|
160
|
-
const
|
|
161
|
-
const childName =
|
|
162
|
-
if (
|
|
163
|
-
|
|
164
|
-
children.push({
|
|
165
|
-
name: childName,
|
|
166
|
-
isDir,
|
|
167
|
-
fullPath: dirPath === "" ? childName : `${dirPath}/${childName}`,
|
|
168
|
-
});
|
|
233
|
+
const isDirectory = slashIndex !== -1;
|
|
234
|
+
const childName = isDirectory ? relative.slice(0, slashIndex) : relative;
|
|
235
|
+
if (seen.has(childName)) {
|
|
236
|
+
continue;
|
|
169
237
|
}
|
|
238
|
+
seen.add(childName);
|
|
239
|
+
children.push({
|
|
240
|
+
name: childName,
|
|
241
|
+
path: dirPath === "" ? childName : `${dirPath}/${childName}`,
|
|
242
|
+
type: isDirectory ? "directory" : "file",
|
|
243
|
+
});
|
|
170
244
|
}
|
|
171
|
-
return {
|
|
245
|
+
return {
|
|
246
|
+
repo: this.repo,
|
|
247
|
+
path: dirPath,
|
|
248
|
+
sha: dirTreeEntry?.sha ?? "",
|
|
249
|
+
files,
|
|
250
|
+
children,
|
|
251
|
+
};
|
|
172
252
|
}
|
|
173
253
|
}
|
|
174
254
|
exports.RepoProcessor = RepoProcessor;
|
|
255
|
+
/** Creates a RepoProcessor instance using test doubles for internal dependencies. */
|
|
256
|
+
function createRepoProcessorForTests(internals) {
|
|
257
|
+
const RepoProcessorCtor = RepoProcessor;
|
|
258
|
+
return new RepoProcessorCtor(internals);
|
|
259
|
+
}
|
|
175
260
|
//# sourceMappingURL=RepoProcessor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RepoProcessor.js","sourceRoot":"","sources":["../src/RepoProcessor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RepoProcessor.js","sourceRoot":"","sources":["../src/RepoProcessor.ts"],"names":[],"mappings":";;;AA0aA,kEAWC;AArbD,8DAAmE;AACnE,oDAKiC;AACjC,gDAAwD;AAGxD,uDAAiD;AAMjD,qDAA+C;AAC/C,mEAAkE;AAWlE,SAAS,kBAAkB,CAAC,KAAa,EAAE,KAAa;IACtD,MAAM,MAAM,GAAG,IAAA,iCAAwB,EAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,WAAW,KAAK,KAAK,KAAK,0CAA0C,CACrE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,EAAE;KAC3C,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,KAAa,EACb,QAAsC;IAEtC,MAAM,OAAO,GAAG,QAAQ;SACrB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,KAAK,IAAA,sBAAe,EAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;SACzE,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,IAAI,KAAK,CACd,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,wBAAwB,OAAO,EAAE,CACrE,CAAC;AACJ,CAAC;AAED,uFAAuF;AACvF,MAAa,aAAa;IACxB,MAAM,CAAC,IAAI,CACT,OAAsD;QAEtD,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,kBAAkB,CACpC,OAAO,CAAC,OAAO,CAAC,IAAI,EACpB,cAAc,CACf,CAAC;QACF,MAAM,WAAW,GACf,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QACxE,MAAM,MAAM,GAAG,IAAI,qBAAY,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,8BAAY,CAAC;YAC7B,UAAU,EAAE,IAAI;YAChB,WAAW;YACX,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS;YACpC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO;YACrC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;YAC9B,SAAS,EAAE,WAAW;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO;SACjC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,OAAO,CACpB,IAAI,aAAa,CAAC;YAChB,IAAI;YACJ,UAAU,EAAE;gBACV,WAAW,CAAC,GAAuB;oBACjC,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9B,CAAC;gBACD,cAAc,CAAC,QAAgB,EAAE,GAAuB;oBACtD,OAAO,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACxC,CAAC;aACF;YACD,KAAK;YACL,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC;YACrC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YACxC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;YAClD,gBAAgB,EACd,gBAAgB,KAAK,SAAS;gBAC5B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC;SACzC,CAAC,CACH,CAAC;IACJ,CAAC;IAEgB,OAAO,CAAe;IACtB,UAAU,CAGX;IACC,KAAK,CAGX;IACM,GAAG,CAAqB;IACxB,WAAW,CAAS;IACpB,OAAO,CAGX;IACI,kBAAkB,CAGlB;IACA,uBAAuB,CAE1B;IAEd,YACE,SAA0D;QAE1D,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QACjC,MAAM,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;QACvC,IAAI,CAAC,kBAAkB,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAClE,IAAI,CAAC,uBAAuB;YAC1B,gBAAgB,KAAK,SAAS;gBAC5B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,GAAG,CACP,UAAmC,EAAE;QAErC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QAE/B,MAAM,YAAY,GAAG,CACnB,KAAqC,EACrC,OAAe,EACf,UAAkB,EAClB,cAAsB,EACtB,SAAiB,EACjB,aAAqB,EACf,EAAE;YACR,UAAU,EAAE,CAAC;gBACX,KAAK;gBACL,OAAO;gBACP,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE;gBACvD,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE;aAC5D,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,YAAY,CAAC,SAAS,EAAE,+BAA+B,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAE/B,YAAY,CAAC,SAAS,EAAE,yBAAyB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/D,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzE,MAAM,IAAI,GAAyB;YACjC,GAAG,OAAO;YACV,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE;SACzC,CAAC;QAEF,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAC1B,CAAC,KAAK,EAAyC,EAAE;YAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1B,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,IAAI,CAAC,OAAO,CAAC;gBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;QAEF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAC3D,MAAM,IAAI,GAAG,IAAA,iBAAQ,EAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QAE9C,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAC5C,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,YAAY,CACV,OAAO,EACP,UAAU,KAAK,CAAC;YACd,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,cAAc,MAAM,CAAC,UAAU,CAAC,WAAW,EAC/C,UAAU,EACV,CAAC,EACD,CAAC,EACD,CAAC,CACF,CAAC;QAEF,MAAM,YAAY,GAAwB,EAAE,CAAC;QAC7C,KAAK,MAAM,KAAK,IAAI,IAAA,uBAAS,EAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACnE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAClD,KAAK,CAAC,IAAI,EACV,IAAI,CAAC,GAAG,CACT,CAAC;gBACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC;oBAC3C,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,OAAO;iBACR,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAClE,CAAC,CAAC,CACH,CAAC;YAEF,IAAI,cAAc,GAAG,CAAC,CAAC;YACvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;gBACpD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC9B,cAAc,EAAE,CAAC;gBACjB,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBACjC,YAAY,CAAC,IAAI,CAAC;wBAChB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,WAAW,MAAM,CAAC,KAAK,CAAC,EAAE;wBACtD,MAAM,EAAE,MAAM,CAAC,MAAM;qBACtB,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,cAAc,EAAE,CAAC;gBACnB,CAAC;gBAED,YAAY,CACV,OAAO,EACP,UAAU,MAAM,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE,EACxD,UAAU,EACV,cAAc,EACd,CAAC,EACD,CAAC,CACF,CAAC;YACJ,CAAC;YAED,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,cAAc,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAChD,CAAC;QAED,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,uBAAuB,KAAK,SAAS,EAAE,CAAC;YAC/C,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,MAAM,IAAA,+CAAuB,EAC3C,IAAI,CAAC,SAAS,EACd,YAAY,EACZ,IAAI,EACJ,IAAI,CAAC,KAAK,CACX,CAAC;YAEF,YAAY,CACV,aAAa,EACb,OAAO,CAAC,MAAM,KAAK,CAAC;gBAClB,CAAC,CAAC,4BAA4B;gBAC9B,CAAC,CAAC,cAAc,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,EACzD,UAAU,EACV,cAAc,EACd,OAAO,CAAC,MAAM,EACd,CAAC,CACF,CAAC;YAEF,MAAM,iBAAiB,GAAwB,EAAE,CAAC;YAClD,KAAK,MAAM,WAAW,IAAI,IAAA,sBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC;gBAC5C,IAAI,cAAc,GAAG,CAAC,CAAC;gBAEvB,KAAK,MAAM,KAAK,IAAI,IAAA,uBAAS,EAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC7D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;wBAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CACxC,OAAO,EACP,IAAI,EACJ,YAAY,CACb,CAAC;wBACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC,SAAS,CAAC,CAAC;wBAC/D,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBAClE,CAAC,CAAC,CACH,CAAC;oBAEF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;wBACpD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;wBAC9B,aAAa,EAAE,CAAC;wBAChB,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;4BACjC,iBAAiB,CAAC,IAAI,CAAC;gCACrB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,WAAW,MAAM,CAAC,KAAK,CAAC,EAAE;gCAChD,MAAM,EAAE,MAAM,CAAC,MAAM;6BACtB,CAAC,CAAC;wBACL,CAAC;6BAAM,CAAC;4BACN,cAAc,EAAE,CAAC;wBACnB,CAAC;wBAED,YAAY,CACV,aAAa,EACb,gBAAgB,MAAM,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EACjE,UAAU,EACV,cAAc,EACd,OAAO,CAAC,MAAM,EACd,aAAa,CACd,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;YAED,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,MAAM,cAAc,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,YAAY,CACV,YAAY,EACZ,uBAAuB,EACvB,UAAU,EACV,cAAc,EACd,IAAI,CAAC,uBAAuB,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,EAC9D,aAAa,CACd,CAAC;QACF,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAE3C,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,OAAO;YAClB,cAAc,EAAE,cAAc;YAC9B,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM;YACtC,oBAAoB,EAAE,aAAa;SACpC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,MAAoB;QAEpB,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,OAAe,EACf,MAAoB;QAEpB,OAAO,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,KAAK,CACT,UAA8B,EAAE;QAEhC,OAAO,4BAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAEO,mBAAmB,CACzB,OAAe,EACf,IAA0B,EAC1B,YAA+B;QAE/B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAC5B,CAAC,KAAK,EAAyC,EAAE,CAC/C,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,CAClD,CAAC;QACF,MAAM,MAAM,GAAG,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC;QACnD,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAC/B,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,KAAK,EAAE,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAC5D,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,QAAQ,GAAyB,EAAE,CAAC;QAE1C,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC1E,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,WAAW,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC;YACtC,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAEzE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxB,SAAS;YACX,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACpB,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,SAAS,EAAE;gBAC5D,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM;aACzC,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE;YAC5B,KAAK;YACL,QAAQ;SACT,CAAC;IACJ,CAAC;CACF;AA3WD,sCA2WC;AAMD,qFAAqF;AACrF,SAAgB,2BAA2B,CAIzC,SAA0D;IAE1D,MAAM,iBAAiB,GAAG,aAGzB,CAAC;IACF,OAAO,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAC1C,CAAC"}
|
package/dist/RepoWatcher.d.ts
CHANGED
|
@@ -1,68 +1,25 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
/** Custom storage adapter (takes priority over stateDirectory). */
|
|
8
|
-
storageAdapter?: StorageAdapter;
|
|
9
|
-
/** Auto-save interval in milliseconds. Default 5000. */
|
|
10
|
-
autoSaveMs?: number;
|
|
11
|
-
/** The work to run for a repo. */
|
|
12
|
-
run: (owner: string, name: string) => Promise<TResult>;
|
|
13
|
-
/** Called after a successful run. */
|
|
14
|
-
onComplete?: (owner: string, name: string, result: TResult, sha: string) => void;
|
|
15
|
-
/** Called when a run fails. */
|
|
16
|
-
onError?: (owner: string, name: string, error: unknown) => void;
|
|
17
|
-
/** Logger/event callback. */
|
|
18
|
-
onEvent?: (event: StateTrackerEvent) => void;
|
|
19
|
-
/** Number of attempts (initial + retries). Default 1 (no retry). */
|
|
20
|
-
maxAttempts?: number;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Watches for SHA changes on GitHub repos and triggers processing.
|
|
24
|
-
*
|
|
25
|
-
* Handles state persistence (last-processed SHA per repo), concurrent run
|
|
26
|
-
* prevention, pending SHA re-triggers, and manual triggers. Consumers
|
|
27
|
-
* provide the `run` callback containing domain-specific logic.
|
|
28
|
-
*/
|
|
29
|
-
export declare class RepoWatcher<TResult = void> {
|
|
1
|
+
import type { RepoProcessor } from "./RepoProcessor.js";
|
|
2
|
+
import type { RepoProcessorRunResult, RepoWatcherOptions } from "./types.js";
|
|
3
|
+
/** Watches for repository updates and schedules processor runs with retries. */
|
|
4
|
+
export declare class RepoWatcher<TFileResult = unknown, TDirResult = never> {
|
|
5
|
+
static open<TFileResult, TDirResult>(processor: RepoProcessor<TFileResult, TDirResult>, options?: RepoWatcherOptions): Promise<RepoWatcher<TFileResult, TDirResult>>;
|
|
6
|
+
private readonly processor;
|
|
30
7
|
private readonly stateTracker;
|
|
31
|
-
private readonly
|
|
32
|
-
private readonly
|
|
33
|
-
private readonly
|
|
8
|
+
private readonly onComplete;
|
|
9
|
+
private readonly onError;
|
|
10
|
+
private readonly onEvent;
|
|
34
11
|
private readonly maxAttempts;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Queue a run unconditionally (no SHA comparison).
|
|
45
|
-
* Skips if already running. Returns false if skipped.
|
|
46
|
-
*/
|
|
47
|
-
trigger(owner: string, name: string): boolean;
|
|
48
|
-
/**
|
|
49
|
-
* Run processing synchronously (blocks until complete).
|
|
50
|
-
* Returns an error if already running.
|
|
51
|
-
*/
|
|
52
|
-
triggerManual(owner: string, name: string): Promise<{
|
|
53
|
-
success: true;
|
|
54
|
-
result: TResult;
|
|
55
|
-
} | {
|
|
56
|
-
success: false;
|
|
57
|
-
reason: string;
|
|
58
|
-
}>;
|
|
59
|
-
/** Check if a repo is currently being processed. */
|
|
60
|
-
isRunning(owner: string, name: string): boolean;
|
|
61
|
-
/** Get the last processed SHA for a repo key. */
|
|
62
|
-
getLastSha(key: string): string | undefined;
|
|
63
|
-
/** Persist a processed SHA for a repo key. */
|
|
64
|
-
setLastSha(key: string, sha: string): void;
|
|
12
|
+
private running;
|
|
13
|
+
private pendingSha;
|
|
14
|
+
private constructor();
|
|
15
|
+
handlePush(sha: string): void;
|
|
16
|
+
runNow(): Promise<RepoProcessorRunResult>;
|
|
17
|
+
isRunning(): boolean;
|
|
18
|
+
getLastSha(): string | undefined;
|
|
19
|
+
setLastSha(sha: string): void;
|
|
65
20
|
private queueRun;
|
|
21
|
+
private completeRun;
|
|
22
|
+
private flushPendingRun;
|
|
66
23
|
private executeWithRetry;
|
|
67
24
|
}
|
|
68
25
|
//# sourceMappingURL=RepoWatcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RepoWatcher.d.ts","sourceRoot":"","sources":["../src/RepoWatcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RepoWatcher.d.ts","sourceRoot":"","sources":["../src/RepoWatcher.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAU7E,gFAAgF;AAChF,qBAAa,WAAW,CAAC,WAAW,GAAG,OAAO,EAAE,UAAU,GAAG,KAAK;WACnD,IAAI,CAAC,WAAW,EAAE,UAAU,EACvC,SAAS,EAAE,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,EACjD,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAYhD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAEb;IACd,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IACjE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAqB;IAEvC,OAAO;IAaP,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAavB,MAAM,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAmB/C,SAAS,IAAI,OAAO;IAIpB,UAAU,IAAI,MAAM,GAAG,SAAS;IAIhC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI7B,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,eAAe;YAeT,gBAAgB;CAuB/B"}
|