11import type { SquareCloudBlob } from ".." ;
2- import { SquareCloudBlobError } from "../structures/error " ;
2+ import { BlobObject } from "../structures/object " ;
33import type { CreateObjectResponse , CreateObjectType } from "../types/create" ;
44import type { ListObjectsResponse } from "../types/list" ;
55import { MimeTypeUtil } from "../utils/mimetype" ;
6- import { parsePathLike } from "../utils/pathlike " ;
6+ import { parsePathLike } from "../utils/path-like " ;
77import { assertCreateObjectResponse } from "../validation/assertions/create" ;
88import { assertListObjectsResponse } from "../validation/assertions/list" ;
99import { createObjectPayloadSchema } from "../validation/schemas/create" ;
@@ -22,8 +22,23 @@ export class ObjectsManager {
2222 async list ( ) {
2323 const { response } =
2424 await this . client . api . request < ListObjectsResponse > ( "objects" ) ;
25+ const list = assertListObjectsResponse ( response ) ;
2526
26- return assertListObjectsResponse ( response ) ?. objects ;
27+ if ( ! list . objects ) {
28+ return [ ] ;
29+ }
30+
31+ return list . objects . map (
32+ ( object ) =>
33+ new BlobObject ( {
34+ idOrUrl : object . id ,
35+ size : object . size ,
36+ createdAt : new Date ( object . created_at ) ,
37+ expiresAt : object . expires_at
38+ ? new Date ( object . expires_at )
39+ : undefined ,
40+ } ) ,
41+ ) ;
2742 }
2843
2944 /**
@@ -56,7 +71,12 @@ export class ObjectsManager {
5671 } ,
5772 ) ;
5873
59- return assertCreateObjectResponse ( response ) ;
74+ const objectData = assertCreateObjectResponse ( response ) ;
75+
76+ return new BlobObject ( {
77+ idOrUrl : objectData . id ,
78+ size : objectData . size ,
79+ } ) ;
6080 }
6181
6282 /**
@@ -79,27 +99,4 @@ export class ObjectsManager {
7999
80100 return status === "success" ;
81101 }
82-
83- /**
84- * Parses the object URL to extract id, prefix, and name.
85- *
86- * @param url - The object URL to parse.
87- */
88- parseObjectUrl ( url : string ) {
89- const pattern =
90- / ^ h t t p s : \/ \/ p u b l i c - b l o b \. s q u a r e c l o u d \. d e v \/ ( [ ^ \/ ] + ) \/ ( [ ^ \/ ] + \/ ) ? ( [ ^ _ ] + ) _ [ \w - ] + \. \w + $ / ;
91- const match = pattern . exec ( url ) ;
92-
93- if ( ! match ) {
94- throw new SquareCloudBlobError (
95- "INVALID_BLOB_URL" ,
96- "Invalid blob object URL" ,
97- ) ;
98- }
99-
100- let [ , id , prefix , name ] = match ;
101- prefix = prefix ? prefix . slice ( 0 , - 1 ) : "" ;
102-
103- return { id, prefix, name } ;
104- }
105102}
0 commit comments