UNPKG

@api-buddy/supabase

Version:

Supabase client and utilities for API Buddy

1 lines 3.42 kB
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @package @api-buddy/supabase\n * Supabase client and utilities for API Buddy\n */\n\nimport { createClient, SupabaseClient } from '@supabase/supabase-js';\nexport interface SupabaseConfig {\n url: string;\n anonKey: string;\n options?: {\n auth?: {\n autoRefreshToken?: boolean;\n persistSession?: boolean;\n detectSessionInUrl?: boolean;\n };\n };\n}\n\n/**\n * Extended Supabase client with API Buddy specific functionality\n */\nexport class SupabaseService {\n private client: SupabaseClient;\n private logger: {\n info: (message: string) => void;\n error: (message: string, error?: any) => void;\n };\n\n constructor(config: SupabaseConfig, logger?: any) {\n this.client = createClient(config.url, config.anonKey, config.options);\n this.logger = logger || {\n info: (message: string) => console.log(`[Supabase] ${message}`),\n error: (message: string, error?: any) => {\n const errorMessage = error ? `${message}: ${error.message || error}` : message;\n console.error(`[Supabase] ${errorMessage}`);\n if (error?.stack) {\n console.error(error.stack);\n }\n }\n };\n }\n\n /**\n * Get the underlying Supabase client\n */\n getClient(): SupabaseClient {\n return this.client;\n }\n\n /**\n * Execute a query with error handling\n */\n async query<T = any>(\n table: string,\n query: string,\n params?: Record<string, unknown>\n ): Promise<T | null> {\n try {\n const { data, error } = await this.client\n .from(table)\n .select(query)\n .match(params || {});\n\n if (error) {\n throw error;\n }\n\n this.logger.info(`Successfully executed query on table: ${table}`);\n return data as unknown as T;\n } catch (error: unknown) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n this.logger.error(`Supabase query error: ${errorMessage}`, { table, query, params });\n return null;\n }\n }\n}\n\n/**\n * Create a new Supabase service instance\n */\nexport function createSupabaseService(\n config: SupabaseConfig,\n logger?: any\n): SupabaseService {\n return new SupabaseService(config, logger);\n}\n\nexport * from '@supabase/supabase-js';\n"],"mappings":";AAKA,OAAS,gBAAAA,MAAoC,wBAkF7C,WAAc,wBAlEP,IAAMC,EAAN,KAAsB,CACnB,OACA,OAKR,YAAYC,EAAwBC,EAAc,CAChD,KAAK,OAASH,EAAaE,EAAO,IAAKA,EAAO,QAASA,EAAO,OAAO,EACrE,KAAK,OAASC,GAAU,CACtB,KAAOC,GAAoB,QAAQ,IAAI,cAAcA,CAAO,EAAE,EAC9D,MAAO,CAACA,EAAiBC,IAAgB,CACvC,IAAMC,EAAeD,EAAQ,GAAGD,CAAO,KAAKC,EAAM,SAAWA,CAAK,GAAKD,EACvE,QAAQ,MAAM,cAAcE,CAAY,EAAE,EACtCD,GAAA,MAAAA,EAAO,OACT,QAAQ,MAAMA,EAAM,KAAK,CAE7B,CACF,CACF,CAKA,WAA4B,CAC1B,OAAO,KAAK,MACd,CAKA,MAAM,MACJE,EACAC,EACAC,EACmB,CACnB,GAAI,CACF,GAAM,CAAE,KAAAC,EAAM,MAAAL,CAAM,EAAI,MAAM,KAAK,OAChC,KAAKE,CAAK,EACV,OAAOC,CAAK,EACZ,MAAMC,GAAU,CAAC,CAAC,EAErB,GAAIJ,EACF,MAAMA,EAGR,YAAK,OAAO,KAAK,yCAAyCE,CAAK,EAAE,EAC1DG,CACT,OAASL,EAAgB,CACvB,IAAMC,EAAeD,aAAiB,MAAQA,EAAM,QAAU,OAAOA,CAAK,EAC1E,YAAK,OAAO,MAAM,yBAAyBC,CAAY,GAAI,CAAE,MAAAC,EAAO,MAAAC,EAAO,OAAAC,CAAO,CAAC,EAC5E,IACT,CACF,CACF,EAKO,SAASE,EACdT,EACAC,EACiB,CACjB,OAAO,IAAIF,EAAgBC,EAAQC,CAAM,CAC3C","names":["createClient","SupabaseService","config","logger","message","error","errorMessage","table","query","params","data","createSupabaseService"]}