1 | interface 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 |
|
19 | interface FileSizeOptionsArray extends FileSizeOptionsBase {
|
20 | output: 'array'
|
21 | }
|
22 |
|
23 | interface FileSizeOptionsExponent extends FileSizeOptionsBase {
|
24 | output: 'exponent'
|
25 | }
|
26 |
|
27 | interface FileSizeOptionsObject extends FileSizeOptionsBase {
|
28 | output: 'object'
|
29 | }
|
30 |
|
31 | interface FileSizeOptionsString extends FileSizeOptionsBase {
|
32 | output: 'string'
|
33 | }
|
34 |
|
35 | interface FileSizeReturnObject {
|
36 | value: string,
|
37 | symbol: string,
|
38 | exponent: number,
|
39 | unit: string,
|
40 | }
|
41 |
|
42 | type FileSizeReturnArray = [ number, string ]
|
43 |
|
44 | type FileSizeOptionStringOrBase = FileSizeOptionsString | FileSizeOptionsBase;
|
45 | type FileSizeOptions = FileSizeOptionsArray | FileSizeOptionsExponent | FileSizeOptionsObject | FileSizeOptionStringOrBase | undefined
|
46 | type 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 |
|
55 | export function filesize<Options extends FileSizeOptions = undefined>(byteCount: number | string | bigint, options?: Options): FileSizeReturnType<Options>
|
56 | export function partial<Options extends FileSizeOptions = undefined>(options?: Options): (byteCount: number | string | bigint) => FileSizeReturnType<Options>
|
57 |
|
\ | No newline at end of file |