@@ -14,10 +14,22 @@ import Helpers
14
14
import WatchKit
15
15
#endif
16
16
17
- typealias AuthClientID = UUID
17
+ typealias AuthClientID = Int
18
+
19
+ struct AuthClientLoggerDecorator : SupabaseLogger {
20
+ let clientID : AuthClientID
21
+ let decoratee : any SupabaseLogger
22
+
23
+ func log( message: SupabaseLogMessage ) {
24
+ var message = message
25
+ message. additionalContext [ " client_id " ] = . integer( clientID)
26
+ decoratee. log ( message: message)
27
+ }
28
+ }
18
29
19
30
public final class AuthClient : Sendable {
20
- let clientID = AuthClientID ( )
31
+ static let globalClientID = LockIsolated ( 0 )
32
+ let clientID : AuthClientID
21
33
22
34
private var api : APIClient { Dependencies [ clientID] . api }
23
35
var configuration : AuthClient . Configuration { Dependencies [ clientID] . configuration }
@@ -71,13 +83,21 @@ public final class AuthClient: Sendable {
71
83
/// - Parameters:
72
84
/// - configuration: The client configuration.
73
85
public init ( configuration: Configuration ) {
86
+ clientID = AuthClient . globalClientID. withValue {
87
+ $0 += 1
88
+ return $0
89
+ }
90
+
74
91
Dependencies [ clientID] = Dependencies (
75
92
configuration: configuration,
76
93
http: HTTPClient ( configuration: configuration) ,
77
94
api: APIClient ( clientID: clientID) ,
78
95
codeVerifierStorage: . live( clientID: clientID) ,
79
96
sessionStorage: . live( clientID: clientID) ,
80
- sessionManager: . live( clientID: clientID)
97
+ sessionManager: . live( clientID: clientID) ,
98
+ logger: configuration. logger. map {
99
+ AuthClientLoggerDecorator ( clientID: clientID, decoratee: $0)
100
+ }
81
101
)
82
102
83
103
Task { @MainActor in observeAppLifecycleChanges ( ) }
0 commit comments