multilingual-game-words
Version:
Words for games like taboo/pictionary/charades/catchphrase/etc in many different languages.
34 lines (33 loc) • 1.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.gameWords = void 0;
const supportedLangs_1 = require("./supportedLangs");
const cachedGameWords = {};
const gameWords = async (languageCode) => {
const lang = (0, supportedLangs_1.verifySupportedLang)(languageCode);
if (cachedGameWords[lang]) {
return cachedGameWords[lang];
}
const languageData = await (0, supportedLangs_1.getWordData)(lang);
const translations = {};
for (const conceptId of Object.keys(languageData)) {
const { form, concept, transliteration } = languageData[conceptId];
const en = concept.split('/')[0];
translations[form] = { en };
if (transliteration) {
translations[form].transliteration = transliteration;
}
}
function toWordPair(word) {
return {
word,
...translations[word],
};
}
const out = {
getAllWords: () => Object.keys(translations).map(toWordPair),
};
cachedGameWords[languageCode] = out;
return out;
};
exports.gameWords = gameWords;