import dictionaryJs from 'https://cdn.jsdelivr.net/npm/dictionary-js@0.1.0/+esm' import randomParagraph from 'https://cdn.jsdelivr.net/npm/random-paragraph@1.0.4/+esm' import tokenGenerator from 'https://cdn.jsdelivr.net/npm/generate-token@1.0.1/+esm' export async function generate(userInput) { // Step 1: Generate a token to decide paragraph complexity let token = tokenGenerator.generate(20); let maxSentences = token.length; // Step 2: Break user input into words let words = userInput.split(/\s+/).map(w => w.toLowerCase().replace(/[^a-z]/gi, '')); // Step 3: Lookup definitions for each word (filtering blanks or duplicates) let definitions = []; let seenWords = new Set(); for (let word of words) { if (!seenWords.has(word) && word.length > 1) { seenWords.add(word); try { let result = await dictionaryJs.search(word); if (result && result.length > 0) { definitions.push(`${word}: ${result[0].definition}`); } } catch (err) { console.warn(`No definition found for: ${word}`); } } } // Step 4: Generate a random paragraph using maxSentences let paragraph = randomParagraph({ min: 4, max: maxSentences }); console.log(paragraph); }