let [translations] = await translate.translate(text, target);
Функция translate.translate
возвращает (обернутое обещание) массив. Выше эквивалентен
let translationsArray = await translate.translate(text, target);
let foo = translationsArray[0];
Теперь вторая строка:
translations = Array.isArray(translations) ? translations : [translations];
гласит: «если translations
уже массив, ничего с ним не делать, если нет, сделать из него массив из 1 элемента». Итак, на данный момент: ["cat", "dog"]
остается неизменным, но "cat"
становится ["cat"]
.