simple_network_handler_supabase library

Supabase integration for simple_network_handler.

This library provides error handling utilities specifically designed for Supabase operations, following the same patterns as the core simple_network_handler package.

Usage:

import 'package:simple_network_handler/simple_network_handler_supabase.dart';

// Create your error registry
class MySupabaseErrorRegistry extends SupabaseErrorRegistry {
  @override
  SupabaseAuthErrorRegistry get authErrorRegistry => {
    'invalid_credentials': (e) => const InvalidCredentialsFailure(),
  };

  @override
  Failure get genericError => const GenericSupabaseFailure();
}

// Initialize at app startup
void main() {
  SupabaseNetworkHandler.setErrorRegistry(MySupabaseErrorRegistry());
  runApp(MyApp());
}

// Use in repositories
Future<Either<Failure, User>> getCurrentUser() {
  return SupabaseNetworkHandler.safeCall(
    () => supabase.auth.getUser(),
  );
}

Classes

Either<L, R>
Left<L, R>
SupabaseErrorRegistry
Abstract error registry for Supabase-specific error handling
SupabaseNetworkHandler
A handler for safely executing Supabase operations with centralized error handling.

Typedefs

SupabaseAuthErrorRegistry = Map<String, Failure Function(AuthException exception)>
Registry mapping AuthException error codes to failure factories
SupabaseEitherFactory = Either<Failure, dynamic> Function(Object error, String? message, int? statusCode)
Factory function that creates an Either from a Supabase error
SupabaseErrorCodeRegistry = Map<String, SupabaseEitherFactory>
Registry mapping Supabase error codes to failure factories Key is the error code string (e.g., 'PGRST116', 'invalid_credentials')
SupabaseFunctionErrorRegistry = Map<int, Failure Function(FunctionException exception)>
Registry mapping FunctionException status codes to failure factories
SupabaseGeneralErrorRegistry = Map<Type, Failure Function(Object exception)>
Registry mapping general exception types to failures
SupabaseStatusCodeRegistry = Map<int, SupabaseEitherFactory>
Registry mapping PostgrestException status codes to failure factories
SupabaseStorageErrorRegistry = Map<String, Failure Function(StorageException exception)>
Registry mapping StorageException error codes to failure factories

Exceptions / Errors

AuthException
AuthFailure
Failure for authentication-related errors.
DuplicateEntryFailure
Failure for unique constraint violations (duplicate entries).
EmailNotConfirmedFailure
Failure for unverified email addresses.
Failure
FailureAbstract
FileNotFoundFailure
Failure for when a file/object is not found in storage.
FunctionException
FunctionFailure
Failure for Edge Function errors.
GenericSupabaseFailure
Generic Supabase failure for unhandled errors.
InvalidCredentialsFailure
Failure for invalid login credentials.
PermissionDeniedFailure
Failure for permission/authorization errors.
PostgrestException
A Postgrest response exception
PostgrestFailure
Failure for database/PostgREST errors.
RateLimitFailure
Failure for rate limiting errors.
RealtimeFailure
Failure for realtime/websocket connection errors.
RecordNotFoundFailure
Failure for when a database row/record is not found.
SessionExpiredFailure
Failure for expired or invalid sessions.
StorageException
StorageFailure
Failure for storage-related errors.
SupabaseFailure
Base class for Supabase-specific failures.
SupabaseNetworkFailure
Failure for network connectivity issues.
UserNotFoundSupabaseFailure
Failure for user not found scenarios.