fromSqliteError static method

PrismaException fromSqliteError(
  1. String message, {
  2. int? errorCode,
  3. Object? originalError,
})

Map a SQLite error to a PrismaException.

Implementation

static PrismaException fromSqliteError(
  String message, {
  int? errorCode,
  Object? originalError,
}) {
  switch (errorCode) {
    case 14: // SQLITE_CANTOPEN
      return ConnectionException(
        message,
        originalError: originalError,
      );

    case 19: // SQLITE_CONSTRAINT
      // SQLite doesn't distinguish constraint types as easily
      if (message.toLowerCase().contains('unique')) {
        return UniqueConstraintException(
          message,
          originalError: originalError,
        );
      }
      if (message.toLowerCase().contains('foreign key')) {
        return ForeignKeyException(
          message,
          originalError: originalError,
        );
      }
      return ConstraintException(
        message,
        originalError: originalError,
      );

    default:
      return InternalException(
        message,
        originalError: originalError,
        context: {'errorCode': errorCode},
      );
  }
}