nimbus-gui/src/utilities.ts

24 lines
756 B
TypeScript

/**
* Asserts that a case in a switch statement is unreachable.
*
* @example
* // Exhaustively checks `user.role` type ("admin" | "user") and will not compile
* // if a new role is added without adding a case to the switch statement.
* switch (user.role) {
* case "admin":
* break;
* case "user":
* break;
* default:
* assertUnreachable(user.role);
* }
*/
export function assertUnreachable(value: never): never {
throw new Error(`Unreachable case: ${value}`);
}
export const convertSecondsToTimerFormat = (seconds: number) => {
const minutes = Math.floor(seconds / 60)
const remainingSeconds = seconds % 60
return `${String(minutes).padStart(2, '0')}:${String(remainingSeconds).padStart(2, '0')}`
}