summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorpolwex <polwex@sortug.com>2025-05-15 20:32:25 +0700
committerpolwex <polwex@sortug.com>2025-05-15 20:32:25 +0700
commitfd86dc15734f3b7126d88f0130897c597100e30a (patch)
tree253890a5f0bde7bc460904ce1743581f53a23d5b /src/lib
parent3d4b740e5a512db8fbdd934af2fbc9585fa00f0f (diff)
m
Diffstat (limited to 'src/lib')
-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 = `