const isQuestion = (message: string): boolean => message.trim().endsWith("?"); const hasUpperCase = (message: string): boolean => Boolean(message.match(/[A-Z]/)); const hasLowerCase = (message: string): boolean => Boolean(message.match(/[a-z]/)); const isOnlyUpperCase = (message: string): boolean => hasUpperCase(message) && !hasLowerCase(message); const isEmpty = (message: string): boolean => message.trim() === ""; export function hey(message: string): string { if (isQuestion(message)) { if (isOnlyUpperCase(message)) { return "Calm down, I know what I'm doing!"; } return "Sure."; } if (isOnlyUpperCase(message)) { return "Whoa, chill out!"; } if (isEmpty(message)) { return "Fine. Be that way!"; } return "Whatever."; }