All files / discord-guild-workspace/lib format.ts

100% Statements 55/55
100% Branches 17/17
100% Functions 6/6
100% Lines 55/55

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 561x 1x 1x 2x 1x 1x 1x 1x 2x 1x 1x 2x 1x 1x 1x 1x 1x 1x 1x 2x 1x 1x 2x 2x 2x 2x 2x 2x 1x 1x 4x 4x 4x 4x 1x 1x 4x 4x 1x 1x 4x 4x 1x 1x 1x 1x 4x 1x 1x 6x 4x 4x 6x 6x 6x  
import type { GuildOverview } from "../types"
 
export function formatNumber(value: number | undefined): string {
  if (value === undefined) {
    return "Not Synced"
  }
 
  return new Intl.NumberFormat(undefined).format(value)
}
 
export function formatDateTime(value: number | undefined): string {
  if (value === undefined) {
    return "Not Synced"
  }
 
  return new Intl.DateTimeFormat(undefined, {
    dateStyle: "medium",
    timeStyle: "short",
  }).format(value)
}
 
export function toTitleCase(value: string): string {
  return value
    .split(/[.\-_ ]+/)
    .filter(Boolean)
    .map((part) => part.slice(0, 1).toUpperCase() + part.slice(1))
    .join(" ")
}
 
export function getBotStatusLabel(
  isBotLeft: boolean,
  overview: GuildOverview
): string {
  if (isBotLeft) {
    return "Bot Left"
  }
 
  if (overview.botJoinedAt !== undefined) {
    return "Gateway Synced"
  }
 
  if (overview.botInstallationVerifiedAt !== undefined) {
    return "REST Verified"
  }
 
  return "Install Verification Needed"
}
 
export function getErrorMessage(error: unknown): string {
  if (error instanceof Error && error.message) {
    return error.message
  }
 
  return "Try again or refresh this workspace."
}