Skip to content

Commit 21375d3

Browse files
committed
fix(typing): add typeguards to upload result parsing
Adds typeguards and updates the parsing of failed and successful file uploads for readability
1 parent a03832a commit 21375d3

File tree

1 file changed

+26
-20
lines changed

1 file changed

+26
-20
lines changed

src/controllers/UploadController.ts

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,24 @@ import {
1616
UploadFailedError,
1717
} from "../lib/uploads/errors.js";
1818

19+
// Type definitions and guards at module scope
20+
type UploadResult = {
21+
cid: string;
22+
fileName: string;
23+
};
24+
25+
function isSuccessfulUpload(
26+
result: PromiseSettledResult<UploadResult>,
27+
): result is PromiseFulfilledResult<UploadResult> {
28+
return result.status === "fulfilled";
29+
}
30+
31+
function isFailedUpload(
32+
result: PromiseSettledResult<UploadResult>,
33+
): result is PromiseRejectedResult {
34+
return result.status === "rejected";
35+
}
36+
1937
/**
2038
* Controller handling file uploads to IPFS storage
2139
* @class UploadController
@@ -156,28 +174,16 @@ export class UploadController extends Controller {
156174
);
157175

158176
const successful = uploadResults
159-
.filter(
160-
(
161-
result,
162-
): result is PromiseFulfilledResult<{
163-
cid: string;
164-
fileName: string;
165-
}> => result.status === "fulfilled",
166-
)
177+
.filter(isSuccessfulUpload)
167178
.map((result) => result.value);
168179

169-
const failed = uploadResults
170-
.filter(
171-
(result): result is PromiseRejectedResult =>
172-
result.status === "rejected",
173-
)
174-
.map((result) => {
175-
const error = result.reason as UploadFailedError;
176-
return {
177-
fileName: error.fileName,
178-
error: error.errorDetail,
179-
};
180-
});
180+
const failed = uploadResults.filter(isFailedUpload).map((result) => {
181+
const error = result.reason as UploadFailedError;
182+
return {
183+
fileName: error.fileName,
184+
error: error.errorDetail,
185+
};
186+
});
181187

182188
if (failed.length > 0) {
183189
const data = {

0 commit comments

Comments
 (0)