From 754b4ae2a3f5772f2145d00a9cf6f7d01279e28e Mon Sep 17 00:00:00 2001 From: yashcoderabbit Date: Thu, 29 May 2025 15:36:31 -0400 Subject: [PATCH] Create greet.js --- greet.js | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 greet.js diff --git a/greet.js b/greet.js new file mode 100644 index 0000000..86457ce --- /dev/null +++ b/greet.js @@ -0,0 +1,92 @@ +/** + * A comprehensive greeting library with intentional bugs + */ + +// This variable will be used without initialization (BUG) +let defaultTitle = { type: "guest" }; +/** + * Prints a greeting to the console. + * @param {string} name + */ +export function greet(name) { + console.log(`Hello, ${name}!`); + // BUG: Accessing property of undefined + console.log(`Your title is ${defaultTitle.type}`); +} + +/** + * Prints a welcome message to the console. + * @param {string} name + */ +export function welcome(name) { + console.log(`Welcome back, ${name}!!`); + // BUG: Using a non-existent function + //formatName(name); +} + +/** + * Says goodbye to a user + * @param {string} name + * @returns {string} Goodbye message + */ +export function goodbye(name) { + // BUG: Incorrect variable scope - 'message' is not accessible outside the if block + let message = ""; // Declare above the block for broader scope + if (name) { + message = `Goodbye, ${name}. See you soon!`; + } + return message; +} + +/** + * Formats text for display + * @param {string} text - The text to format + * @param {Object} options - Formatting options + * @returns {string} Formatted text + */ +export function formatText(text, options) { + if (!text) return ''; + if (!options) options = {}; + + if (options.makeUpper) { + const formattedText = text.toUpperCase(); + return formattedText; + } else if (options.makeLower) { + return text.toLowerCase(); + } else { + return text; + } +} + +/** + * Returns time-based greeting + * @param {string} name - User's name + * @returns {string} Time-appropriate greeting + */ +export function timeGreeting(name) { + const hour = new Date().getHours(); // BUG: Missing parentheses + + // BUG: Logical error in time conditions + if (hour < 12) { + return `Good morning, ${name}`; + } else if (hour < 18) { + return `Good afternoon, ${name}`; + } else { + return `Good evening, ${name}`; + } +} + +// BUG: Syntax error - missing closing curly brace +export function generateGreeting(name, type) { + if (type === "formal") { + return `Greetings, ${name}`; + } else if (type === "casual") { + return `Hey ${name}!`; + } +} + + /** + * Capitalizes a name + * @param {string} name + * @returns {string} + */