diff --git a/packages/sdk/src/modules/repos.ts b/packages/sdk/src/modules/repos.ts index 18ddbf9..ebbf426 100644 --- a/packages/sdk/src/modules/repos.ts +++ b/packages/sdk/src/modules/repos.ts @@ -56,14 +56,32 @@ export async function reposRead( } // All requests succeeded - extract the file contents - const files = results + const fileResults = results .filter(isOk) - .map((result) => { + .map((result, index) => { const response = result.value; - const entry = Array.isArray(response) ? response[0]! : response; - return mapFileContent(entry); + if (Array.isArray(response)) { + if (response.length === 0) { + return err(ReposError({ + message: "Empty contents response for path", + statusCode: null, + repo, + path: cleanedPaths[index] + })); + } + return ok(mapFileContent(response[0])); + } + return ok(mapFileContent(response)); }); + for (const fileResult of fileResults) { + if (isErr(fileResult)) { + return fileResult; + } + } + + const files = fileResults.filter(isOk).map((result) => result.value); + return ok({ repo, files }); }