Skip to content

Nestixis/nestjs-supabase

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3b12eae · Jan 5, 2025

History

3 Commits
Jan 5, 2025
Jan 5, 2025
Jan 5, 2025
Jan 5, 2025
Jan 5, 2025
Jan 5, 2025
Jan 5, 2025
Jan 5, 2025

Repository files navigation

NestJS Supabase

Installation

To install the package, run:

npm i @nestixis/nestjs-supabase

Registration

To register the module in your application, you can use the SupabaseSdkModule.registerAsync method with a factory pattern:

import { SupabaseSdkModule } from '@nestixis/nestjs-supabase';
import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { AppController } from './app.controller';
import { AppService } from './app.service';

@Module({
  imports: [
    SupabaseSdkModule.registerAsync({
      imports: [ConfigModule],
      useFactory: (configService: ConfigService) => ({
        auth: {
          url: configService.get<string>('SUPABASE_AUTH_URL'),
          key: configService.get<string>('SUPABASE_SERVICE_ROLE_KEY'),
        },
      }),
      inject: [ConfigService],
    }),
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

Usage

To use the Supabase client in your service, inject it using the SUPABASE_SDK_CLIENT token:

import { SupabaseClient } from '@supabase/supabase-js';
import { Inject } from '@nestjs/common';
import { SUPABASE_SDK_CLIENT } from '@nestixis/nestjs-supabase';

@Injectable()
export class YourService {
  constructor(
    @Inject(SUPABASE_SDK_CLIENT) private readonly supabaseClient: SupabaseClient
  ) {}

  async yourMethod() {
    const { data, error } = await this.supabaseClient
      .from('your_table')
      .select('*');
    if (error) {
      throw error;
    }
    return data;
  }
}

Releases

No releases published

Packages

No packages published