refactor(packages): extract utils package

This commit is contained in:
YeonGyu-Kim
2026-05-21 00:31:03 +09:00
parent c4fe747e15
commit a5c1d71001
52 changed files with 717 additions and 508 deletions
@@ -1,32 +0,0 @@
import { describe, expect, it } from "bun:test"
import { formatDurationHuman } from "./format-duration"
describe("formatDurationHuman", () => {
it("returns 0s for 0ms", () => {
expect(formatDurationHuman(0)).toBe("0s")
})
it("returns 0s for 999ms", () => {
expect(formatDurationHuman(999)).toBe("0s")
})
it("returns 1s for 1000ms", () => {
expect(formatDurationHuman(1000)).toBe("1s")
})
it("returns 1m 0s for 60_000ms", () => {
expect(formatDurationHuman(60_000)).toBe("1m 0s")
})
it("returns 1h 0m 0s for 3_600_000ms", () => {
expect(formatDurationHuman(3_600_000)).toBe("1h 0m 0s")
})
it("returns 1h 2m 3s for 3_723_456ms", () => {
expect(formatDurationHuman(3_723_456)).toBe("1h 2m 3s")
})
it("returns 24h 0m 0s for 86_400_000ms", () => {
expect(formatDurationHuman(86_400_000)).toBe("24h 0m 0s")
})
})
+1 -16
View File
@@ -1,16 +1 @@
export function formatDurationHuman(milliseconds: number): string {
const totalSeconds = Math.max(0, Math.floor(milliseconds / 1000))
const hours = Math.floor(totalSeconds / 3600)
const minutes = Math.floor((totalSeconds % 3600) / 60)
const seconds = totalSeconds % 60
if (hours > 0) {
return `${hours}h ${minutes}m ${seconds}s`
}
if (minutes > 0) {
return `${minutes}m ${seconds}s`
}
return `${seconds}s`
}
export { formatDurationHuman } from "@oh-my-opencode/utils"