4
4
package dev.gitlive.firebase.storage.externals
5
5
6
6
import dev.gitlive.firebase.externals.FirebaseApp
7
+ import kotlin.js.Json
7
8
import kotlin.js.Promise
8
9
9
- public external fun getStorage (app : FirebaseApp ? = definedExternally, url : String ): FirebaseStorage
10
+ external fun getStorage (app : FirebaseApp ? = definedExternally, bucketUrl : String ): FirebaseStorage
10
11
11
12
public external fun getStorage (app : FirebaseApp ? = definedExternally): FirebaseStorage
12
13
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
15
16
16
17
public external fun getDownloadURL (ref : StorageReference ): Promise <String >
17
18
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 >
19
21
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
21
24
22
- public external fun uploadBytesResumable (ref : StorageReference , data : dynamic , metadata : StorageMetadata ? ): UploadTask
25
+ external fun deleteObject (ref : StorageReference ): Promise < Unit >
23
26
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 >
25
29
26
- public external fun listAll (ref : StorageReference ): Promise <ListResult >
27
-
28
- public external fun connectStorageEmulator (
30
+ external fun connectStorageEmulator (
29
31
storage : FirebaseStorage ,
30
32
host : String ,
31
33
port : Double ,
@@ -46,44 +48,63 @@ public external interface StorageReference {
46
48
public val storage: FirebaseStorage
47
49
}
48
50
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 >
53
60
}
54
61
55
62
public external interface StorageError
56
63
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
63
93
}
64
94
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
81
102
}
82
103
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
89
110
}
0 commit comments