import { formatSentenceFurigana } from '../../../anki-integration/sentence-furigana'; import { requestYomitanParseResults } from './yomitan-parser-runtime'; export async function generateSentenceFurigana( text: string, highlightedText: string | undefined, deps: Parameters[1], logger: Parameters[2], ): Promise { let timer: ReturnType | undefined; try { const results = await Promise.race([ requestYomitanParseResults(text, deps, logger), new Promise((_, reject) => { timer = setTimeout( () => reject(new Error('Sentence furigana generation timed out')), 10_000, ); }), ]); return formatSentenceFurigana(text, results, highlightedText); } catch (error) { logger.warn?.('Failed to generate sentence furigana:', error); return null; } finally { clearTimeout(timer); } }