Ankilan/src/actions/dictionary/get-translate.js

59 lines
1.4 KiB
JavaScript

import yDictionary from '../api/yandex-dictionary';
const selectByPos = wordArray => {
let posSet = new Set();
let selectedArray = [];
wordArray.forEach((result, id) => {
const pos = result.pos;
if (!posSet.has(pos)) {
posSet.add(pos);
selectedArray.push(result);
}
});
return selectedArray;
};
export const compoundWithYDictionary = async (definitionList, word) => {
try {
const translations = await yDictionary(word);
const words = definitionList.words;
let compounded = [];
console.log('YANDEX ', translations);
console.log('WORDS', definitionList);
let PoSes = new Set();
translations.forEach(tr => PoSes.add(tr.pos));
words.forEach(df => PoSes.add(df.pos));
PoSes.forEach(pos => {
let trs = [];
translations.forEach(tr => {
if (tr.pos === pos) {
tr.tr.forEach(trans => trs.push(trans));
}
});
let definitions = [];
words.forEach(word => {
if (word.pos === pos) {
word.definitions.forEach(w => definitions.push(w));
}
});
// compounded.push({pos, trs, definitions});
compounded.push({
pos: pos,
translates: trs,
definitions,
});
});
return {
word,
pronunciation: `/${definitionList.pronunciation}/`,
compounded,
examples: words.examples,
};
} catch (e) {
console.log('error is HERE', e);
}
};