@supabase/server - v1.1.0
    Preparing search index...

    Function withSupabase

    • Elysia plugin that creates a SupabaseContext and makes it available in route handlers.

      Skips if a previous plugin already set the context, enabling route-level overrides. Throws a SupabaseError on auth failure. .status is on the error directly; the original AuthError is available as the typed .cause. Discriminate in onError via code === 'SupabaseError'.

      Parameters

      • Optionalconfig: Omit<WithSupabaseConfig, "cors">

        Auth modes and optional environment overrides. CORS is excluded — use Elysia's CORS utilities.

      Returns Elysia<
          "",
          { decorator: {}; store: {}; derive: {}; resolve: {} },
          { typebox: {}; error: { SupabaseError: SupabaseError } },
          {
              schema: {};
              standaloneSchema: {};
              macro: {};
              macroFn: {};
              parser: {};
              response: {};
          },
          {},
          {
              derive: {};
              resolve: { supabaseContext: SupabaseContext };
              schema: {};
              standaloneSchema: {};
              response: ExtractErrorFromHandle<{ supabaseContext: SupabaseContext }>;
          },
          { derive: {}; resolve: {}; schema: {}; standaloneSchema: {}; response: {} },
      >

      An Elysia plugin that exposes supabaseContext.

      import { Elysia } from 'elysia'
      import { withSupabase } from '@supabase/server/adapters/elysia'

      const app = new Elysia()
      .use(withSupabase({ allow: 'user' }))
      .get('/games', async ({ supabaseContext }) => {
      const { data } = await supabaseContext.supabase.from('favorite_games').select()
      return data
      })

      app.listen(3000)
      import { Elysia } from 'elysia'
      import { withSupabase } from '@supabase/server/adapters/elysia'

      const app = new Elysia()
      .get('/health', () => ({ status: 'ok' }))
      .group('/api', (app) =>
      app
      .use(withSupabase({ allow: 'user' }))
      .get('/profile', async ({ supabaseContext }) => {
      return supabaseContext.userClaims
      })
      )

      app.listen(3000)