2.0.0 • Published 8 months ago
@s3dking/randomjoke v2.0.0
@s3dking/randomjoke
@s3dking/randomjoke is a versatile package for generating and managing various types of jokes, including dad jokes, dark humor, programming jokes, and puns. Version 2.0.0 introduces rating systems, joke tags, and caching for better performance.
Features
- Multiple Joke Categories: Dad jokes, dark humor, programming jokes, and puns
 - Rating System: Rate jokes and get top-rated content
 - Tag-Based Filtering: Find jokes by tags
 - Caching System: Improved performance for repeated requests
 - Multi-Language Support: Basic support for different languages
 - Custom Jokes: Add your own jokes with ratings and tags
 - CLI Support: Complete command-line interface
 
Installation
# Local installation
npm install @s3dking/randomjoke
# Global installation (for CLI usage)
npm install -g @s3dking/randomjokeCLI Usage
Get Jokes
# Basic usage
randomjoke get
randomjoke get -t dark -a 3 -n
# Positional arguments
randomjoke dad 2 trueRate Jokes
randomjoke rate -t dad -i 0 -r 5Submit New Jokes
randomjoke submit -t dad -x "Your joke here" -g "funny,wordplay"Get Top Rated Jokes
randomjoke top -t dark -l 5JavaScript Usage
Basic Usage
const { joke } = require('@s3dking/randomjoke');
// Get jokes from different categories
console.log(joke.dad());
console.log(joke.dark());
console.log(joke.programming());
console.log(joke.puns());
// Get multiple numbered jokes
console.log(joke.dad(3, true));Rating System
// Rate a joke (type, index, rating)
joke.rateJoke('dad', 0, 5);
// Get top rated jokes
const topJokes = joke.getTopRated('dark', 5);Tag-Based Filtering
// Get jokes by tag
const programmingJokes = joke.getByTag('programming');
const foodJokes = joke.getByTag('food');Submit New Jokes
// Submit a new joke
joke.submitJoke(
    "Why do programmers prefer dark mode? Because light attracts bugs!",
    'programming',
    ['programming', 'software'],
    'en'
);API Reference
Joke Generation
joke.dad(amount = 1, numbered = false, minRating = 0)joke.dark(amount = 1, numbered = false, minRating = 0)joke.programming(amount = 1, numbered = false, minRating = 0)joke.puns(amount = 1, numbered = false, minRating = 0)
Rating System
joke.rateJoke(type, index, rating)joke.getTopRated(type, limit = 10)
Tag System
joke.getByTag(tag)
Custom Jokes
joke.submitJoke(text, type, tags = [], language = 'en')joke.custom(jokes, amount = 1, numbered = false)
Advanced Generation
joke.generate({ type, numbered = false, jokes = 1 })
Error Handling
- Invalid joke types will throw an error
 - Ratings must be between 1 and 5
 - Joke submissions require valid type and text
 - Cache is automatically cleared on joke submissions
 
Breaking Changes from v1.x
- Joke objects now include ratings and tags
 - New categories: programming and puns
 - Modified return format for rated jokes
 - New dependencies added
 - CLI command structure changes