| import {TranslationSentences} from './types/StreamingTypes'; |
|
|
| export function getTotalSentencesLength( |
| translatedSentences: TranslationSentences, |
| ) { |
| return translatedSentences.reduce((acc, curr) => acc + curr.length, 0); |
| } |
|
|
| |
| |
| |
| |
| |
| export function sliceTranslationSentencesUpToIndex( |
| translatedSentences: TranslationSentences, |
| targetIndex: number, |
| ): TranslationSentences { |
| return translatedSentences.reduce<TranslationSentences>((acc, sentence) => { |
| const accTotalLength = getTotalSentencesLength(acc); |
| if (accTotalLength === targetIndex) { |
| return acc; |
| } |
| |
| if (accTotalLength + sentence.length <= targetIndex) { |
| return [...acc, sentence]; |
| } |
| |
| return [...acc, sentence.slice(0, targetIndex - accTotalLength)]; |
| }, []); |
| } |
|
|