summaryrefslogtreecommitdiff
path: root/src/lib/db
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/db')
-rw-r--r--src/lib/db/index.ts24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/lib/db/index.ts b/src/lib/db/index.ts
index 3d46fd9..a710a1e 100644
--- a/src/lib/db/index.ts
+++ b/src/lib/db/index.ts
@@ -2,6 +2,7 @@ import Database from "bun:sqlite";
import { getDBOffset, wordFactorial } from "../utils";
import type { AddSense, AddWord, State } from "../types";
import { DEFAULT_SRS } from "../services/srs";
+import { DBWord, WordData } from "@/zoom/logic/types";
const PAGE_SIZE = 100;
@@ -199,7 +200,28 @@ class DatabaseHandler {
ORDER BY e.frequency DESC
`;
const query = this.db.query(queryString);
- return query.get(spelling, lang);
+ const row = query.get(spelling, lang) as DBWord | null;
+ if (!row) return row;
+ const sense_array = JSON.parse(row.senses_array);
+ const senses = sense_array.map((s: any) => {
+ const senses = JSON.parse(s.senses);
+ const related = JSON.parse(s.related);
+ const forms = JSON.parse(s.forms);
+ return { ...s, senses, related, forms };
+ });
+ const expression: WordData = {
+ ipa: JSON.parse(row.ipa),
+ prosody: JSON.parse(row.prosody),
+ syllables: row.syllables,
+ frequency: row.frequency,
+ type: row.type,
+ lang: row.lang,
+ spelling: row.spelling,
+ id: row.id,
+ confidence: row.confidence,
+ senses,
+ };
+ return expression;
}
fetchExpressionsByCard(cid: number) {
const queryString = `