UNPKG

1.83 kBTypeScriptView Raw
1interface FileSizeOptionsBase {
2 base?: 10 | 2;
3 bits?: boolean;
4 exponent?: number;
5 fullform?: boolean;
6 fullforms?: string[];
7 locale?: string | boolean;
8 localeOptions?: Intl.DateTimeFormatOptions;
9 pad?: boolean;
10 precision?: number;
11 round?: number;
12 roundingMethod?: 'round' | 'floor' | 'ceil';
13 separator?: string;
14 spacer?: string;
15 standard?: 'si' | 'iec' | 'jedec';
16 symbols?: {};
17}
18
19interface FileSizeOptionsArray extends FileSizeOptionsBase {
20 output: 'array'
21}
22
23interface FileSizeOptionsExponent extends FileSizeOptionsBase {
24 output: 'exponent'
25}
26
27interface FileSizeOptionsObject extends FileSizeOptionsBase {
28 output: 'object'
29}
30
31interface FileSizeOptionsString extends FileSizeOptionsBase {
32 output: 'string'
33}
34
35interface FileSizeReturnObject {
36 value: string,
37 symbol: string,
38 exponent: number,
39 unit: string,
40}
41
42type FileSizeReturnArray = [ number, string ]
43
44type FileSizeOptionStringOrBase = FileSizeOptionsString | FileSizeOptionsBase;
45type FileSizeOptions = FileSizeOptionsArray | FileSizeOptionsExponent | FileSizeOptionsObject | FileSizeOptionStringOrBase | undefined
46type FileSizeReturnType<Options extends FileSizeOptions> =
47 Options extends FileSizeOptionsArray
48 ? FileSizeReturnArray
49 : Options extends FileSizeOptionsExponent
50 ? number
51 : Options extends FileSizeOptionsObject
52 ? FileSizeReturnObject
53 : string;
54
55export function filesize<Options extends FileSizeOptions = undefined>(byteCount: number | string | bigint, options?: Options): FileSizeReturnType<Options>
56export function partial<Options extends FileSizeOptions = undefined>(options?: Options): (byteCount: number | string | bigint) => FileSizeReturnType<Options>
57
\No newline at end of file