UNPKG

multilingual-game-words

Version:

Words for games like taboo/pictionary/charades/catchphrase/etc in many different languages.

34 lines (33 loc) 1.15 kB
"use strict"; 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;