@@ -27,10 +27,10 @@ module Supabase.Supabase
27 , signInWithOtp
27 , signInWithOtp
35import Prelude
35import Prelude
@@ -122,11 +122,14 @@ else instance (YogaJson.ReadForeign output) => Equals FilterBuilder (Aff output)
123foreign import singleImpl :: FilterBuilder -> Effect (Promise Foreign)
123foreign import singleImpl :: FilterBuilder -> Effect (Promise Foreign)
125−--type ResultResponse d = { "data" :: Maybe d, status :: Int, error :: Maybe ResultError }
127single :: forall t. YogaJson.ReadForeign t => FilterBuilder -> Aff (Response t)
125single :: forall t. YogaJson.ReadForeign t => FilterBuilder -> Aff (Response t)
128single = singleImpl >>> Promise.toAffE >=> Util.fromJSON
126single = singleImpl >>> Promise.toAffE >=> Util.fromJSON
128+foreign import maybeSingleImpl :: FilterBuilder -> Effect (Promise Foreign)
130+maybeSingle :: forall t. YogaJson.ReadForeign t => FilterBuilder -> Aff (Response t)
131+maybeSingle = maybeSingleImpl >>> Promise.toAffE >=> Util.fromJSON
130foreign import rangeImpl :: forall i. i -> i -> FilterBuilder -> Effect (Promise Foreign)
133foreign import rangeImpl :: forall i. i -> i -> FilterBuilder -> Effect (Promise Foreign)
132type CountResponse t = { | DataR t + ErrorR + CountR + StatusR + () }
135type CountResponse t = { | DataR t + ErrorR + CountR + StatusR + () }
@@ -170,14 +173,14 @@ foreign import getSessionImpl :: Client -> Effect (Promise Foreign)
170getSession :: Client -> Aff (Response SessionData)
173getSession :: Client -> Aff (Response SessionData)
171getSession client = getSessionImpl client # Promise.toAffE >>= Util.fromJSON
174getSession client = getSessionImpl client # Promise.toAffE >>= Util.fromJSON
173−type InternalFunctionResponse d = { "data" :: Nullable d, error :: Nullable { message :: String, context :: YogaJson.Core.Response}}
176+type InternalFunctionResponse d = { "data" :: Nullable d, error :: Nullable { message :: String, context :: YogaJson.Core.Response } }
174−foreign import invokeImpl :: forall body headers t. Client -> Fn3 String body headers (Effect $ Promise $ InternalFunctionResponse t)
176−type FunctionResponse d = { "data" :: Maybe d, error :: Maybe { message :: String, context :: Fetch.Response}}
178+foreign import invokeImpl :: forall body headers t. Client -> Fn3 String body headers (Effect $ Promise $ InternalFunctionResponse t)
180+type FunctionResponse d = { "data" :: Maybe d, error :: Maybe { message :: String, context :: Fetch.Response } }
179invoke ∷ forall t body headers. ReadForeign t ⇒ Client → String → body → headers → Aff (FunctionResponse t)
182invoke ∷ forall t body headers. ReadForeign t ⇒ Client → String → body → headers → Aff (FunctionResponse t)
180invoke client fn body headers = runFn3 (invokeImpl client) fn body headers # Promise.toAffE <#> convert
183invoke client fn body headers = runFn3 (invokeImpl client) fn body headers # Promise.toAffE <#> convert
182− convertError { message, context } = { message, context: FetchInternalResponse.convert context}
185+ convertError { message, context } = { message, context: FetchInternalResponse.convert context }
183− convert { "data": d, error } = { "data": Nullable.toMaybe d, error: Nullable.toMaybe error <#> convertError}
186+ convert { "data": d, error } = { "data": Nullable.toMaybe d, error: Nullable.toMaybe error <#> convertError }