1+ import Foundation
12import GoTrue
23import PostgREST
34import Realtime
@@ -16,29 +17,29 @@ import SupabaseStorage
1617///
1718/// For more usage information read the README.md
1819public class SupabaseClient {
19- private var supabaseUrl : String
20+ private var supabaseURL : URL
2021 private var supabaseKey : String
2122 private var schema : String
22- private var restUrl : String
23- private var realtimeUrl : String
24- private var authUrl : String
25- private var storageUrl : String
23+ private var restURL : URL
24+ private var realtimeURL : URL
25+ private var authURL : URL
26+ private var storageURL : URL
2627
27- /// Auth client for Supabase
28- public var auth : GoTrueClient
28+ /// Auth client for Supabase.
29+ public let auth : GoTrueClient
2930
3031 /// Storage client for Supabase.
3132 public var storage : SupabaseStorageClient {
3233 var headers : [ String : String ] = defaultHeaders
3334 headers [ " Authorization " ] = " Bearer \( auth. session? . accessToken ?? supabaseKey) "
34- return SupabaseStorageClient ( url: storageUrl , headers: headers)
35+ return SupabaseStorageClient ( url: storageURL . absoluteString , headers: headers)
3536 }
3637
3738 /// Database client for Supabase.
3839 public var database : PostgrestClient {
3940 var headers : [ String : String ] = defaultHeaders
4041 headers [ " Authorization " ] = " Bearer \( auth. session? . accessToken ?? supabaseKey) "
41- return PostgrestClient ( url: restUrl , headers: headers, schema: schema)
42+ return PostgrestClient ( url: restURL . absoluteString , headers: headers, schema: schema)
4243 }
4344
4445 /// Realtime client for Supabase
@@ -48,31 +49,30 @@ public class SupabaseClient {
4849
4950 /// Init `Supabase` with the provided parameters.
5051 /// - Parameters:
51- /// - supabaseUrl : Unique Supabase project url
52+ /// - supabaseURL : Unique Supabase project url
5253 /// - supabaseKey: Supabase anonymous API Key
5354 /// - schema: Database schema name, defaults to `public`
5455 /// - autoRefreshToken: Toggles whether `Supabase.auth` automatically refreshes auth tokens. Defaults to `true`
5556 public init (
56- supabaseUrl : String ,
57+ supabaseURL : URL ,
5758 supabaseKey: String ,
5859 schema: String = " public " ,
5960 autoRefreshToken: Bool = true
6061 ) {
61- self . supabaseUrl = supabaseUrl
62+ self . supabaseURL = supabaseURL
6263 self . supabaseKey = supabaseKey
6364 self . schema = schema
64- restUrl = " \( supabaseUrl ) /rest/v1 "
65- realtimeUrl = " \( supabaseUrl ) /realtime/v1 "
66- authUrl = " \( supabaseUrl ) /auth/v1 "
67- storageUrl = " \( supabaseUrl ) /storage/v1 "
65+ restURL = supabaseURL . appendingPathComponent ( " /rest/v1 " )
66+ realtimeURL = supabaseURL . appendingPathComponent ( " /realtime/v1 " )
67+ authURL = supabaseURL . appendingPathComponent ( " /auth/v1 " )
68+ storageURL = supabaseURL . appendingPathComponent ( " /storage/v1 " )
6869
69- defaultHeaders = [ " X-Client-Info " : " supabase-swift/0.0.5 " , " apikey " : supabaseKey]
70+ defaultHeaders = [ " X-Client-Info " : " supabase-swift/0.0.4 " , " apikey " : supabaseKey]
7071
7172 auth = GoTrueClient (
72- url: authUrl,
73- headers: defaultHeaders,
74- autoRefreshToken: autoRefreshToken
73+ url: authURL,
74+ headers: defaultHeaders
7575 )
76- realtime = RealtimeClient ( endPoint: realtimeUrl , params: defaultHeaders)
76+ realtime = RealtimeClient ( endPoint: realtimeURL . absoluteString , params: defaultHeaders)
7777 }
7878}
0 commit comments