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> -
Right<
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.