fix: [frontend] Update the dictionarySearch.remote.ts function in

sveltekit to use the new API endpoints
This commit is contained in:
wilson 2026-05-03 13:32:45 +01:00
parent 170f851344
commit 57fd98d882

View file

@ -1,17 +1,27 @@
import { query, getRequestEvent } from '$app/server';
import * as v from 'valibot';
import {
searchWordformsApiDictionarySearchGet,
searchWordformsPrefixApiDictionarySearchGet,
searchWordformsApiDictionaryWordformsGet
} from '../../../../client';
import { COOKIE_NAME_AUTH_TOKEN } from '$lib/auth';
export type DictionarySearchResult = {
lemma: {
text: string;
};
senses: {
text: string;
id: string;
}[];
};
export const dictionarySearch = query(
v.object({
text: v.string(),
langCode: v.string()
}),
async ({ langCode, text }) => {
async ({ langCode, text }): Promise<DictionarySearchResult[]> => {
const { cookies } = getRequestEvent();
const trimmed = text.trim();
@ -25,14 +35,26 @@ export const dictionarySearch = query(
query: { lang_code: langCode, text }
});
return data;
return (data ?? []).map(({ lemma, senses }) => ({
lemma: { text: lemma.headword },
senses: senses.map(({ gloss, id }) => ({
text: gloss,
id
}))
}));
} else {
const { data } = await searchWordformsApiDictionarySearchGet({
const { data } = await searchWordformsPrefixApiDictionarySearchGet({
headers: { Authorization: `Bearer ${cookies.get(COOKIE_NAME_AUTH_TOKEN)}` },
query: { lang_code: langCode, text }
});
return data;
return (data ?? []).map(({ lemma, senses }) => ({
lemma: { text: lemma.headword },
senses: senses.map(({ gloss, id }) => ({
text: gloss,
id
}))
}));
}
}
);