44package dev.gitlive.firebase.storage.externals
55
66import dev.gitlive.firebase.externals.FirebaseApp
7+ import kotlin.js.Json
78import kotlin.js.Promise
89
9- public external fun getStorage (app : FirebaseApp ? = definedExternally, url : String ): FirebaseStorage
10+ external fun getStorage (app : FirebaseApp ? = definedExternally, bucketUrl : String ): FirebaseStorage
1011
1112public external fun getStorage (app : FirebaseApp ? = definedExternally): FirebaseStorage
1213
13- public external fun ref (storage : FirebaseStorage , url : String? = definedExternally): StorageReference
14- public external fun ref (ref : StorageReference , url : String? = definedExternally): StorageReference
14+ external fun ref (storage : FirebaseStorage , url : String? = definedExternally): StorageReference
15+ external fun ref (ref : StorageReference , path : String? = definedExternally): StorageReference
1516
1617public external fun getDownloadURL (ref : StorageReference ): Promise <String >
1718
18- public external fun getMetadata (ref : StorageReference ): Promise <StorageMetadata >
19+ external fun getMetadata (ref : StorageReference ): Promise <FullMetadata >
20+ external fun updateMetadata (ref : StorageReference , metadata : SettableMetadata ): Promise <FullMetadata >
1921
20- public external fun uploadBytes (ref : StorageReference , file : dynamic , metadata : StorageMetadata ? ): Promise <Unit >
22+ external fun uploadBytes (ref : StorageReference , file : dynamic , metadata : Json ? ): Promise <UploadResult >
23+ external fun uploadBytesResumable (ref : StorageReference , data : dynamic , metadata : Json ? ): UploadTask
2124
22- public external fun uploadBytesResumable (ref : StorageReference , data : dynamic , metadata : StorageMetadata ? ): UploadTask
25+ external fun deleteObject (ref : StorageReference ): Promise < Unit >
2326
24- public external fun deleteObject (ref : StorageReference ): Promise <Unit >
27+ external fun list (ref : StorageReference , options : ListOptions ? ): Promise <ListResult >
28+ external fun listAll (ref : StorageReference ): Promise <ListResult >
2529
26- public external fun listAll (ref : StorageReference ): Promise <ListResult >
27-
28- public external fun connectStorageEmulator (
30+ external fun connectStorageEmulator (
2931 storage : FirebaseStorage ,
3032 host : String ,
3133 port : Double ,
@@ -46,44 +48,63 @@ public external interface StorageReference {
4648 public val storage: FirebaseStorage
4749}
4850
49- public open external class ListResult {
50- public val items: Array <StorageReference >
51- public val nextPageToken: String
52- public val prefixes: Array <StorageReference >
51+ external interface ListOptions {
52+ val maxResults: Double?
53+ val pageToken: String?
54+ }
55+
56+ external interface ListResult {
57+ val items: Array <StorageReference >
58+ val nextPageToken: String
59+ val prefixes: Array <StorageReference >
5360}
5461
5562public external interface StorageError
5663
57- public external interface UploadTaskSnapshot {
58- public val bytesTransferred: Number
59- public val ref: StorageReference
60- public val state: String
61- public val task: UploadTask
62- public val totalBytes: Number
64+ external interface SettableMetadata {
65+ val cacheControl: String?
66+ val contentDisposition: String?
67+ val contentEncoding: String?
68+ val contentLanguage: String?
69+ val contentType: String?
70+ val customMetadata: Json ?
71+ }
72+
73+ external interface UploadMetadata : SettableMetadata {
74+ val md5Hash: String?
75+ }
76+
77+ external interface FullMetadata : UploadMetadata {
78+ val bucket: String
79+ val downloadTokens: Array <String >?
80+ val fullPath: String
81+ val generation: String
82+ val metageneration: String
83+ val name: String
84+ val ref: StorageReference ?
85+ val size: Double
86+ val timeCreated: String
87+ val updated: String
88+ }
89+
90+ external interface UploadResult {
91+ val metadata: FullMetadata
92+ val ref: StorageReference
6393}
6494
65- public external class StorageMetadata {
66- public val bucket: String?
67- public var cacheControl: String?
68- public var contentDisposition: String?
69- public var contentEncoding: String?
70- public var contentLanguage: String?
71- public var contentType: String?
72- public var customMetadata: Map <String , String >?
73- public val fullPath: String?
74- public val generation: String?
75- public val md5Hash: String?
76- public val metageneration: String?
77- public val name: String?
78- public val size: Number ?
79- public val timeCreated: String?
80- public val updated: String?
95+ external interface UploadTask {
96+ fun cancel (): Boolean
97+ fun on (event : String , next : (snapshot: UploadTaskSnapshot ) -> Unit , error : (a: StorageError ) -> Unit , complete : () -> Unit ): () -> Unit
98+ fun pause (): Boolean
99+ fun resume (): Boolean
100+ fun then (onFulfilled : ((UploadTaskSnapshot ) -> Unit )? , onRejected : ((StorageError ) -> Unit )? ): Promise <Unit >
101+ val snapshot: UploadTaskSnapshot
81102}
82103
83- public external class UploadTask : Promise < UploadTaskSnapshot > {
84- public fun cancel (): Boolean
85- public fun on ( event : String , next : (snapshot: UploadTaskSnapshot ) -> Unit , error : (a: StorageError ) -> Unit , complete : () -> Unit ): () -> Unit
86- public fun pause (): Boolean
87- public fun resume (): Boolean
88- public val snapshot : UploadTaskSnapshot
104+ external interface UploadTaskSnapshot {
105+ val bytesTransferred : Double
106+ val ref : StorageReference
107+ val state : String
108+ val task : UploadTask
109+ val totalBytes : Double
89110}
0 commit comments