Permalink
Cannot retrieve contributors at this time
123 lines (116 sloc)
3.76 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Type definitions for filesize 8.0.3 | |
| // Project: https://github.com/avoidwork/filesize.js, https://filesizejs.com | |
| // Definitions by: Giedrius Grabauskas <https://github.com/GiedriusGrabauskas> | |
| // Renaud Chaput <https://github.com/renchap> | |
| // Roman Nuritdinov <https://github.com/Ky6uk> | |
| // Sam Hulick <https://github.com/ffxsam> | |
| // Tomoto S. Washio <https://github.com/tomoto> | |
| declare var fileSize: Filesize.Filesize; | |
| export = fileSize; | |
| export as namespace filesize; | |
| declare namespace Filesize { | |
| interface SiJedecBits { | |
| b?: string; | |
| Kb?: string; | |
| Mb?: string; | |
| Gb?: string; | |
| Tb?: string; | |
| Pb?: string; | |
| Eb?: string; | |
| Zb?: string; | |
| Yb?: string; | |
| } | |
| interface SiJedecBytes { | |
| B?: string; | |
| KB?: string; | |
| MB?: string; | |
| GB?: string; | |
| TB?: string; | |
| PB?: string; | |
| EB?: string; | |
| ZB?: string; | |
| YB?: string; | |
| } | |
| type SiJedec = SiJedecBits & SiJedecBytes & { [name: string]: string }; | |
| interface Options { | |
| /** | |
| * Number base, default is 10 | |
| */ | |
| base?: number; | |
| /** | |
| * Enables bit sizes, default is false | |
| */ | |
| bits?: boolean; | |
| /** | |
| * Specifies the SI suffix via exponent, e.g. 2 is MB for bytes, default is -1 | |
| */ | |
| exponent?: number; | |
| /** | |
| * Enables full form of unit of measure, default is false | |
| */ | |
| fullform?: boolean; | |
| /** | |
| * Array of full form overrides, default is [] | |
| */ | |
| fullforms?: string[]; | |
| /** | |
| * BCP 47 language tag to specify a locale, or true to use default locale, default is "" | |
| */ | |
| locale?: string | boolean; | |
| /** | |
| * ECMA-402 number format option overrides, default is "{}" | |
| */ | |
| localeOptions?: Intl.NumberFormatOptions; | |
| /** | |
| * Output of function (array, exponent, object, or string), default is string | |
| */ | |
| output?: "array" | "exponent" | "object" | "string"; | |
| /** | |
| * Decimal place, default is 2 | |
| */ | |
| round?: number; | |
| /** | |
| * Decimal separator character, default is `.` | |
| */ | |
| separator?: string; | |
| /** | |
| * Character between the result and suffix, default is ` ` | |
| */ | |
| spacer?: string; | |
| /** | |
| * Standard unit of measure, can be iec or jedec, default is iec; can be overruled by base | |
| */ | |
| standard?: "iec" | "jedec"; | |
| /** | |
| * Dictionary of SI/JEDEC symbols to replace for localization, defaults to english if no match is found | |
| */ | |
| symbols?: SiJedec; | |
| /** | |
| * Enables unix style human readable output, e.g ls -lh, default is false | |
| */ | |
| unix?: boolean; | |
| /** | |
| * Rounding method, can be round, floor, or ceil, default is round | |
| */ | |
| roundingMethod?: "round" | "floor" | "ceil"; | |
| } | |
| // Result type inference from the output option | |
| interface ResultTypeMap { | |
| array: [number, string]; | |
| exponent: number; | |
| object: { | |
| value: number, | |
| symbol: string, | |
| exponent: number, | |
| unit: string, | |
| }; | |
| string: string; | |
| } | |
| type DefaultOutput<O extends Options> = Exclude<O["output"], keyof ResultTypeMap> extends never ? never : "string" | |
| type CanonicalOutput<O extends Options> = Extract<O["output"], keyof ResultTypeMap> | DefaultOutput<O> | |
| interface Filesize { | |
| (bytes: number): string; | |
| <O extends Options>(bytes: number, options: O): ResultTypeMap[CanonicalOutput<O>]; | |
| partial: <O extends Options>(options: O) => ((bytes: number) => ResultTypeMap[CanonicalOutput<O>]); | |
| } | |
| } |