From ca3d1116751c5faf10babadf165f3cd4b8252d24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adem=C3=ADlson=20F=2E=20Tonato?= Date: Wed, 13 Jan 2021 21:18:05 +0000 Subject: [PATCH] feat: add EventTypes as a Type --- src/lib/SupabaseQueryBuilder.ts | 4 ++-- src/lib/SupabaseRealtimeClient.ts | 4 ++-- src/lib/types.ts | 2 ++ 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/lib/SupabaseQueryBuilder.ts b/src/lib/SupabaseQueryBuilder.ts index 69f8c50ff..0c102e7c1 100644 --- a/src/lib/SupabaseQueryBuilder.ts +++ b/src/lib/SupabaseQueryBuilder.ts @@ -1,7 +1,7 @@ import { PostgrestQueryBuilder } from '@supabase/postgrest-js' import { SupabaseRealtimeClient } from './SupabaseRealtimeClient' import { RealtimeClient } from '@supabase/realtime-js' -import { SupabaseRealtimePayload } from './types' +import { SupabaseEventTypes, SupabaseRealtimePayload } from './types' export class SupabaseQueryBuilder extends PostgrestQueryBuilder { private _subscription: SupabaseRealtimeClient @@ -33,7 +33,7 @@ export class SupabaseQueryBuilder extends PostgrestQueryBuilder { * @param callback A callback that will handle the payload that is sent whenever your database changes. */ on( - event: 'INSERT' | 'UPDATE' | 'DELETE' | '*', + event: SupabaseEventTypes, callback: (payload: SupabaseRealtimePayload) => void ): SupabaseRealtimeClient { if (!this._realtime.isConnected()) { diff --git a/src/lib/SupabaseRealtimeClient.ts b/src/lib/SupabaseRealtimeClient.ts index f540faeb1..b6c693601 100644 --- a/src/lib/SupabaseRealtimeClient.ts +++ b/src/lib/SupabaseRealtimeClient.ts @@ -1,5 +1,5 @@ import { RealtimeSubscription, RealtimeClient, Transformers } from '@supabase/realtime-js' -import { SupabaseRealtimePayload } from './types' +import { SupabaseEventTypes, SupabaseRealtimePayload } from './types' export class SupabaseRealtimeClient { subscription: RealtimeSubscription @@ -15,7 +15,7 @@ export class SupabaseRealtimeClient { * @param event The event * @param callback A callback function that is called whenever the event occurs. */ - on(event: 'INSERT' | 'UPDATE' | 'DELETE' | '*', callback: Function) { + on(event: SupabaseEventTypes, callback: Function) { this.subscription.on(event, (payload: any) => { let enrichedPayload: SupabaseRealtimePayload = { schema: payload.schema, diff --git a/src/lib/types.ts b/src/lib/types.ts index ac74781ef..a52d56ffb 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -35,3 +35,5 @@ export type SupabaseRealtimePayload = { /** The previous record. Present for 'UPDATE' and 'DELETE' events. */ old: T } + +export type SupabaseEventTypes = 'INSERT' | 'UPDATE' | 'DELETE' | '*'