UNPKG

crush-feelings

Version:

Simulate crush interactions in code!

139 lines (105 loc) 4.06 kB
# Crush Feelings Simulator 💘 A humorous TypeScript package that simulates the experience of having a crush, complete with awkward interactions and guaranteed system failures when trying to process feelings! ## Features 🌟 - 🤗 Create virtual personas - 😳 Simulate realistic crush interactions - 🦋 Experience virtual butterflies - 💝 Track crush intensity levels - 💔 Guaranteed to throw errors when feelings develop - 🔄 Reset functionality when you need a fresh start ## Installation 📦 ```bash npm install crush-feelings ``` ## Usage 🚀 ```typescript import { Person, Relationship } from 'crush-feelings'; // Create the people involved const you = new Person("Your Name"); const crush = new Person("Crush's Name"); // Initialize the relationship const relationship = new Relationship(you, crush); // Simulate an interaction console.log(relationship.simulateInteraction()); // Output: "Interaction #1: Your Name had an awkward wave with Crush's Name and felt nervous." // Check crush intensity console.log(relationship.getCrushIntensity()); // Output: "Crush intensity: 20.0%" // Try (and fail) to develop feelings try { relationship.tryToDevelopFeelings(); } catch (error: unknown) { if (error instanceof Error) { console.error(error.message); } else { console.error("An unknown error occurred"); } } ``` ## API Reference 📚 ### Person Class ```typescript class Person { constructor(name: string) getName(): string setMood(mood: Mood): void getMood(): Mood } ``` ### Relationship Class ```typescript class Relationship { constructor(person1: Person, person2: Person) simulateInteraction(): string tryToDevelopFeelings(): never // Always throws CrushError getInteractionCount(): number getCrushIntensity(): string reset(): void } ``` ### Types ```typescript type Mood = 'happy' | 'nervous' | 'flustered' | 'overthinking' type Interaction = 'small talk' | 'awkward wave' | 'shared laugh' | 'accidental eye contact' ``` ## Features in Detail 🔍 ### Interaction Simulation - Random interaction generation from predefined scenarios - Mood tracking and updates - Interaction counter with maximum limit - Various response formats for realistic simulation ### Crush Intensity Tracking - Percentage-based intensity calculation - Increases with each interaction - Maximum cap to prevent overflow (just like your feelings!) ### Error Messages The package includes various humorous error messages when trying to develop feelings: - "Error: Cannot process feelings.exe - Overthinking detected" - "Critical failure: Butterflies in stomach causing system malfunction" - "Fatal error: Brain.exe stopped working near crush" - "Stack overflow: Too many thoughts about [crush name]" - And many more! ## Development 🛠️ ```bash # Clone the repository git clone https://github.com/yourusername/crush-feelings # Install dependencies npm install # Build the project npm run build # Run tests npm test ``` ## Contributing 🤝 Feel free to contribute to this project! Whether it's adding new interactions, moods, or error messages, all PRs are welcome. Just try not to develop feelings for the codebase. 😉 1. Fork the repository 2. Create your feature branch (`git checkout -b feature/AmazingFeature`) 3. Commit your changes (`git commit -m 'Add some AmazingFeature'`) 4. Push to the branch (`git push origin feature/AmazingFeature`) 5. Open a Pull Request ## License 📄 MIT ## Disclaimer ⚠️ This package is for entertainment purposes only. Any resemblance to real-life crushing experiences is purely coincidental (but probably accurate). No hearts were permanently damaged in the making of this package. ## Support 💪 If you're experiencing actual crush-related errors that this simulator can't handle, please consult your local relationship expert. This package can only simulate the awkwardness, not cure it!