MCPcopy
hub / github.com/codeforreal1/compressO / formatDuration

Function formatDuration

src/utils/string.ts:27–47  ·  view source on GitHub ↗
(
  totalSeconds: number,
  options: { enableHoursWhenZero?: boolean; disableMilliseconds?: boolean } = {
    enableHoursWhenZero: false,
    disableMilliseconds: false,
  },
)

Source from the content-addressed store, hash-verified

25 * @returns {string}: Formatted duration in HH:MM::SS.mm
26 */
27export function formatDuration(
28 totalSeconds: number,
29 options: { enableHoursWhenZero?: boolean; disableMilliseconds?: boolean } = {
30 enableHoursWhenZero: false,
31 disableMilliseconds: false,
32 },
33): string {
34 const hours = Math.floor(totalSeconds / 3600)
35 const minutes = Math.floor((totalSeconds % 3600) / 60)
36 const seconds = Math.floor(totalSeconds % 60)
37 const milliseconds = Math.floor(
38 (totalSeconds - Math.floor(totalSeconds)) * 100,
39 )
40
41 const pad = (n: number, size = 2) => n.toString().padStart(size, '0')
42 const hoursPart =
43 (options?.enableHoursWhenZero && hours === 0) || hours !== 0
44 ? `${pad(hours)}:`
45 : ''
46 return `${hoursPart}${pad(minutes)}:${pad(seconds)}${!options?.disableMilliseconds ? `.${pad(milliseconds)}` : ''}`
47}

Callers 9

ScaleRenderFunction · 0.90
ContainerInfoDisplayFunction · 0.90
VideoStreamsDisplayFunction · 0.90
AudioStreamsDisplayFunction · 0.90
ChaptersDisplayFunction · 0.90
pickRandomTimestampFunction · 0.90
MediaThumbnailFunction · 0.90
PreviewBatchMediaFunction · 0.90
PreviewSingleMediaFunction · 0.90

Calls 1

padFunction · 0.85

Tested by

no test coverage detected