diff --git a/src/core/AnonymizedFile.ts b/src/core/AnonymizedFile.ts index 3fdfd76..0f9cbe1 100644 --- a/src/core/AnonymizedFile.ts +++ b/src/core/AnonymizedFile.ts @@ -131,7 +131,7 @@ export default class AnonymizedFile { span.setAttribute("file", this.anonymizedPath); try { span.setAttribute("anonymizedPath", this.anonymizedPath); - if (!this.anonymizedPath) { + if (this.anonymizedPath == null) { throw new AnonymousError("path_not_specified", { object: this, httpStatus: 400, diff --git a/src/core/source/GitHubStream.ts b/src/core/source/GitHubStream.ts index d3f12ac..1b369ad 100644 --- a/src/core/source/GitHubStream.ts +++ b/src/core/source/GitHubStream.ts @@ -205,7 +205,7 @@ export default class GitHubStream extends GitHubBase { }); } } - const promises: Promise[] = []; + const promises: ReturnType[] = []; const parentPaths: string[] = []; for (const file of data.tree) { if (file.type == "tree" && file.path && file.sha) { @@ -224,6 +224,9 @@ export default class GitHubStream extends GitHubBase { } } (await Promise.all(promises)).forEach((data, i) => { + if (data.truncated) { + // TODO: the tree is truncated + } output.push(...this.tree2Tree(data.tree, parentPaths[i])); }); return output; diff --git a/src/server/routes/webview.ts b/src/server/routes/webview.ts index a5205b5..d0f510e 100644 --- a/src/server/routes/webview.ts +++ b/src/server/routes/webview.ts @@ -41,25 +41,23 @@ async function webView(req: express.Request, res: express.Response) { }); } - let wRoot = repo.options.pageSource.path; - if (wRoot.at(0) == "/") { - wRoot = wRoot.substring(1); - } + const wRoot = repo.options.pageSource.path; + const filePath = req.path.split(req.params.repoId)[1]; let requestPath = path.join(wRoot, filePath); + if (requestPath.at(0) == "/") { + requestPath = requestPath.substring(1); + } let f = new AnonymizedFile({ repository: repo, anonymizedPath: requestPath, }); - if ( - requestPath.at(-1) == "/" && - req.headers.accept?.includes("text/html") - ) { + if (requestPath == "" && req.headers.accept?.includes("text/html")) { // look for index file const candidates = await repo.files({ recursive: false, - path: await f.originalPath(), + path: "", }); let bestMatch = null;