-
-
Notifications
You must be signed in to change notification settings - Fork 65
/
Copy pathindex.d.ts
144 lines (104 loc) · 3.21 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
export type Options = {
/**
Number of digits to appear after the seconds decimal point.
@default 1
*/
readonly secondsDecimalDigits?: number;
/**
Number of digits to appear after the milliseconds decimal point.
Useful in combination with [`process.hrtime()`](https://nodejs.org/api/process.html#process_process_hrtime).
@default 0
*/
readonly millisecondsDecimalDigits?: number;
/**
Keep milliseconds on whole seconds: `13s` → `13.0s`.
Useful when you are showing a number of seconds spent on an operation and don't want the width of the output to change when hitting a whole number.
@default false
*/
readonly keepDecimalsOnWholeSeconds?: boolean;
/**
Only show the first unit: `1h 10m` → `1h`.
Also ensures that `millisecondsDecimalDigits` and `secondsDecimalDigits` are both set to `0`.
@default false
*/
readonly compact?: boolean;
/**
Number of units to show. Setting `compact` to `true` overrides this option.
@default Infinity
*/
readonly unitCount?: number;
/**
Use full-length units: `5h 1m 45s` → `5 hours 1 minute 45 seconds`.
@default false
*/
readonly verbose?: boolean;
/**
Show milliseconds separately. This means they won't be included in the decimal part of the seconds.
@default false
*/
readonly separateMilliseconds?: boolean;
/**
Show microseconds and nanoseconds.
@default false
*/
readonly formatSubMilliseconds?: boolean;
/**
Display time using colon notation: `5h 1m 45s` → `5:01:45`. Always shows time in at least minutes: `1s` → `0:01`
Useful when you want to display time without the time units, similar to a digital watch.
Setting `colonNotation` to `true` overrides the following options to `false`:
- `compact`
- `formatSubMilliseconds`
- `separateMilliseconds`
- `verbose`
@default false
*/
readonly colonNotation?: boolean;
/**
Hides the year and shows the hidden year additionally as days (365 per year): `1y 3d 5h 1m 45s` → `368d 5h 1m 45s`.
@default false
*/
readonly hideYear?: boolean;
/**
Hides the year and days and shows the hidden values additionally as hours: `1y 3d 5h 1m 45s` → `8837h 1m 45s`.
@default false
*/
readonly hideYearAndDays?: boolean;
/**
Hides the seconds: `1y 3d 5h 1m 45s` → `1y 3d 5h 1m`.
@default false
*/
readonly hideSeconds?: boolean;
};
/**
Convert milliseconds to a human readable string: `1337000000` → `15d 11h 23m 20s`.
@param milliseconds - Milliseconds to humanize.
@example
```
import prettyMilliseconds from 'pretty-ms';
prettyMilliseconds(1337000000);
//=> '15d 11h 23m 20s'
prettyMilliseconds(1337);
//=> '1.3s'
prettyMilliseconds(133);
//=> '133ms'
// `compact` option
prettyMilliseconds(1337, {compact: true});
//=> '1s'
// `verbose` option
prettyMilliseconds(1335669000, {verbose: true});
//=> '15 days 11 hours 1 minute 9 seconds'
// `colonNotation` option
prettyMilliseconds(95500, {colonNotation: true});
//=> '1:35.5'
// `formatSubMilliseconds` option
prettyMilliseconds(100.400080, {formatSubMilliseconds: true})
//=> '100ms 400µs 80ns'
// Can be useful for time durations
prettyMilliseconds(new Date(2014, 0, 1, 10, 40) - new Date(2014, 0, 1, 10, 5))
//=> '35m'
```
*/
export default function prettyMilliseconds(
milliseconds: number | bigint,
options?: Options
): string;