diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-12-31 01:29:39 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-12-31 01:29:39 +0900 |
| commit | c1d24e24449808e4235fa586fbeb5760a36bc6bb (patch) | |
| tree | fb829349a2a6b33b5cf63f52d089efac24e1ec7b /src/client/sync | |
| parent | 264c64090070dc87c4b61077934929e80d4d0142 (diff) | |
| download | kioku-c1d24e24449808e4235fa586fbeb5760a36bc6bb.tar.gz kioku-c1d24e24449808e4235fa586fbeb5760a36bc6bb.tar.zst kioku-c1d24e24449808e4235fa586fbeb5760a36bc6bb.zip | |
feat(client): add note-related tables to client IndexedDB
Add LocalNoteType, LocalNoteFieldType, LocalNote, and LocalNoteFieldValue
interfaces and tables to the client database for Anki-compatible note
system. Update LocalCard interface with noteId and isReversed fields.
Includes Dexie schema version 2 with upgrade handler for existing cards.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'src/client/sync')
| -rw-r--r-- | src/client/sync/conflict.ts | 2 | ||||
| -rw-r--r-- | src/client/sync/pull.test.ts | 2 | ||||
| -rw-r--r-- | src/client/sync/pull.ts | 4 | ||||
| -rw-r--r-- | src/client/sync/push.test.ts | 4 | ||||
| -rw-r--r-- | src/client/sync/queue.test.ts | 2 |
5 files changed, 14 insertions, 0 deletions
diff --git a/src/client/sync/conflict.ts b/src/client/sync/conflict.ts index 4e0e3ef..e4f1cbf 100644 --- a/src/client/sync/conflict.ts +++ b/src/client/sync/conflict.ts @@ -65,6 +65,8 @@ function serverCardToLocal(card: ServerCard): LocalCard { return { id: card.id, deckId: card.deckId, + noteId: card.noteId ?? null, + isReversed: card.isReversed ?? null, front: card.front, back: card.back, state: card.state as LocalCard["state"], diff --git a/src/client/sync/pull.test.ts b/src/client/sync/pull.test.ts index 23c64ef..84c22bd 100644 --- a/src/client/sync/pull.test.ts +++ b/src/client/sync/pull.test.ts @@ -107,6 +107,8 @@ describe("pullResultToLocalData", () => { expect(result.cards[0]).toEqual({ id: "card-1", deckId: "deck-1", + noteId: null, + isReversed: null, front: "Question", back: "Answer", state: CardState.Review, diff --git a/src/client/sync/pull.ts b/src/client/sync/pull.ts index 333782c..fa0899b 100644 --- a/src/client/sync/pull.ts +++ b/src/client/sync/pull.ts @@ -28,6 +28,8 @@ export interface ServerDeck { export interface ServerCard { id: string; deckId: string; + noteId?: string | null; + isReversed?: boolean | null; front: string; back: string; state: number; @@ -104,6 +106,8 @@ function serverCardToLocal(card: ServerCard): LocalCard { return { id: card.id, deckId: card.deckId, + noteId: card.noteId ?? null, + isReversed: card.isReversed ?? null, front: card.front, back: card.back, state: card.state as CardStateType, diff --git a/src/client/sync/push.test.ts b/src/client/sync/push.test.ts index 911a8d3..a3ff154 100644 --- a/src/client/sync/push.test.ts +++ b/src/client/sync/push.test.ts @@ -77,6 +77,8 @@ describe("pendingChangesToPushData", () => { { id: "card-1", deckId: "deck-1", + noteId: null, + isReversed: null, front: "Question", back: "Answer", state: CardState.Review, @@ -128,6 +130,8 @@ describe("pendingChangesToPushData", () => { { id: "card-1", deckId: "deck-1", + noteId: null, + isReversed: null, front: "New Card", back: "Answer", state: CardState.New, diff --git a/src/client/sync/queue.test.ts b/src/client/sync/queue.test.ts index f6a3019..b62ece2 100644 --- a/src/client/sync/queue.test.ts +++ b/src/client/sync/queue.test.ts @@ -420,6 +420,8 @@ describe("SyncQueue", () => { const serverCard = { id: "server-card-1", deckId: deck.id, + noteId: null, + isReversed: null, front: "Server Question", back: "Server Answer", state: CardState.New, |
