mirror of
https://github.com/dorny/test-reporter.git
synced 2026-02-02 03:15:22 -08:00
25 lines
873 B
TypeScript
25 lines
873 B
TypeScript
export function parseNetDuration(str: string): number {
|
|
const durationRe = /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)$/
|
|
const durationMatch = str.match(durationRe)
|
|
if (durationMatch === null) {
|
|
throw new Error(`Invalid format: "${str}" is not NET duration`)
|
|
}
|
|
|
|
const [_, hourStr, minStr, secStr] = durationMatch
|
|
return (parseInt(hourStr) * 3600 + parseInt(minStr) * 60 + parseFloat(secStr)) * 1000
|
|
}
|
|
|
|
export function parseIsoDate(str: string): Date {
|
|
const isoDateRe = /^\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)$/
|
|
if (str === undefined || !isoDateRe.test(str)) {
|
|
throw new Error(`Invalid format: "${str}" is not ISO date`)
|
|
}
|
|
|
|
return new Date(str)
|
|
}
|
|
|
|
export function getFirstNonEmptyLine(stackTrace: string): string | undefined {
|
|
const lines = stackTrace?.split(/\r?\n/g)
|
|
return lines?.find(str => !/^\s*$/.test(str))
|
|
}
|