refactor(persistence): moor to drift name change migration.

Signed-off-by: xsahil03x <xdsahil@gmail.com>
This commit is contained in:
Sahil Kumar
2021-10-25 14:01:42 +05:30
committed by xsahil03x
parent 281733cc3c
commit c58ddb1aef
74 changed files with 308 additions and 417 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
targets:
$default:
builders:
moor_generator:
drift_dev:
options:
generate_connect_constructor: true
data_class_to_companions: false
@@ -1,6 +1,6 @@
import 'dart:convert';
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
/// Maps a [List] of type [T] into a [String] understood
/// by the sqlite backend.
@@ -1,6 +1,6 @@
import 'dart:convert';
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
/// Maps a [Map] of type [String], [T] into a [String] understood
/// by the sqlite backend.
@@ -1,4 +1,4 @@
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
import 'package:stream_chat/stream_chat.dart';
/// Maps a [MessageSendingStatus] into a [int] understood
@@ -1,6 +1,6 @@
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import 'package:stream_chat_persistence/src/entity/channels.dart';
import 'package:stream_chat_persistence/src/entity/users.dart';
import 'package:stream_chat_persistence/src/mapper/mapper.dart';
@@ -8,11 +8,11 @@ import 'package:stream_chat_persistence/src/mapper/mapper.dart';
part 'channel_dao.g.dart';
/// The Data Access Object for operations in [Channels] table.
@UseDao(tables: [Channels, Users])
class ChannelDao extends DatabaseAccessor<MoorChatDatabase>
@DriftAccessor(tables: [Channels, Users])
class ChannelDao extends DatabaseAccessor<DriftChatDatabase>
with _$ChannelDaoMixin {
/// Creates a new channel dao instance
ChannelDao(MoorChatDatabase db) : super(db);
ChannelDao(DriftChatDatabase db) : super(db);
/// Get channel by cid
Future<ChannelModel?> getChannelByCid(String cid) async =>
@@ -6,7 +6,7 @@ part of 'channel_dao.dart';
// DaoGenerator
// **************************************************************************
mixin _$ChannelDaoMixin on DatabaseAccessor<MoorChatDatabase> {
mixin _$ChannelDaoMixin on DatabaseAccessor<DriftChatDatabase> {
$ChannelsTable get channels => attachedDatabase.channels;
$UsersTable get users => attachedDatabase.users;
}
@@ -1,8 +1,8 @@
import 'dart:convert';
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import 'package:stream_chat_persistence/src/entity/channel_queries.dart';
import 'package:stream_chat_persistence/src/entity/channels.dart';
import 'package:stream_chat_persistence/src/entity/users.dart';
@@ -11,11 +11,11 @@ import 'package:stream_chat_persistence/src/mapper/mapper.dart';
part 'channel_query_dao.g.dart';
/// The Data Access Object for operations in [ChannelQueries] table.
@UseDao(tables: [ChannelQueries, Channels, Users])
class ChannelQueryDao extends DatabaseAccessor<MoorChatDatabase>
@DriftAccessor(tables: [ChannelQueries, Channels, Users])
class ChannelQueryDao extends DatabaseAccessor<DriftChatDatabase>
with _$ChannelQueryDaoMixin {
/// Creates a new channel query dao instance
ChannelQueryDao(MoorChatDatabase db) : super(db);
ChannelQueryDao(DriftChatDatabase db) : super(db);
String _computeHash(Filter? filter) {
if (filter == null) {
@@ -6,7 +6,7 @@ part of 'channel_query_dao.dart';
// DaoGenerator
// **************************************************************************
mixin _$ChannelQueryDaoMixin on DatabaseAccessor<MoorChatDatabase> {
mixin _$ChannelQueryDaoMixin on DatabaseAccessor<DriftChatDatabase> {
$ChannelQueriesTable get channelQueries => attachedDatabase.channelQueries;
$ChannelsTable get channels => attachedDatabase.channels;
$UsersTable get users => attachedDatabase.users;
@@ -1,6 +1,6 @@
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import 'package:stream_chat_persistence/src/entity/connection_events.dart';
import 'package:stream_chat_persistence/src/mapper/mapper.dart';
@@ -8,11 +8,11 @@ import 'package:stream_chat_persistence/src/mapper/mapper.dart';
part 'connection_event_dao.g.dart';
/// The Data Access Object for operations in [ConnectionEvents] table.
@UseDao(tables: [ConnectionEvents])
class ConnectionEventDao extends DatabaseAccessor<MoorChatDatabase>
@DriftAccessor(tables: [ConnectionEvents])
class ConnectionEventDao extends DatabaseAccessor<DriftChatDatabase>
with _$ConnectionEventDaoMixin {
/// Creates a new connection event dao instance
ConnectionEventDao(MoorChatDatabase db) : super(db);
ConnectionEventDao(DriftChatDatabase db) : super(db);
/// Get the latest stored connection event
Future<Event?> get connectionEvent => select(connectionEvents)
@@ -6,7 +6,7 @@ part of 'connection_event_dao.dart';
// DaoGenerator
// **************************************************************************
mixin _$ConnectionEventDaoMixin on DatabaseAccessor<MoorChatDatabase> {
mixin _$ConnectionEventDaoMixin on DatabaseAccessor<DriftChatDatabase> {
$ConnectionEventsTable get connectionEvents =>
attachedDatabase.connectionEvents;
}
@@ -1,6 +1,6 @@
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import 'package:stream_chat_persistence/src/entity/members.dart';
import 'package:stream_chat_persistence/src/entity/users.dart';
@@ -10,11 +10,11 @@ import 'package:stream_chat_persistence/src/mapper/mapper.dart';
part 'member_dao.g.dart';
/// The Data Access Object for operations in [Members] table.
@UseDao(tables: [Members, Users])
class MemberDao extends DatabaseAccessor<MoorChatDatabase>
@DriftAccessor(tables: [Members, Users])
class MemberDao extends DatabaseAccessor<DriftChatDatabase>
with _$MemberDaoMixin {
/// Creates a new member dao instance
MemberDao(MoorChatDatabase db) : super(db);
MemberDao(DriftChatDatabase db) : super(db);
/// Get all members where [Members.channelCid] matches [cid]
Future<List<Member>> getMembersByCid(String cid) async =>
@@ -6,7 +6,7 @@ part of 'member_dao.dart';
// DaoGenerator
// **************************************************************************
mixin _$MemberDaoMixin on DatabaseAccessor<MoorChatDatabase> {
mixin _$MemberDaoMixin on DatabaseAccessor<DriftChatDatabase> {
$MembersTable get members => attachedDatabase.members;
$UsersTable get users => attachedDatabase.users;
}
@@ -1,6 +1,6 @@
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import 'package:stream_chat_persistence/src/entity/messages.dart';
import 'package:stream_chat_persistence/src/entity/users.dart';
@@ -9,13 +9,13 @@ import 'package:stream_chat_persistence/src/mapper/mapper.dart';
part 'message_dao.g.dart';
/// The Data Access Object for operations in [Messages] table.
@UseDao(tables: [Messages, Users])
class MessageDao extends DatabaseAccessor<MoorChatDatabase>
@DriftAccessor(tables: [Messages, Users])
class MessageDao extends DatabaseAccessor<DriftChatDatabase>
with _$MessageDaoMixin {
/// Creates a new message dao instance
MessageDao(this._db) : super(_db);
final MoorChatDatabase _db;
final DriftChatDatabase _db;
$UsersTable get _users => alias(users, 'users');
@@ -6,7 +6,7 @@ part of 'message_dao.dart';
// DaoGenerator
// **************************************************************************
mixin _$MessageDaoMixin on DatabaseAccessor<MoorChatDatabase> {
mixin _$MessageDaoMixin on DatabaseAccessor<DriftChatDatabase> {
$MessagesTable get messages => attachedDatabase.messages;
$UsersTable get users => attachedDatabase.users;
}
@@ -1,6 +1,6 @@
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import 'package:stream_chat_persistence/src/entity/pinned_messages.dart';
import 'package:stream_chat_persistence/src/entity/users.dart';
@@ -9,13 +9,13 @@ import 'package:stream_chat_persistence/src/mapper/mapper.dart';
part 'pinned_message_dao.g.dart';
/// The Data Access Object for operations in [Messages] table.
@UseDao(tables: [PinnedMessages, Users])
class PinnedMessageDao extends DatabaseAccessor<MoorChatDatabase>
@DriftAccessor(tables: [PinnedMessages, Users])
class PinnedMessageDao extends DatabaseAccessor<DriftChatDatabase>
with _$PinnedMessageDaoMixin {
/// Creates a new message dao instance
PinnedMessageDao(this._db) : super(_db);
final MoorChatDatabase _db;
final DriftChatDatabase _db;
$UsersTable get _users => alias(users, 'users');
@@ -6,7 +6,7 @@ part of 'pinned_message_dao.dart';
// DaoGenerator
// **************************************************************************
mixin _$PinnedMessageDaoMixin on DatabaseAccessor<MoorChatDatabase> {
mixin _$PinnedMessageDaoMixin on DatabaseAccessor<DriftChatDatabase> {
$PinnedMessagesTable get pinnedMessages => attachedDatabase.pinnedMessages;
$UsersTable get users => attachedDatabase.users;
}
@@ -1,6 +1,6 @@
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import 'package:stream_chat_persistence/src/entity/pinned_message_reactions.dart';
import 'package:stream_chat_persistence/src/entity/users.dart';
import 'package:stream_chat_persistence/src/mapper/mapper.dart';
@@ -8,11 +8,11 @@ import 'package:stream_chat_persistence/src/mapper/mapper.dart';
part 'pinned_message_reaction_dao.g.dart';
/// The Data Access Object for operations in [PinnedMessageReactions] table.
@UseDao(tables: [PinnedMessageReactions, Users])
class PinnedMessageReactionDao extends DatabaseAccessor<MoorChatDatabase>
@DriftAccessor(tables: [PinnedMessageReactions, Users])
class PinnedMessageReactionDao extends DatabaseAccessor<DriftChatDatabase>
with _$PinnedMessageReactionDaoMixin {
/// Creates a new reaction dao instance
PinnedMessageReactionDao(MoorChatDatabase db) : super(db);
PinnedMessageReactionDao(DriftChatDatabase db) : super(db);
/// Returns all the reactions of a particular message by matching
/// [Reactions.messageId] with [messageId]
@@ -6,7 +6,7 @@ part of 'pinned_message_reaction_dao.dart';
// DaoGenerator
// **************************************************************************
mixin _$PinnedMessageReactionDaoMixin on DatabaseAccessor<MoorChatDatabase> {
mixin _$PinnedMessageReactionDaoMixin on DatabaseAccessor<DriftChatDatabase> {
$PinnedMessageReactionsTable get pinnedMessageReactions =>
attachedDatabase.pinnedMessageReactions;
$UsersTable get users => attachedDatabase.users;
@@ -1,6 +1,6 @@
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import 'package:stream_chat_persistence/src/entity/reactions.dart';
import 'package:stream_chat_persistence/src/entity/users.dart';
import 'package:stream_chat_persistence/src/mapper/mapper.dart';
@@ -8,11 +8,11 @@ import 'package:stream_chat_persistence/src/mapper/mapper.dart';
part 'reaction_dao.g.dart';
/// The Data Access Object for operations in [Reactions] table.
@UseDao(tables: [Reactions, Users])
class ReactionDao extends DatabaseAccessor<MoorChatDatabase>
@DriftAccessor(tables: [Reactions, Users])
class ReactionDao extends DatabaseAccessor<DriftChatDatabase>
with _$ReactionDaoMixin {
/// Creates a new reaction dao instance
ReactionDao(MoorChatDatabase db) : super(db);
ReactionDao(DriftChatDatabase db) : super(db);
/// Returns all the reactions of a particular message by matching
/// [Reactions.messageId] with [messageId]
@@ -6,7 +6,7 @@ part of 'reaction_dao.dart';
// DaoGenerator
// **************************************************************************
mixin _$ReactionDaoMixin on DatabaseAccessor<MoorChatDatabase> {
mixin _$ReactionDaoMixin on DatabaseAccessor<DriftChatDatabase> {
$ReactionsTable get reactions => attachedDatabase.reactions;
$UsersTable get users => attachedDatabase.users;
}
@@ -1,6 +1,6 @@
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import 'package:stream_chat_persistence/src/entity/reads.dart';
import 'package:stream_chat_persistence/src/entity/users.dart';
import 'package:stream_chat_persistence/src/mapper/mapper.dart';
@@ -8,10 +8,10 @@ import 'package:stream_chat_persistence/src/mapper/mapper.dart';
part 'read_dao.g.dart';
/// The Data Access Object for operations in [Reads] table.
@UseDao(tables: [Reads, Users])
class ReadDao extends DatabaseAccessor<MoorChatDatabase> with _$ReadDaoMixin {
@DriftAccessor(tables: [Reads, Users])
class ReadDao extends DatabaseAccessor<DriftChatDatabase> with _$ReadDaoMixin {
/// Creates a new read dao instance
ReadDao(MoorChatDatabase db) : super(db);
ReadDao(DriftChatDatabase db) : super(db);
/// Get all reads where [Reads.channelCid] matches [cid]
Future<List<Read>> getReadsByCid(String cid) async => (select(reads).join([
@@ -6,7 +6,7 @@ part of 'read_dao.dart';
// DaoGenerator
// **************************************************************************
mixin _$ReadDaoMixin on DatabaseAccessor<MoorChatDatabase> {
mixin _$ReadDaoMixin on DatabaseAccessor<DriftChatDatabase> {
$ReadsTable get reads => attachedDatabase.reads;
$UsersTable get users => attachedDatabase.users;
}
@@ -1,16 +1,16 @@
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import 'package:stream_chat_persistence/src/entity/users.dart';
import 'package:stream_chat_persistence/src/mapper/user_mapper.dart';
part 'user_dao.g.dart';
/// The Data Access Object for operations in [Users] table.
@UseDao(tables: [Users])
class UserDao extends DatabaseAccessor<MoorChatDatabase> with _$UserDaoMixin {
@DriftAccessor(tables: [Users])
class UserDao extends DatabaseAccessor<DriftChatDatabase> with _$UserDaoMixin {
/// Creates a new user dao instance
UserDao(MoorChatDatabase db) : super(db);
UserDao(DriftChatDatabase db) : super(db);
/// Updates the users data with the new [userList] data
Future<void> updateUsers(List<User> userList) => batch(
@@ -6,6 +6,6 @@ part of 'user_dao.dart';
// DaoGenerator
// **************************************************************************
mixin _$UserDaoMixin on DatabaseAccessor<MoorChatDatabase> {
mixin _$UserDaoMixin on DatabaseAccessor<DriftChatDatabase> {
$UsersTable get users => attachedDatabase.users;
}
@@ -1,4 +1,4 @@
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/converter/converter.dart';
@@ -7,10 +7,10 @@ import 'package:stream_chat_persistence/src/entity/entity.dart';
export 'shared/shared_db.dart';
part 'moor_chat_database.g.dart';
part 'drift_chat_database.g.dart';
/// A chat database implemented using moor
@UseMoor(
@DriftDatabase(
tables: [
Channels,
Messages,
@@ -36,15 +36,15 @@ part 'moor_chat_database.g.dart';
ConnectionEventDao,
],
)
class MoorChatDatabase extends _$MoorChatDatabase {
class DriftChatDatabase extends _$DriftChatDatabase {
/// Creates a new moor chat database instance
MoorChatDatabase(
DriftChatDatabase(
this._userId,
QueryExecutor executor,
) : super(executor);
/// Instantiate a new database instance
MoorChatDatabase.connect(
DriftChatDatabase.connect(
this._userId,
DatabaseConnection connection,
) : super.connect(connection);
@@ -1,6 +1,6 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'moor_chat_database.dart';
part of 'drift_chat_database.dart';
// **************************************************************************
// MoorGenerator
@@ -56,9 +56,7 @@ class ChannelEntity extends DataClass implements Insertable<ChannelEntity> {
required this.memberCount,
this.createdById,
this.extraData});
factory ChannelEntity.fromData(
Map<String, dynamic> data, GeneratedDatabase db,
{String? prefix}) {
factory ChannelEntity.fromData(Map<String, dynamic> data, {String? prefix}) {
final effectivePrefix = prefix ?? '';
return ChannelEntity(
id: const StringType()
@@ -119,7 +117,7 @@ class ChannelEntity extends DataClass implements Insertable<ChannelEntity> {
factory ChannelEntity.fromJson(Map<String, dynamic> json,
{ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer;
serializer ??= driftRuntimeOptions.defaultSerializer;
return ChannelEntity(
id: serializer.fromJson<String>(json['id']),
type: serializer.fromJson<String>(json['type']),
@@ -137,7 +135,7 @@ class ChannelEntity extends DataClass implements Insertable<ChannelEntity> {
}
@override
Map<String, dynamic> toJson({ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer;
serializer ??= driftRuntimeOptions.defaultSerializer;
return <String, dynamic>{
'id': serializer.toJson<String>(id),
'type': serializer.toJson<String>(type),
@@ -202,28 +200,8 @@ class ChannelEntity extends DataClass implements Insertable<ChannelEntity> {
}
@override
int get hashCode => $mrjf($mrjc(
id.hashCode,
$mrjc(
type.hashCode,
$mrjc(
cid.hashCode,
$mrjc(
config.hashCode,
$mrjc(
frozen.hashCode,
$mrjc(
lastMessageAt.hashCode,
$mrjc(
createdAt.hashCode,
$mrjc(
updatedAt.hashCode,
$mrjc(
deletedAt.hashCode,
$mrjc(
memberCount.hashCode,
$mrjc(createdById.hashCode,
extraData.hashCode))))))))))));
int get hashCode => Object.hash(id, type, cid, config, frozen, lastMessageAt,
createdAt, updatedAt, deletedAt, memberCount, createdById, extraData);
@override
bool operator ==(Object other) =>
identical(this, other) ||
@@ -561,7 +539,7 @@ class $ChannelsTable extends Channels
Set<GeneratedColumn> get $primaryKey => {cid};
@override
ChannelEntity map(Map<String, dynamic> data, {String? tablePrefix}) {
return ChannelEntity.fromData(data, _db,
return ChannelEntity.fromData(data,
prefix: tablePrefix != null ? '$tablePrefix.' : null);
}
@@ -678,9 +656,7 @@ class MessageEntity extends DataClass implements Insertable<MessageEntity> {
required this.channelCid,
this.i18n,
this.extraData});
factory MessageEntity.fromData(
Map<String, dynamic> data, GeneratedDatabase db,
{String? prefix}) {
factory MessageEntity.fromData(Map<String, dynamic> data, {String? prefix}) {
final effectivePrefix = prefix ?? '';
return MessageEntity(
id: const StringType()
@@ -814,7 +790,7 @@ class MessageEntity extends DataClass implements Insertable<MessageEntity> {
factory MessageEntity.fromJson(Map<String, dynamic> json,
{ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer;
serializer ??= driftRuntimeOptions.defaultSerializer;
return MessageEntity(
id: serializer.fromJson<String>(json['id']),
messageText: serializer.fromJson<String?>(json['messageText']),
@@ -847,7 +823,7 @@ class MessageEntity extends DataClass implements Insertable<MessageEntity> {
}
@override
Map<String, dynamic> toJson({ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer;
serializer ??= driftRuntimeOptions.defaultSerializer;
return <String, dynamic>{
'id': serializer.toJson<String>(id),
'messageText': serializer.toJson<String?>(messageText),
@@ -969,49 +945,33 @@ class MessageEntity extends DataClass implements Insertable<MessageEntity> {
}
@override
int get hashCode => $mrjf($mrjc(
id.hashCode,
$mrjc(
messageText.hashCode,
$mrjc(
attachments.hashCode,
$mrjc(
status.hashCode,
$mrjc(
type.hashCode,
$mrjc(
mentionedUsers.hashCode,
$mrjc(
reactionCounts.hashCode,
$mrjc(
reactionScores.hashCode,
$mrjc(
parentId.hashCode,
$mrjc(
quotedMessageId.hashCode,
$mrjc(
replyCount.hashCode,
$mrjc(
showInChannel.hashCode,
$mrjc(
shadowed.hashCode,
$mrjc(
command.hashCode,
$mrjc(
createdAt
.hashCode,
$mrjc(
updatedAt
.hashCode,
$mrjc(
deletedAt
.hashCode,
$mrjc(
userId
.hashCode,
$mrjc(
pinned.hashCode,
$mrjc(pinnedAt.hashCode, $mrjc(pinExpires.hashCode, $mrjc(pinnedByUserId.hashCode, $mrjc(channelCid.hashCode, $mrjc(i18n.hashCode, extraData.hashCode)))))))))))))))))))))))));
int get hashCode => Object.hashAll([
id,
messageText,
attachments,
status,
type,
mentionedUsers,
reactionCounts,
reactionScores,
parentId,
quotedMessageId,
replyCount,
showInChannel,
shadowed,
command,
createdAt,
updatedAt,
deletedAt,
userId,
pinned,
pinnedAt,
pinExpires,
pinnedByUserId,
channelCid,
i18n,
extraData
]);
@override
bool operator ==(Object other) =>
identical(this, other) ||
@@ -1644,7 +1604,7 @@ class $MessagesTable extends Messages
Set<GeneratedColumn> get $primaryKey => {id};
@override
MessageEntity map(Map<String, dynamic> data, {String? tablePrefix}) {
return MessageEntity.fromData(data, _db,
return MessageEntity.fromData(data,
prefix: tablePrefix != null ? '$tablePrefix.' : null);
}
@@ -1772,8 +1732,7 @@ class PinnedMessageEntity extends DataClass
required this.channelCid,
this.i18n,
this.extraData});
factory PinnedMessageEntity.fromData(
Map<String, dynamic> data, GeneratedDatabase db,
factory PinnedMessageEntity.fromData(Map<String, dynamic> data,
{String? prefix}) {
final effectivePrefix = prefix ?? '';
return PinnedMessageEntity(
@@ -1911,7 +1870,7 @@ class PinnedMessageEntity extends DataClass
factory PinnedMessageEntity.fromJson(Map<String, dynamic> json,
{ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer;
serializer ??= driftRuntimeOptions.defaultSerializer;
return PinnedMessageEntity(
id: serializer.fromJson<String>(json['id']),
messageText: serializer.fromJson<String?>(json['messageText']),
@@ -1944,7 +1903,7 @@ class PinnedMessageEntity extends DataClass
}
@override
Map<String, dynamic> toJson({ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer;
serializer ??= driftRuntimeOptions.defaultSerializer;
return <String, dynamic>{
'id': serializer.toJson<String>(id),
'messageText': serializer.toJson<String?>(messageText),
@@ -2066,49 +2025,33 @@ class PinnedMessageEntity extends DataClass
}
@override
int get hashCode => $mrjf($mrjc(
id.hashCode,
$mrjc(
messageText.hashCode,
$mrjc(
attachments.hashCode,
$mrjc(
status.hashCode,
$mrjc(
type.hashCode,
$mrjc(
mentionedUsers.hashCode,
$mrjc(
reactionCounts.hashCode,
$mrjc(
reactionScores.hashCode,
$mrjc(
parentId.hashCode,
$mrjc(
quotedMessageId.hashCode,
$mrjc(
replyCount.hashCode,
$mrjc(
showInChannel.hashCode,
$mrjc(
shadowed.hashCode,
$mrjc(
command.hashCode,
$mrjc(
createdAt
.hashCode,
$mrjc(
updatedAt
.hashCode,
$mrjc(
deletedAt
.hashCode,
$mrjc(
userId
.hashCode,
$mrjc(
pinned.hashCode,
$mrjc(pinnedAt.hashCode, $mrjc(pinExpires.hashCode, $mrjc(pinnedByUserId.hashCode, $mrjc(channelCid.hashCode, $mrjc(i18n.hashCode, extraData.hashCode)))))))))))))))))))))))));
int get hashCode => Object.hashAll([
id,
messageText,
attachments,
status,
type,
mentionedUsers,
reactionCounts,
reactionScores,
parentId,
quotedMessageId,
replyCount,
showInChannel,
shadowed,
command,
createdAt,
updatedAt,
deletedAt,
userId,
pinned,
pinnedAt,
pinExpires,
pinnedByUserId,
channelCid,
i18n,
extraData
]);
@override
bool operator ==(Object other) =>
identical(this, other) ||
@@ -2744,7 +2687,7 @@ class $PinnedMessagesTable extends PinnedMessages
Set<GeneratedColumn> get $primaryKey => {id};
@override
PinnedMessageEntity map(Map<String, dynamic> data, {String? tablePrefix}) {
return PinnedMessageEntity.fromData(data, _db,
return PinnedMessageEntity.fromData(data,
prefix: tablePrefix != null ? '$tablePrefix.' : null);
}
@@ -2795,8 +2738,7 @@ class PinnedMessageReactionEntity extends DataClass
required this.createdAt,
required this.score,
this.extraData});
factory PinnedMessageReactionEntity.fromData(
Map<String, dynamic> data, GeneratedDatabase db,
factory PinnedMessageReactionEntity.fromData(Map<String, dynamic> data,
{String? prefix}) {
final effectivePrefix = prefix ?? '';
return PinnedMessageReactionEntity(
@@ -2832,7 +2774,7 @@ class PinnedMessageReactionEntity extends DataClass
factory PinnedMessageReactionEntity.fromJson(Map<String, dynamic> json,
{ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer;
serializer ??= driftRuntimeOptions.defaultSerializer;
return PinnedMessageReactionEntity(
userId: serializer.fromJson<String>(json['userId']),
messageId: serializer.fromJson<String>(json['messageId']),
@@ -2844,7 +2786,7 @@ class PinnedMessageReactionEntity extends DataClass
}
@override
Map<String, dynamic> toJson({ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer;
serializer ??= driftRuntimeOptions.defaultSerializer;
return <String, dynamic>{
'userId': serializer.toJson<String>(userId),
'messageId': serializer.toJson<String>(messageId),
@@ -2884,14 +2826,8 @@ class PinnedMessageReactionEntity extends DataClass
}
@override
int get hashCode => $mrjf($mrjc(
userId.hashCode,
$mrjc(
messageId.hashCode,
$mrjc(
type.hashCode,
$mrjc(createdAt.hashCode,
$mrjc(score.hashCode, extraData.hashCode))))));
int get hashCode =>
Object.hash(userId, messageId, type, createdAt, score, extraData);
@override
bool operator ==(Object other) =>
identical(this, other) ||
@@ -3090,7 +3026,7 @@ class $PinnedMessageReactionsTable extends PinnedMessageReactions
@override
PinnedMessageReactionEntity map(Map<String, dynamic> data,
{String? tablePrefix}) {
return PinnedMessageReactionEntity.fromData(data, _db,
return PinnedMessageReactionEntity.fromData(data,
prefix: tablePrefix != null ? '$tablePrefix.' : null);
}
@@ -3128,9 +3064,7 @@ class ReactionEntity extends DataClass implements Insertable<ReactionEntity> {
required this.createdAt,
required this.score,
this.extraData});
factory ReactionEntity.fromData(
Map<String, dynamic> data, GeneratedDatabase db,
{String? prefix}) {
factory ReactionEntity.fromData(Map<String, dynamic> data, {String? prefix}) {
final effectivePrefix = prefix ?? '';
return ReactionEntity(
userId: const StringType()
@@ -3164,7 +3098,7 @@ class ReactionEntity extends DataClass implements Insertable<ReactionEntity> {
factory ReactionEntity.fromJson(Map<String, dynamic> json,
{ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer;
serializer ??= driftRuntimeOptions.defaultSerializer;
return ReactionEntity(
userId: serializer.fromJson<String>(json['userId']),
messageId: serializer.fromJson<String>(json['messageId']),
@@ -3176,7 +3110,7 @@ class ReactionEntity extends DataClass implements Insertable<ReactionEntity> {
}
@override
Map<String, dynamic> toJson({ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer;
serializer ??= driftRuntimeOptions.defaultSerializer;
return <String, dynamic>{
'userId': serializer.toJson<String>(userId),
'messageId': serializer.toJson<String>(messageId),
@@ -3216,14 +3150,8 @@ class ReactionEntity extends DataClass implements Insertable<ReactionEntity> {
}
@override
int get hashCode => $mrjf($mrjc(
userId.hashCode,
$mrjc(
messageId.hashCode,
$mrjc(
type.hashCode,
$mrjc(createdAt.hashCode,
$mrjc(score.hashCode, extraData.hashCode))))));
int get hashCode =>
Object.hash(userId, messageId, type, createdAt, score, extraData);
@override
bool operator ==(Object other) =>
identical(this, other) ||
@@ -3418,7 +3346,7 @@ class $ReactionsTable extends Reactions
Set<GeneratedColumn> get $primaryKey => {messageId, type, userId};
@override
ReactionEntity map(Map<String, dynamic> data, {String? tablePrefix}) {
return ReactionEntity.fromData(data, _db,
return ReactionEntity.fromData(data,
prefix: tablePrefix != null ? '$tablePrefix.' : null);
}
@@ -3468,8 +3396,7 @@ class UserEntity extends DataClass implements Insertable<UserEntity> {
required this.online,
required this.banned,
required this.extraData});
factory UserEntity.fromData(Map<String, dynamic> data, GeneratedDatabase db,
{String? prefix}) {
factory UserEntity.fromData(Map<String, dynamic> data, {String? prefix}) {
final effectivePrefix = prefix ?? '';
return UserEntity(
id: const StringType()
@@ -3518,7 +3445,7 @@ class UserEntity extends DataClass implements Insertable<UserEntity> {
factory UserEntity.fromJson(Map<String, dynamic> json,
{ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer;
serializer ??= driftRuntimeOptions.defaultSerializer;
return UserEntity(
id: serializer.fromJson<String>(json['id']),
role: serializer.fromJson<String?>(json['role']),
@@ -3533,7 +3460,7 @@ class UserEntity extends DataClass implements Insertable<UserEntity> {
}
@override
Map<String, dynamic> toJson({ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer;
serializer ??= driftRuntimeOptions.defaultSerializer;
return <String, dynamic>{
'id': serializer.toJson<String>(id),
'role': serializer.toJson<String?>(role),
@@ -3585,22 +3512,8 @@ class UserEntity extends DataClass implements Insertable<UserEntity> {
}
@override
int get hashCode => $mrjf($mrjc(
id.hashCode,
$mrjc(
role.hashCode,
$mrjc(
language.hashCode,
$mrjc(
createdAt.hashCode,
$mrjc(
updatedAt.hashCode,
$mrjc(
lastActive.hashCode,
$mrjc(
online.hashCode,
$mrjc(
banned.hashCode, extraData.hashCode)))))))));
int get hashCode => Object.hash(id, role, language, createdAt, updatedAt,
lastActive, online, banned, extraData);
@override
bool operator ==(Object other) =>
identical(this, other) ||
@@ -3863,7 +3776,7 @@ class $UsersTable extends Users with TableInfo<$UsersTable, UserEntity> {
Set<GeneratedColumn> get $primaryKey => {id};
@override
UserEntity map(Map<String, dynamic> data, {String? tablePrefix}) {
return UserEntity.fromData(data, _db,
return UserEntity.fromData(data,
prefix: tablePrefix != null ? '$tablePrefix.' : null);
}
@@ -3921,8 +3834,7 @@ class MemberEntity extends DataClass implements Insertable<MemberEntity> {
required this.isModerator,
required this.createdAt,
required this.updatedAt});
factory MemberEntity.fromData(Map<String, dynamic> data, GeneratedDatabase db,
{String? prefix}) {
factory MemberEntity.fromData(Map<String, dynamic> data, {String? prefix}) {
final effectivePrefix = prefix ?? '';
return MemberEntity(
userId: const StringType()
@@ -3974,7 +3886,7 @@ class MemberEntity extends DataClass implements Insertable<MemberEntity> {
factory MemberEntity.fromJson(Map<String, dynamic> json,
{ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer;
serializer ??= driftRuntimeOptions.defaultSerializer;
return MemberEntity(
userId: serializer.fromJson<String>(json['userId']),
channelCid: serializer.fromJson<String>(json['channelCid']),
@@ -3993,7 +3905,7 @@ class MemberEntity extends DataClass implements Insertable<MemberEntity> {
}
@override
Map<String, dynamic> toJson({ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer;
serializer ??= driftRuntimeOptions.defaultSerializer;
return <String, dynamic>{
'userId': serializer.toJson<String>(userId),
'channelCid': serializer.toJson<String>(channelCid),
@@ -4057,26 +3969,18 @@ class MemberEntity extends DataClass implements Insertable<MemberEntity> {
}
@override
int get hashCode => $mrjf($mrjc(
userId.hashCode,
$mrjc(
channelCid.hashCode,
$mrjc(
role.hashCode,
$mrjc(
inviteAcceptedAt.hashCode,
$mrjc(
inviteRejectedAt.hashCode,
$mrjc(
invited.hashCode,
$mrjc(
banned.hashCode,
$mrjc(
shadowBanned.hashCode,
$mrjc(
isModerator.hashCode,
$mrjc(createdAt.hashCode,
updatedAt.hashCode)))))))))));
int get hashCode => Object.hash(
userId,
channelCid,
role,
inviteAcceptedAt,
inviteRejectedAt,
invited,
banned,
shadowBanned,
isModerator,
createdAt,
updatedAt);
@override
bool operator ==(Object other) =>
identical(this, other) ||
@@ -4405,7 +4309,7 @@ class $MembersTable extends Members
Set<GeneratedColumn> get $primaryKey => {userId, channelCid};
@override
MemberEntity map(Map<String, dynamic> data, {String? tablePrefix}) {
return MemberEntity.fromData(data, _db,
return MemberEntity.fromData(data,
prefix: tablePrefix != null ? '$tablePrefix.' : null);
}
@@ -4432,8 +4336,7 @@ class ReadEntity extends DataClass implements Insertable<ReadEntity> {
required this.userId,
required this.channelCid,
required this.unreadMessages});
factory ReadEntity.fromData(Map<String, dynamic> data, GeneratedDatabase db,
{String? prefix}) {
factory ReadEntity.fromData(Map<String, dynamic> data, {String? prefix}) {
final effectivePrefix = prefix ?? '';
return ReadEntity(
lastRead: const DateTimeType()
@@ -4458,7 +4361,7 @@ class ReadEntity extends DataClass implements Insertable<ReadEntity> {
factory ReadEntity.fromJson(Map<String, dynamic> json,
{ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer;
serializer ??= driftRuntimeOptions.defaultSerializer;
return ReadEntity(
lastRead: serializer.fromJson<DateTime>(json['lastRead']),
userId: serializer.fromJson<String>(json['userId']),
@@ -4468,7 +4371,7 @@ class ReadEntity extends DataClass implements Insertable<ReadEntity> {
}
@override
Map<String, dynamic> toJson({ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer;
serializer ??= driftRuntimeOptions.defaultSerializer;
return <String, dynamic>{
'lastRead': serializer.toJson<DateTime>(lastRead),
'userId': serializer.toJson<String>(userId),
@@ -4500,10 +4403,7 @@ class ReadEntity extends DataClass implements Insertable<ReadEntity> {
}
@override
int get hashCode => $mrjf($mrjc(
lastRead.hashCode,
$mrjc(userId.hashCode,
$mrjc(channelCid.hashCode, unreadMessages.hashCode))));
int get hashCode => Object.hash(lastRead, userId, channelCid, unreadMessages);
@override
bool operator ==(Object other) =>
identical(this, other) ||
@@ -4660,7 +4560,7 @@ class $ReadsTable extends Reads with TableInfo<$ReadsTable, ReadEntity> {
Set<GeneratedColumn> get $primaryKey => {userId, channelCid};
@override
ReadEntity map(Map<String, dynamic> data, {String? tablePrefix}) {
return ReadEntity.fromData(data, _db,
return ReadEntity.fromData(data,
prefix: tablePrefix != null ? '$tablePrefix.' : null);
}
@@ -4678,8 +4578,7 @@ class ChannelQueryEntity extends DataClass
/// The channel cid of this query
final String channelCid;
ChannelQueryEntity({required this.queryHash, required this.channelCid});
factory ChannelQueryEntity.fromData(
Map<String, dynamic> data, GeneratedDatabase db,
factory ChannelQueryEntity.fromData(Map<String, dynamic> data,
{String? prefix}) {
final effectivePrefix = prefix ?? '';
return ChannelQueryEntity(
@@ -4699,7 +4598,7 @@ class ChannelQueryEntity extends DataClass
factory ChannelQueryEntity.fromJson(Map<String, dynamic> json,
{ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer;
serializer ??= driftRuntimeOptions.defaultSerializer;
return ChannelQueryEntity(
queryHash: serializer.fromJson<String>(json['queryHash']),
channelCid: serializer.fromJson<String>(json['channelCid']),
@@ -4707,7 +4606,7 @@ class ChannelQueryEntity extends DataClass
}
@override
Map<String, dynamic> toJson({ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer;
serializer ??= driftRuntimeOptions.defaultSerializer;
return <String, dynamic>{
'queryHash': serializer.toJson<String>(queryHash),
'channelCid': serializer.toJson<String>(channelCid),
@@ -4729,7 +4628,7 @@ class ChannelQueryEntity extends DataClass
}
@override
int get hashCode => $mrjf($mrjc(queryHash.hashCode, channelCid.hashCode));
int get hashCode => Object.hash(queryHash, channelCid);
@override
bool operator ==(Object other) =>
identical(this, other) ||
@@ -4835,7 +4734,7 @@ class $ChannelQueriesTable extends ChannelQueries
Set<GeneratedColumn> get $primaryKey => {queryHash, channelCid};
@override
ChannelQueryEntity map(Map<String, dynamic> data, {String? tablePrefix}) {
return ChannelQueryEntity.fromData(data, _db,
return ChannelQueryEntity.fromData(data,
prefix: tablePrefix != null ? '$tablePrefix.' : null);
}
@@ -4875,8 +4774,7 @@ class ConnectionEventEntity extends DataClass
this.unreadChannels,
this.lastEventAt,
this.lastSyncAt});
factory ConnectionEventEntity.fromData(
Map<String, dynamic> data, GeneratedDatabase db,
factory ConnectionEventEntity.fromData(Map<String, dynamic> data,
{String? prefix}) {
final effectivePrefix = prefix ?? '';
return ConnectionEventEntity(
@@ -4922,7 +4820,7 @@ class ConnectionEventEntity extends DataClass
factory ConnectionEventEntity.fromJson(Map<String, dynamic> json,
{ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer;
serializer ??= driftRuntimeOptions.defaultSerializer;
return ConnectionEventEntity(
id: serializer.fromJson<int>(json['id']),
type: serializer.fromJson<String>(json['type']),
@@ -4935,7 +4833,7 @@ class ConnectionEventEntity extends DataClass
}
@override
Map<String, dynamic> toJson({ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer;
serializer ??= driftRuntimeOptions.defaultSerializer;
return <String, dynamic>{
'id': serializer.toJson<int>(id),
'type': serializer.toJson<String>(type),
@@ -4982,16 +4880,8 @@ class ConnectionEventEntity extends DataClass
}
@override
int get hashCode => $mrjf($mrjc(
id.hashCode,
$mrjc(
type.hashCode,
$mrjc(
ownUser.hashCode,
$mrjc(
totalUnreadCount.hashCode,
$mrjc(unreadChannels.hashCode,
$mrjc(lastEventAt.hashCode, lastSyncAt.hashCode)))))));
int get hashCode => Object.hash(id, type, ownUser, totalUnreadCount,
unreadChannels, lastEventAt, lastSyncAt);
@override
bool operator ==(Object other) =>
identical(this, other) ||
@@ -5212,7 +5102,7 @@ class $ConnectionEventsTable extends ConnectionEvents
Set<GeneratedColumn> get $primaryKey => {id};
@override
ConnectionEventEntity map(Map<String, dynamic> data, {String? tablePrefix}) {
return ConnectionEventEntity.fromData(data, _db,
return ConnectionEventEntity.fromData(data,
prefix: tablePrefix != null ? '$tablePrefix.' : null);
}
@@ -5225,9 +5115,10 @@ class $ConnectionEventsTable extends ConnectionEvents
MapConverter();
}
abstract class _$MoorChatDatabase extends GeneratedDatabase {
_$MoorChatDatabase(QueryExecutor e) : super(SqlTypeSystem.defaultInstance, e);
_$MoorChatDatabase.connect(DatabaseConnection c) : super.connect(c);
abstract class _$DriftChatDatabase extends GeneratedDatabase {
_$DriftChatDatabase(QueryExecutor e)
: super(SqlTypeSystem.defaultInstance, e);
_$DriftChatDatabase.connect(DatabaseConnection c) : super.connect(c);
late final $ChannelsTable channels = $ChannelsTable(this);
late final $MessagesTable messages = $MessagesTable(this);
late final $PinnedMessagesTable pinnedMessages = $PinnedMessagesTable(this);
@@ -5240,20 +5131,20 @@ abstract class _$MoorChatDatabase extends GeneratedDatabase {
late final $ChannelQueriesTable channelQueries = $ChannelQueriesTable(this);
late final $ConnectionEventsTable connectionEvents =
$ConnectionEventsTable(this);
late final UserDao userDao = UserDao(this as MoorChatDatabase);
late final ChannelDao channelDao = ChannelDao(this as MoorChatDatabase);
late final MessageDao messageDao = MessageDao(this as MoorChatDatabase);
late final UserDao userDao = UserDao(this as DriftChatDatabase);
late final ChannelDao channelDao = ChannelDao(this as DriftChatDatabase);
late final MessageDao messageDao = MessageDao(this as DriftChatDatabase);
late final PinnedMessageDao pinnedMessageDao =
PinnedMessageDao(this as MoorChatDatabase);
PinnedMessageDao(this as DriftChatDatabase);
late final PinnedMessageReactionDao pinnedMessageReactionDao =
PinnedMessageReactionDao(this as MoorChatDatabase);
late final MemberDao memberDao = MemberDao(this as MoorChatDatabase);
late final ReactionDao reactionDao = ReactionDao(this as MoorChatDatabase);
late final ReadDao readDao = ReadDao(this as MoorChatDatabase);
PinnedMessageReactionDao(this as DriftChatDatabase);
late final MemberDao memberDao = MemberDao(this as DriftChatDatabase);
late final ReactionDao reactionDao = ReactionDao(this as DriftChatDatabase);
late final ReadDao readDao = ReadDao(this as DriftChatDatabase);
late final ChannelQueryDao channelQueryDao =
ChannelQueryDao(this as MoorChatDatabase);
ChannelQueryDao(this as DriftChatDatabase);
late final ConnectionEventDao connectionEventDao =
ConnectionEventDao(this as MoorChatDatabase);
ConnectionEventDao(this as DriftChatDatabase);
@override
Iterable<TableInfo> get allTables => allSchemaEntities.whereType<TableInfo>();
@override
@@ -2,27 +2,27 @@
import 'dart:io';
import 'dart:isolate';
import 'package:moor/ffi.dart';
import 'package:moor/isolate.dart';
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
import 'package:drift/isolate.dart';
import 'package:drift/native.dart';
import 'package:path/path.dart';
import 'package:path_provider/path_provider.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import 'package:stream_chat_persistence/src/stream_chat_persistence_client.dart';
import 'package:stream_chat_persistence/stream_chat_persistence.dart';
/// A Helper class to construct new instances of [MoorChatDatabase] specifically
/// for native platform applications
/// A Helper class to construct new instances of [DriftChatDatabase]
/// specifically for native platform applications.
class SharedDB {
/// Returns a new instance of [MoorChatDatabase].
static MoorChatDatabase constructDatabase(
/// Returns a new instance of [DriftChatDatabase].
static DriftChatDatabase constructDatabase(
String userId, {
bool logStatements = false,
ConnectionMode connectionMode = ConnectionMode.regular,
}) {
final dbName = 'db_$userId';
if (connectionMode == ConnectionMode.background) {
return MoorChatDatabase.connect(
return DriftChatDatabase.connect(
userId,
DatabaseConnection.delayed(Future(() async {
final isolate = await _createMoorIsolate(
@@ -33,7 +33,7 @@ class SharedDB {
})),
);
}
return MoorChatDatabase(
return DriftChatDatabase(
userId,
LazyDatabase(
() async => _constructDatabase(
@@ -44,7 +44,7 @@ class SharedDB {
);
}
static Future<VmDatabase> _constructDatabase(
static Future<NativeDatabase> _constructDatabase(
String dbName, {
bool logStatements = false,
}) async {
@@ -52,27 +52,27 @@ class SharedDB {
final dir = await getApplicationDocumentsDirectory();
final path = join(dir.path, '$dbName.sqlite');
final file = File(path);
return VmDatabase(file, logStatements: logStatements);
return NativeDatabase(file, logStatements: logStatements);
}
if (Platform.isMacOS || Platform.isLinux) {
final file = File('$dbName.sqlite');
return VmDatabase(file, logStatements: logStatements);
return NativeDatabase(file, logStatements: logStatements);
}
return VmDatabase.memory(logStatements: logStatements);
return NativeDatabase.memory(logStatements: logStatements);
}
static void _startBackground(_IsolateStartRequest request) {
final executor = LazyDatabase(() async => VmDatabase(
final executor = LazyDatabase(() async => NativeDatabase(
File(request.targetPath),
logStatements: request.logStatements,
));
final moorIsolate = MoorIsolate.inCurrent(
final moorIsolate = DriftIsolate.inCurrent(
() => DatabaseConnection.fromExecutor(executor),
);
request.sendMoorIsolate.send(moorIsolate);
}
static Future<MoorIsolate> _createMoorIsolate(
static Future<DriftIsolate> _createMoorIsolate(
String dbName, {
bool logStatements = false,
}) async {
@@ -89,7 +89,7 @@ class SharedDB {
),
);
return await receivePort.first as MoorIsolate;
return await receivePort.first as DriftIsolate;
}
}
@@ -1,11 +1,11 @@
// coverage:ignore-file
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import 'package:stream_chat_persistence/stream_chat_persistence.dart';
/// A Helper class to construct new instances of [MoorChatDatabase]
/// A Helper class to construct new instances of [DriftChatDatabase]
class SharedDB {
/// Returns a new instance of [MoorChatDatabase].
static MoorChatDatabase constructDatabase(
/// Returns a new instance of [DriftChatDatabase].
static DriftChatDatabase constructDatabase(
String userId, {
bool logStatements = false,
ConnectionMode connectionMode = ConnectionMode.regular,
@@ -1,19 +1,19 @@
// coverage:ignore-file
import 'package:moor/moor_web.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:drift/web.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import 'package:stream_chat_persistence/src/stream_chat_persistence_client.dart';
/// A Helper class to construct new instances of [MoorChatDatabase] specifically
/// for Web applications
/// A Helper class to construct new instances of [DriftChatDatabase]
/// specifically for Web applications.
class SharedDB {
/// Returns a new instance of [MoorChatDatabase].
static MoorChatDatabase constructDatabase(
/// Returns a new instance of [DriftChatDatabase].
static DriftChatDatabase constructDatabase(
String userId, {
bool logStatements = false,
ConnectionMode connectionMode = ConnectionMode.regular, // Ignored on web
}) {
final dbName = 'db_$userId';
final queryExecutor = WebDatabase(dbName, logStatements: logStatements);
return MoorChatDatabase(userId, queryExecutor);
return DriftChatDatabase(userId, queryExecutor);
}
}
@@ -1,5 +1,5 @@
// coverage:ignore-file
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
/// Represents a [ChannelQueries] table in [MoorChatDatabase].
@DataClassName('ChannelQueryEntity')
@@ -1,5 +1,5 @@
// coverage:ignore-file
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
import 'package:stream_chat_persistence/src/converter/map_converter.dart';
/// Represents a [Channels] table in [MoorChatDatabase].
@@ -1,5 +1,5 @@
// coverage:ignore-file
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
import 'package:stream_chat_persistence/src/converter/map_converter.dart';
/// Represents a [ConnectionEvents] table in [MoorChatDatabase].
@@ -1,5 +1,5 @@
// coverage:ignore-file
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
/// Represents a [Members] table in [MoorChatDatabase].
@DataClassName('MemberEntity')
@@ -1,5 +1,5 @@
// coverage:ignore-file
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
import 'package:stream_chat_persistence/src/converter/list_converter.dart';
import 'package:stream_chat_persistence/src/converter/map_converter.dart';
import 'package:stream_chat_persistence/src/converter/message_sending_status_converter.dart';
@@ -1,5 +1,5 @@
// coverage:ignore-file
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
import 'package:stream_chat_persistence/src/entity/reactions.dart';
@@ -1,5 +1,5 @@
// coverage:ignore-file
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
import 'package:stream_chat_persistence/src/entity/messages.dart';
@@ -1,5 +1,5 @@
// coverage:ignore-file
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
import 'package:stream_chat_persistence/src/converter/map_converter.dart';
/// Represents a [Reactions] table in [MoorChatDatabase].
@@ -1,5 +1,5 @@
// coverage:ignore-file
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
/// Represents a [Reads] table in [MoorChatDatabase].
@DataClassName('ReadEntity')
@@ -1,5 +1,5 @@
// coverage:ignore-file
import 'package:moor/moor.dart';
import 'package:drift/drift.dart';
import 'package:stream_chat_persistence/src/converter/map_converter.dart';
/// Represents a [Users] table in [MoorChatDatabase].
@@ -1,5 +1,5 @@
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
/// Useful mapping functions for [ChannelEntity]
extension ChannelEntityX on ChannelEntity {
@@ -1,5 +1,5 @@
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
/// Useful mapping functions for [ConnectionEventEntity]
extension ConnectionEventX on ConnectionEventEntity {
@@ -1,5 +1,5 @@
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
/// Useful mapping functions for [MemberEntity]
extension MemberEntityX on MemberEntity {
@@ -1,7 +1,7 @@
import 'dart:convert';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
/// Useful mapping functions for [MessageEntity]
extension MessageEntityX on MessageEntity {
@@ -1,7 +1,7 @@
import 'dart:convert';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
/// Useful mapping functions for [PinnedMessageEntity]
extension PinnedMessageEntityX on PinnedMessageEntity {
@@ -1,5 +1,5 @@
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
/// Useful mapping functions for [PinnedMessageReactionEntity]
extension PinnedMessageReactionEntityX on PinnedMessageReactionEntity {
@@ -1,5 +1,5 @@
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
/// Useful mapping functions for [ReactionEntity]
extension ReactionEntityX on ReactionEntity {
@@ -1,5 +1,5 @@
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
/// Useful mapping functions for [ReadEntity]
extension ReadEntityX on ReadEntity {
@@ -1,5 +1,5 @@
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
/// Useful mapping functions for [UserEntity]
extension UserEntityX on UserEntity {
@@ -4,7 +4,7 @@ import 'package:meta/meta.dart';
import 'package:mutex/mutex.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
/// Various connection modes on which [StreamChatPersistenceClient] can work
enum ConnectionMode {
@@ -15,8 +15,8 @@ enum ConnectionMode {
background,
}
/// Signature for a function which provides instance of [MoorChatDatabase]
typedef DatabaseProvider = MoorChatDatabase Function(String, ConnectionMode);
/// Signature for a function which provides instance of [DriftChatDatabase]
typedef DatabaseProvider = DriftChatDatabase Function(String, ConnectionMode);
final _levelEmojiMapper = {
Level.INFO: '',
@@ -24,7 +24,7 @@ final _levelEmojiMapper = {
Level.SEVERE: '🚨',
};
/// A [MoorChatDatabase] based implementation of the [ChatPersistenceClient]
/// A [DriftChatDatabase] based implementation of the [ChatPersistenceClient]
class StreamChatPersistenceClient extends ChatPersistenceClient {
/// Creates a new instance of the stream chat persistence client
StreamChatPersistenceClient({
@@ -37,9 +37,9 @@ class StreamChatPersistenceClient extends ChatPersistenceClient {
_logger.onRecord.listen(logHandlerFunction ?? _defaultLogHandler);
}
/// [MoorChatDatabase] instance used by this client.
/// [DriftChatDatabase] instance used by this client.
@visibleForTesting
MoorChatDatabase? db;
DriftChatDatabase? db;
final Logger _logger;
final ConnectionMode _connectionMode;
@@ -70,7 +70,7 @@ class StreamChatPersistenceClient extends ChatPersistenceClient {
return true;
}
MoorChatDatabase _defaultDatabaseProvider(
DriftChatDatabase _defaultDatabaseProvider(
String userId,
ConnectionMode mode,
) =>
@@ -10,11 +10,11 @@ environment:
flutter: ">=1.17.0"
dependencies:
drift: ^1.0.0
flutter:
sdk: flutter
logging: ^1.0.1
meta: ^1.3.0
moor: ^4.4.0
mutex: ^3.0.0
path: ^1.8.0
path_provider: ^2.0.1
@@ -24,7 +24,7 @@ dependencies:
dev_dependencies:
build_runner: ^2.0.1
dart_code_metrics: ^4.4.0
drift_dev: ^1.0.0
flutter_test:
sdk: flutter
mocktail: ^0.1.1
moor_generator: ^4.2.1
mocktail: ^0.1.1
@@ -1,8 +1,8 @@
import 'package:mocktail/mocktail.dart';
import 'package:stream_chat_persistence/src/dao/dao.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
class MockChatDatabase extends Mock implements MoorChatDatabase {
class MockChatDatabase extends Mock implements DriftChatDatabase {
UserDao? _userDao;
@override
@@ -1,13 +1,13 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/dao/channel_dao.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import '../../stream_chat_persistence_client_test.dart';
void main() {
late ChannelDao channelDao;
late MoorChatDatabase database;
late DriftChatDatabase database;
setUp(() {
database = testDatabaseProvider('testUserId');
@@ -1,13 +1,13 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/dao/channel_query_dao.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import '../../stream_chat_persistence_client_test.dart';
import '../utils/date_matcher.dart';
void main() {
late MoorChatDatabase database;
late DriftChatDatabase database;
late ChannelQueryDao channelQueryDao;
setUp(() {
@@ -1,14 +1,14 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/dao/connection_event_dao.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import '../../stream_chat_persistence_client_test.dart';
import '../utils/date_matcher.dart';
void main() {
late ConnectionEventDao eventDao;
late MoorChatDatabase database;
late DriftChatDatabase database;
setUp(() {
database = testDatabaseProvider('testUserId');
@@ -3,14 +3,14 @@ import 'dart:math' as math;
import 'package:flutter_test/flutter_test.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/dao/dao.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import '../../stream_chat_persistence_client_test.dart';
import '../utils/date_matcher.dart';
void main() {
late MemberDao memberDao;
late MoorChatDatabase database;
late DriftChatDatabase database;
setUp(() {
database = testDatabaseProvider('testUserId');
@@ -3,13 +3,13 @@ import 'dart:math' as math;
import 'package:flutter_test/flutter_test.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/dao/dao.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import '../../stream_chat_persistence_client_test.dart';
void main() {
late MessageDao messageDao;
late MoorChatDatabase database;
late DriftChatDatabase database;
setUp(() {
database = testDatabaseProvider('testUserId');
@@ -3,13 +3,13 @@ import 'dart:math' as math;
import 'package:flutter_test/flutter_test.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/dao/dao.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import '../../stream_chat_persistence_client_test.dart';
void main() {
late PinnedMessageDao pinnedMessageDao;
late MoorChatDatabase database;
late DriftChatDatabase database;
setUp(() {
database = testDatabaseProvider('testUserId');
@@ -3,13 +3,13 @@ import 'dart:math' as math;
import 'package:flutter_test/flutter_test.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/dao/pinned_message_reaction_dao.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import '../../stream_chat_persistence_client_test.dart';
void main() {
late PinnedMessageReactionDao pinnedMessageReactionDao;
late MoorChatDatabase database;
late DriftChatDatabase database;
setUp(() {
database = testDatabaseProvider('testUserId');
@@ -3,13 +3,13 @@ import 'dart:math' as math;
import 'package:flutter_test/flutter_test.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/dao/reaction_dao.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import '../../stream_chat_persistence_client_test.dart';
void main() {
late ReactionDao reactionDao;
late MoorChatDatabase database;
late DriftChatDatabase database;
setUp(() {
database = testDatabaseProvider('testUserId');
@@ -1,14 +1,14 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/dao/dao.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import '../../stream_chat_persistence_client_test.dart';
import '../utils/date_matcher.dart';
void main() {
late ReadDao readDao;
late MoorChatDatabase database;
late DriftChatDatabase database;
setUp(() {
database = testDatabaseProvider('testUserId');
@@ -3,13 +3,13 @@ import 'dart:math' as math;
import 'package:flutter_test/flutter_test.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/dao/dao.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import '../../stream_chat_persistence_client_test.dart';
void main() {
late UserDao userDao;
late MoorChatDatabase database;
late DriftChatDatabase database;
setUp(() {
database = testDatabaseProvider('testUserId');
@@ -1,19 +1,19 @@
import 'package:drift/drift.dart' hide isNotNull;
import 'package:drift/isolate.dart';
import 'package:drift/native.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:moor/ffi.dart';
import 'package:moor/isolate.dart';
import 'package:moor/moor.dart' hide isNotNull;
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
DatabaseConnection _backgroundConnection() =>
DatabaseConnection.fromExecutor(VmDatabase.memory());
DatabaseConnection.fromExecutor(NativeDatabase.memory());
void main() {
test(
'default constructor should create a new instance of MoorChatDatabase',
() async {
const userId = 'testUserId';
final executor = VmDatabase.memory();
final database = MoorChatDatabase(userId, executor);
final executor = NativeDatabase.memory();
final database = DriftChatDatabase(userId, executor);
expect(database, isNotNull);
expect(database.userId, userId);
@@ -27,10 +27,10 @@ void main() {
'connect constructor should create a new instance of MoorChatDatabase',
() async {
const userId = 'testUserId';
final isolate = await MoorIsolate.spawn(_backgroundConnection);
final isolate = await DriftIsolate.spawn(_backgroundConnection);
final connection = DatabaseConnection.delayed(isolate.connect());
final database = MoorChatDatabase.connect(userId, connection);
final database = DriftChatDatabase.connect(userId, connection);
expect(database, isNotNull);
expect(database.userId, userId);
@@ -2,7 +2,7 @@ import 'dart:math' as math;
import 'package:flutter_test/flutter_test.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import 'package:stream_chat_persistence/src/mapper/channel_mapper.dart';
import '../utils/date_matcher.dart';
@@ -1,6 +1,6 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import 'package:stream_chat_persistence/src/mapper/event_mapper.dart';
import '../utils/date_matcher.dart';
@@ -2,7 +2,7 @@ import 'dart:math' as math;
import 'package:flutter_test/flutter_test.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import 'package:stream_chat_persistence/src/mapper/member_mapper.dart';
import '../utils/date_matcher.dart';
@@ -3,7 +3,7 @@ import 'dart:math' as math;
import 'package:flutter_test/flutter_test.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import 'package:stream_chat_persistence/src/mapper/message_mapper.dart';
import '../utils/date_matcher.dart';
@@ -3,7 +3,7 @@ import 'dart:math' as math;
import 'package:flutter_test/flutter_test.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import 'package:stream_chat_persistence/src/mapper/pinned_message_mapper.dart';
import '../utils/date_matcher.dart';
@@ -1,6 +1,6 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import 'package:stream_chat_persistence/src/mapper/pinned_message_reaction_mapper.dart';
import '../utils/date_matcher.dart';
@@ -1,6 +1,6 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import 'package:stream_chat_persistence/src/mapper/reaction_mapper.dart';
import '../utils/date_matcher.dart';
@@ -1,6 +1,6 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import 'package:stream_chat_persistence/src/mapper/read_mapper.dart';
import '../utils/date_matcher.dart';
@@ -2,7 +2,7 @@ import 'dart:math' as math;
import 'package:flutter_test/flutter_test.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import 'package:stream_chat_persistence/src/mapper/user_mapper.dart';
import '../utils/date_matcher.dart';
@@ -1,15 +1,15 @@
import 'package:drift/native.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mocktail/mocktail.dart';
import 'package:moor/ffi.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
import 'package:stream_chat_persistence/src/db/drift_chat_database.dart';
import 'package:stream_chat_persistence/src/stream_chat_persistence_client.dart';
import 'mock_chat_database.dart';
import 'src/utils/date_matcher.dart';
MoorChatDatabase testDatabaseProvider(String userId, [ConnectionMode? mode]) =>
MoorChatDatabase(userId, VmDatabase.memory());
DriftChatDatabase testDatabaseProvider(String userId, [ConnectionMode? mode]) =>
DriftChatDatabase(userId, NativeDatabase.memory());
void main() {
group('connect', () {
@@ -19,7 +19,7 @@ void main() {
expect(client.db, isNull);
await client.connect(userId, databaseProvider: testDatabaseProvider);
expect(client.db, isNotNull);
expect(client.db, isA<MoorChatDatabase>());
expect(client.db, isA<DriftChatDatabase>());
expect(client.db!.userId, userId);
addTearDown(() async {
@@ -33,7 +33,7 @@ void main() {
await client.connect(userId, databaseProvider: testDatabaseProvider);
expect(client.db, isNotNull);
expect(client.db, isNotNull);
expect(client.db, isA<MoorChatDatabase>());
expect(client.db, isA<DriftChatDatabase>());
expect(client.db!.userId, userId);
expect(
() => client.connect(userId, databaseProvider: testDatabaseProvider),
@@ -58,7 +58,7 @@ void main() {
group('client functions', () {
const userId = 'testUserId';
final mockDatabase = MockChatDatabase();
MoorChatDatabase _mockDatabaseProvider(_, __) => mockDatabase;
DriftChatDatabase _mockDatabaseProvider(_, __) => mockDatabase;
late StreamChatPersistenceClient client;
setUp(() async {