nhb-toolbox
Version:
A versatile collection of smart, efficient, and reusable utility functions and classes for everyday development needs.
45 lines (44 loc) • 2.15 kB
JavaScript
import { isValidTime } from './guards.js';
import { extractHourMinute, getCurrentDateTime, getTotalMinutes, } from './utils.js';
/**
* * Returns a greeting message based on the provided time or current time.
*
* @param configs - Configuration options for greeting times and messages.
* @returns The appropriate greeting message.
*/
export function getGreeting(configs) {
const { morningEnds = '11:59', noonEnds = '12:59', afternoonEnds = '17:59', eveningEnds = '23:59', midnightEnds = '02:59', currentTime, appendToMsg = '', prependToMsg = '', morningMessage = 'Good Morning!', noonMessage = 'Good Noon!', afternoonMessage = 'Good Afternoon!', eveningMessage = 'Good Evening!', midnightMessage = 'Hello, Night Owl!', defaultMessage = 'Greetings!', } = configs || {};
let hour;
let minute;
if (currentTime && isValidTime(currentTime)) {
[hour, minute] = extractHourMinute(currentTime);
}
else {
hour = getCurrentDateTime().getHours();
minute = getCurrentDateTime().getMinutes();
}
const currentTotalMinutes = hour * 60 + minute;
const morningEndMinutes = getTotalMinutes(morningEnds);
const noonEndMinutes = getTotalMinutes(noonEnds);
const afternoonEndMinutes = getTotalMinutes(afternoonEnds);
const eveningEndMinutes = getTotalMinutes(eveningEnds);
const midnightEndMinutes = getTotalMinutes(midnightEnds);
if (currentTotalMinutes <= midnightEndMinutes) {
return prependToMsg.concat(midnightMessage.concat(appendToMsg));
}
else if (currentTotalMinutes <= morningEndMinutes) {
return prependToMsg.concat(morningMessage.concat(appendToMsg));
}
else if (currentTotalMinutes <= noonEndMinutes) {
return prependToMsg.concat(noonMessage.concat(appendToMsg));
}
else if (currentTotalMinutes <= afternoonEndMinutes) {
return prependToMsg.concat(afternoonMessage.concat(appendToMsg));
}
else if (currentTotalMinutes <= eveningEndMinutes) {
return prependToMsg.concat(eveningMessage.concat(appendToMsg));
}
else {
return prependToMsg.concat(defaultMessage.concat(appendToMsg));
}
}