UNPKG

just-jokes

Version:

Random Joke and YoMomma Joke Generator Package

77 lines (76 loc) 2.59 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getYoMommaJokes = exports.getYoMommaJoke = exports.getRandomJokes = exports.getRandomJoke = void 0; const jokes_json_1 = __importDefault(require("../jokes/jokes.json")); const yomomma_json_1 = __importDefault(require("../jokes/yomomma.json")); const YOMOMMA_MAX = yomomma_json_1.default.length; const RANDOM_MAX = jokes_json_1.default.length; const MAX_JOKE_COUNT = 50; const uniqueIndex = (maxNr) => { const array = []; for (let i = 0; i < maxNr; i++) { const random = Math.floor(Math.random() * YOMOMMA_MAX); array.push(random); } return array; }; const getRandomJoke = () => { const randomIndex = Math.floor(Math.random() * RANDOM_MAX); return jokes_json_1.default[randomIndex]; }; exports.getRandomJoke = getRandomJoke; const getRandomJokes = (numberOfJokes = 1) => { if (numberOfJokes <= 0) { throw new Error('Number of jokes must be greater than 0'); } const randomJokes = []; const fetchJokes = (count) => { for (let i = 0; i < count; i++) { randomJokes.push(getRandomJoke()); } return randomJokes; }; if (numberOfJokes > MAX_JOKE_COUNT) { return fetchJokes(MAX_JOKE_COUNT); } return fetchJokes(numberOfJokes); }; exports.getRandomJokes = getRandomJokes; const getYoMommaJoke = () => { const randomIndex = Math.floor(Math.random() * YOMOMMA_MAX); const joke = yomomma_json_1.default[randomIndex]; return { id: randomIndex, type: 'yo-momma', setup: undefined, punchline: joke }; }; exports.getYoMommaJoke = getYoMommaJoke; const getYoMommaJokes = (numberOfJokes = 1) => { if (numberOfJokes <= 0) { throw new Error('Number of jokes must be greater than 0'); } const fetchJokes = (count) => { const randomJokes = []; const jokesArray = uniqueIndex(count); jokesArray.forEach(jokeIndex => { const joke = yomomma_json_1.default[jokeIndex]; randomJokes.push({ id: jokeIndex, type: 'yo-momma', setup: undefined, punchline: joke }); }); return randomJokes; }; if (numberOfJokes > MAX_JOKE_COUNT) { return fetchJokes(MAX_JOKE_COUNT); } return fetchJokes(numberOfJokes); }; exports.getYoMommaJokes = getYoMommaJokes;