@@ -14,6 +14,7 @@ module Supabase.Supabase
1414 , SessionData
1515 , SignInOptions
1616 , StatusR
17+ , class Or
1718 , User
1819 , class Equals
1920 , class Select
@@ -25,6 +26,7 @@ module Supabase.Supabase
2526 , invoke
2627 , maybeSingle
2728 , onAuthStateChange
29+ , or
2830 , range
2931 , select
3032 , getUser
@@ -127,6 +129,18 @@ else instance (YogaJson.ReadForeign output) => Equals FilterBuilder (Aff output)
127129 equals :: String -> String -> FilterBuilder -> Aff output
128130 equals l r builder = runFn2 (eqRunImpl builder) l r # Promise.toAffE >>= Util.fromJSON
129131
132+foreign import orImpl :: forall builderIn builderOut. Array String -> builderIn -> builderOut
133+
134+class Or builder output | output -> builder where
135+ or :: Array String -> builder -> output
136+
137+instance Or FilterBuilder FilterBuilder where
138+ or :: Array String -> FilterBuilder -> FilterBuilder
139+ or keys fb = orImpl keys fb
140+else instance Or QueryBuilder FilterBuilder where
141+ or :: Array String -> QueryBuilder -> FilterBuilder
142+ or keys fb = orImpl keys fb
143+
130144foreign import singleImpl :: FilterBuilder -> Effect (Promise Foreign)
131145
132146single :: forall t. YogaJson.ReadForeign t => FilterBuilder -> Aff (Response t)
@@ -216,4 +230,3 @@ getUser client = do
216230 Just user, _ -> pure $ Right user
217231 _, Just error -> pure $ Left error
218232 _, _ -> pure $ Left (error "Unexpected response error")
219−