@@ -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