UNPKG

@allurereport/web-allure2

Version:

The static files for Allure Classic Report

61 lines (58 loc) 1.34 kB
import { isFunction } from "underscore"; import pad from "underscore.string/pad.js"; const dateTokens = [ { suffix: "d", method: (time) => Math.floor(time.valueOf() / (24 * 3600 * 1000)), }, { suffix: "h", method: "getUTCHours", }, { suffix: "m", method: "getUTCMinutes", }, { suffix: "s", method: "getUTCSeconds", }, { pad: 3, suffix: "ms", method: "getUTCMilliseconds", }, ]; export default function (timeInt, count) { if (timeInt === 0) { return "0s"; } if (!timeInt) { return "Unknown"; } const time = new Date(timeInt); const res = dateTokens .map(({ method, suffix, pad: pd }) => ({ value: isFunction(method) ? method(time) : time[method](), suffix, pad: pd, })) .reduce( ({ hasValue, out }, token) => { hasValue = hasValue || token.value > 0; if (token.value > 0 || (hasValue && token.suffix !== "ms")) { out.push(token); } return { hasValue, out }; }, { hasValue: false, out: [] }, ) .out.map(function (token, index) { const value = index === 0 ? token.value : pad(token.value, token.pad || 2, "0"); return value + token.suffix; }); if (typeof count !== "number") { count = 2; } return res.slice(0, count).join(" "); }