Files
doneit-web/src/app/module/chat/infra/database/dexie/service.ts
T

35 lines
1.2 KiB
TypeScript
Raw Normal View History

2024-08-07 19:30:20 +01:00
2024-08-14 15:29:16 +01:00
import { Dexie } from 'Dexie';
2024-08-07 19:30:20 +01:00
import { DexieMessageTable, messageTableColumn, MessageTable } from './schema/message';
import { DexieMembersTableSchema, MemberTableColumn } from './schema/members';
2024-08-14 15:29:16 +01:00
import { DexieRoomsTable, RoomTableColumn } from './schema/room';
import { DexieTypingsTable, TypingTableColumn } from './schema/typing';
2024-08-26 14:47:03 +01:00
import { MessageEntity } from '../../../../../core/chat/entity/message';
2024-08-17 22:05:57 +01:00
import { AttachmentTableColumn, DexieAttachmentsTableSchema } from './schema/attachment';
// import FDBFactory from 'fake-indexeddb/lib/FDBFactory';
// import FDBKeyRange from 'fake-indexeddb/lib/FDBKeyRange';
2024-08-07 19:30:20 +01:00
// Database declaration (move this to its own module also)
2024-08-17 22:05:57 +01:00
export const chatDatabase = new Dexie('chat-database-infra',{
// indexedDB: new FDBFactory,
// IDBKeyRange: FDBKeyRange, // Mocking IDBKeyRange
}) as Dexie & {
2024-08-07 19:30:20 +01:00
message: DexieMessageTable,
members: DexieMembersTableSchema,
2024-08-14 15:29:16 +01:00
room: DexieRoomsTable,
typing: DexieTypingsTable,
2024-08-13 10:52:35 +01:00
attachment: DexieAttachmentsTableSchema,
2024-08-07 19:30:20 +01:00
};
chatDatabase.version(1).stores({
message: messageTableColumn,
members: MemberTableColumn,
room: RoomTableColumn,
2024-08-13 10:52:35 +01:00
typing: TypingTableColumn,
attachment: AttachmentTableColumn
2024-08-07 19:30:20 +01:00
});
2024-08-07 20:23:33 +01:00
chatDatabase.message.mapToClass(MessageEntity)
2024-08-26 14:47:03 +01:00
// Apply in-memory storage