Skip to content

Commit 322d629

Browse files
committed
Refactor installations
1 parent 99bceab commit 322d629

File tree

4 files changed

+33
-60
lines changed

4 files changed

+33
-60
lines changed

firebase-common/src/jsMain/kotlin/dev/gitlive/firebase/externals.kt

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,17 @@
22
* Copyright (c) 2020 GitLive Ltd. Use of this source code is governed by the Apache 2.0 license.
33
*/
44

5-
@file:JsModule("firebase/compat/app")
6-
75
package dev.gitlive.firebase
86

9-
import kotlin.js.Json
7+
import dev.gitlive.firebase.externals.database.DataSnapshot
8+
import dev.gitlive.firebase.externals.functions.HttpsCallable
9+
import dev.gitlive.firebase.externals.functions.HttpsCallableResult
1010
import kotlin.js.Promise
1111

12-
@JsName("default")
13-
external object firebase {
14-
15-
open class App {
16-
}
17-
18-
interface FirebaseError {
19-
var code: String
20-
var message: String
21-
var name: String
22-
}
23-
24-
fun installations(app: App? = definedExternally): installations.Installations
12+
typealias ChangeSnapshotCallback = (data: DataSnapshot, previousChildName: String?) -> Unit
13+
typealias ValueSnapshotCallback = (data: DataSnapshot) -> Unit
14+
typealias CancelCallback = (error: Throwable) -> Unit
15+
typealias Unsubscribe = () -> Unit
2516

26-
object installations {
27-
interface Installations {
28-
fun delete(): Promise<Unit>
29-
fun getId(): Promise<String>
30-
fun getToken(forceRefresh: Boolean): Promise<String>
31-
}
32-
}
33-
}
17+
operator fun HttpsCallable.invoke() = asDynamic()() as Promise<HttpsCallableResult>
18+
operator fun HttpsCallable.invoke(data: Any?) = asDynamic()(data) as Promise<HttpsCallableResult>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
@file:JsModule("firebase/installations")
2+
@file:JsNonModule
3+
4+
package dev.gitlive.firebase.externals.installations
5+
6+
import dev.gitlive.firebase.externals.app.FirebaseApp
7+
import kotlin.js.Promise
8+
9+
external fun delete(installations: Installations): Promise<Unit>
10+
11+
external fun getId(installations: Installations): Promise<String>
12+
13+
external fun getInstallations(app: FirebaseApp? = definedExternally): Installations
14+
15+
external fun getToken(installations: Installations, forceRefresh: Boolean): Promise<String>
16+
17+
external interface Installations

firebase-common/src/jsMain/kotlin/dev/gitlive/firebase/externals2.kt

Lines changed: 0 additions & 24 deletions
This file was deleted.

firebase-installations/src/jsMain/kotlin/dev/gitlive/firebase/installations/installations.kt

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,23 @@
11
package dev.gitlive.firebase.installations
22

33
import dev.gitlive.firebase.*
4+
import dev.gitlive.firebase.externals.installations.*
45
import kotlinx.coroutines.await
56

67
actual val Firebase.installations
7-
get() = rethrow {
8-
dev.gitlive.firebase.installations
9-
FirebaseInstallations(firebase.installations())
10-
}
8+
get() = rethrow { FirebaseInstallations(getInstallations()) }
119

1210
actual fun Firebase.installations(app: FirebaseApp) =
13-
rethrow {
14-
dev.gitlive.firebase.installations
15-
FirebaseInstallations(firebase.installations(app.js))
16-
}
11+
rethrow { FirebaseInstallations(getInstallations(app.js)) }
1712

18-
actual class FirebaseInstallations internal constructor(val js: firebase.installations.Installations) {
13+
actual class FirebaseInstallations internal constructor(val js: Installations) {
1914

20-
actual suspend fun delete() = rethrow { js.delete().await() }
15+
actual suspend fun delete() = rethrow { delete(js).await() }
2116

22-
actual suspend fun getId(): String = rethrow { js.getId().await() }
17+
actual suspend fun getId(): String = rethrow { getId(js).await() }
2318

2419
actual suspend fun getToken(forceRefresh: Boolean): String =
25-
rethrow { js.getToken(forceRefresh).await() }
20+
rethrow { getToken(js, forceRefresh).await() }
2621
}
2722

2823
actual open class FirebaseInstallationsException(code: String?, cause: Throwable): FirebaseException(code, cause)

0 commit comments

Comments
 (0)