UNPKG

1.28 kBJavaScriptView Raw
1///@ts-check
2"use strict";
3
4function getEnvLocale(env = process.env) {
5 return env.LC_ALL || env.LC_MESSAGES || env.LANG || env.LANGUAGE || '';
6}
7
8const locale = getEnvLocale().replace(/[.:].*/, '');
9
10const units = locale.toLowerCase().startsWith("zh") ?
11 [
12 { name: "纳秒", factor: 1 },
13 { name: "微秒", factor: 1e3 },
14 { name: "毫秒", factor: 1e6 },
15 { name: "秒", factor: 1e9 },
16 { name: "分", factor: 6e10 },
17 { name: "小时", factor: 36e11 }
18 ]
19 : [
20 { name: " ns", factor: 1 },
21 { name: " us", factor: 1e3 },
22 { name: " ms", factor: 1e6 },
23 { name: " s", factor: 1e9 },
24 { name: " min", factor: 6e10 },
25 { name: " hr", factor: 36e11 }
26 ]
27
28function prettyTime(time, dec = 2) {
29 for (let i = 0; i < units.length; i++) {
30 const { name, factor } = units[i], scaledTime = time / factor;
31 const maxVal = units[i + 1] && units[i + 1].factor / factor;
32 const roundedTime = Number((scaledTime).toFixed(dec));
33 // if time in cur unit is large enough to be the next unit, continue
34 if (!maxVal || Math.abs(roundedTime) < maxVal) {
35 return Number((scaledTime).toFixed(dec)) + name
36 }
37 }
38}
39module.exports = prettyTime;
\No newline at end of file