From 2d9235070856c0a5032ddf47f7b1dc7cc5cceb60 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Thu, 25 Jul 2024 00:19:44 -0700 Subject: refactor(Database): separate providers --- src/lib/Database/IndexedDB/activities.ts | 22 ++++++++++++++++++++++ src/lib/Database/IndexedDB/chapters.ts | 22 ++++++++++++++++++++++ src/lib/Database/IndexedDB/user.ts | 23 +++++++++++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 src/lib/Database/IndexedDB/activities.ts create mode 100644 src/lib/Database/IndexedDB/chapters.ts create mode 100644 src/lib/Database/IndexedDB/user.ts (limited to 'src/lib/Database/IndexedDB') diff --git a/src/lib/Database/IndexedDB/activities.ts b/src/lib/Database/IndexedDB/activities.ts new file mode 100644 index 00000000..6a505ff3 --- /dev/null +++ b/src/lib/Database/IndexedDB/activities.ts @@ -0,0 +1,22 @@ +import type { ActivitiesPage } from '$lib/Data/AniList/activity'; +import Dexie, { type Table } from 'dexie'; + +export interface ActivityPage { + page: number; + data: ActivitiesPage; +} + +export class ActivityDatabase extends Dexie { + activities: Table; + + constructor() { + super('activities'); + this.version(1).stores({ + activities: 'page, data' + }); + + this.activities = this.table('activities'); + } +} + +export const database = new ActivityDatabase(); diff --git a/src/lib/Database/IndexedDB/chapters.ts b/src/lib/Database/IndexedDB/chapters.ts new file mode 100644 index 00000000..0f77f0a0 --- /dev/null +++ b/src/lib/Database/IndexedDB/chapters.ts @@ -0,0 +1,22 @@ +import Dexie, { type Table } from 'dexie'; + +export interface Chapter { + id: number; + chapters: number | null; + volumes: number | null; +} + +export class ChapterDatabase extends Dexie { + chapters: Table; + + constructor() { + super('chapters'); + this.version(1).stores({ + chapters: 'id, chapters, volumes' + }); + + this.chapters = this.table('chapters'); + } +} + +export const database = new ChapterDatabase(); diff --git a/src/lib/Database/IndexedDB/user.ts b/src/lib/Database/IndexedDB/user.ts new file mode 100644 index 00000000..e7285a07 --- /dev/null +++ b/src/lib/Database/IndexedDB/user.ts @@ -0,0 +1,23 @@ +import type { AniListAuthorisation } from '$lib/Data/AniList/identity'; +import Dexie, { type Table } from 'dexie'; + +export interface User { + id: number; + user: AniListAuthorisation; + lastNotificationID: number | null; +} + +export class UserDatabase extends Dexie { + users: Table; + + constructor() { + super('users'); + this.version(1).stores({ + users: 'id, user, lastNotificationID' + }); + + this.users = this.table('users'); + } +} + +export const database = new UserDatabase(); -- cgit v1.2.3