git.iko.soy/rowtype-yoga/purescript-supabase
on main help sign in
Make upsert return inserted row
commit825cbb7f3cb7dc2cd8999980ab12a59037a9deae authorMark Eibes <mark.eibes@gmail.com> dateSun 19 Feb 2023, 01:17 (4 years ago) parent75e529c
2 files changed+8−7
src/Supabase/Supabase.js+3−2 src/Supabase/Supabase.purs+5−5
src/Supabase/Supabase.js+3−2
@@ -31,8 +31,9 @@ export const maybeSingleImpl = (filterBuilder) => () =>
3131
3232export const rangeImpl = (from) => (to) => (filterBuilder) => () =>
3333 filterBuilder.range(from, to);
34−export const upsertImpl = (queryBuilder) => (values) =>
35− queryBuilder.upsert(values);
34+
35+export const upsertImpl = (queryBuilder) => (values) => () =>
36+ queryBuilder.upsert(values).select();
3637
3738export const selectRunImpl = (queryBuilder) => (input) => () =>
3839 queryBuilder.select(input);
src/Supabase/Supabase.purs+5−5
@@ -80,10 +80,10 @@ foreign import fromImpl :: Client -> String -> QueryBuilder
8080from ∷ String → Client -> QueryBuilder
8181from s c = fromImpl c s
8282
83−foreign import upsertImpl :: QueryBuilder -> Foreign -> FilterBuilder
83+foreign import upsertImpl :: QueryBuilder -> Foreign -> Effect (Promise Foreign)
8484
85−upsert ∷ ∀ (values ∷ Type). WriteForeign values => values → QueryBuilder → FilterBuilder
86−upsert v q = upsertImpl q $ writeImpl v
85+upsert ∷ ∀ (values ∷ Type) result. WriteForeign values => ReadForeign result => values → QueryBuilder → Aff (Response (Array result))
86+upsert v q = (upsertImpl q $ writeImpl v) # Promise.toAffE >>= Util.fromJSON
8787
8888foreign import selectRunImpl :: forall input. FilterBuilder -> input -> Effect (Promise Foreign)
8989
@@ -151,9 +151,9 @@ foreign import signOutImpl :: Client -> Effect (Promise Unit)
151151signOut ∷ Client → Aff Unit
152152signOut client = signOutImpl client # Promise.toAffE
153153
154−foreign import onAuthStateChangeImpl :: Client -> (EffectFn1 (Nullable Session) Unit) -> Effect Unit
154+foreign import onAuthStateChangeImpl :: Client -> (EffectFn1 (Nullable Session) Unit) -> Effect { unsubscribe :: Effect Unit }
155155
156−onAuthStateChange ∷ Client → (Maybe Session → Effect Unit) → Effect Unit
156+onAuthStateChange ∷ Client → (Maybe Session → Effect Unit) → Effect { unsubscribe :: Effect Unit }
157157onAuthStateChange client handler = onAuthStateChangeImpl client $ mkEffectFn1 (Nullable.toMaybe >>> handler)
158158
159159type User = { id :: String, email :: String }