self.onmessage = async (event) => { if (event.data.type === "api") { const { endpoint, greenLetters, yellowLetters, greyLetters, greenWithIndex } = event.data let response = await fetch(`${endpoint}`, { method: 'POST', body: JSON.stringify({ greenLetters: greenLetters, yellowLetters: yellowLetters, greyLetters: greyLetters, greenWithIndex: greenWithIndex, }), }) let data = await response.json(); data = data.slice(0, 1000) let newWordsLength = 0 let ok = true if (data.length === 0) { self.postMessage("error"); } else { newWordsLength = '' newWordsLength += data.length let result = data.map((item) => { if (item.length === 1) { ok = false newWordsLength = newWordsLength - 1 } else { let ScrabbleLetterScore = ScrabbleScore() sum = 0 item = item.toLowerCase() for (let i = 0; i < item.length; i++) { sum += ScrabbleLetterScore[item[i]] || 0 // for unknown characters } return `
  • ${item.toLowerCase()} ${sum}
  • ` } }) self.postMessage({ result, newWordsLength, ok }); } } }; const ScrabbleScore = (dictonary) => { let twl06_sowpods = { a: 1, e: 1, i: 1, o: 1, u: 1, l: 1, n: 1, r: 1, s: 1, t: 1, d: 2, g: 2, b: 3, c: 3, m: 3, p: 3, f: 4, h: 4, v: 4, w: 4, y: 4, k: 5, j: 8, x: 8, q: 10, z: 10, }; let wwfScore = { a: 1, b: 4, c: 4, d: 2, e: 1, f: 4, g: 3, h: 3, i: 1, j: 10, k: 5, l: 2, m: 4, n: 2, o: 1, p: 4, q: 10, r: 1, s: 1, t: 1, u: 2, v: 5, w: 4, x: 8, y: 3, z: 10, }; if (dictonary === "wwf") { return wwfScore; } else { return twl06_sowpods; } };