1
0
mirror of synced 2025-12-26 05:02:55 -05:00
Files
docs/.github/actions-scripts/lib/debug-time-taken.js
2022-12-02 21:59:40 +00:00

33 lines
1.1 KiB
JavaScript

const timeInstances = new Map()
/* Meant to be called before debugTimeEnd with the same instanceName to behave like console.time() */
export function debugTimeStart(core, instanceName) {
if (timeInstances.has(instanceName)) {
core.warn(`instanceName: ${instanceName} has already been used for a debug instance.`)
return
}
timeInstances.set(instanceName, new Date())
}
/* Meant to be called after debugTimeStart with the same instanceName to behave like console.timeEnd() */
export function debugTimeEnd(core, instanceName) {
if (!timeInstances.has(instanceName)) {
core.warn(
`Invalid instanceName: ${instanceName} in debugTimeEnd. Did you call debugTimeStart first with the same instanceName?`
)
return
}
const startTime = timeInstances.get(instanceName)
const ms = new Date().getTime() - startTime.getTime()
const seconds = ms / 1000
const minutes = seconds / 60
let display = `${ms.toFixed(1)} ms`
if (minutes > 1) {
display = `${minutes.toFixed(1)} minutes`
} else if (seconds > 1) {
display = `${seconds.toFixed(1)} seconds`
}
core.debug(`Completed ${instanceName} in ${display}`)
}