Skip to content

Commit

Permalink
remove any usage and allow passing options without output property
Browse files Browse the repository at this point in the history
  • Loading branch information
tschlechtweg committed Aug 10, 2023
1 parent dea30ba commit c42acc0
Showing 1 changed file with 55 additions and 24 deletions.
79 changes: 55 additions & 24 deletions types/filesize.d.ts
@@ -1,32 +1,63 @@
export interface FileSizeOptions {
interface FileSizeOptionsBase {
base?: number;
bits?: boolean;
exponent?: number;
fullform?: boolean;
fullforms?: string[];
locale?: string | boolean;
localeOptions?: Intl.DateTimeFormatOptions;
pad?: boolean;
base?: number;
precision?: number;
round?: number;
locale?: string;
localeOptions?: {};
roundingMethod?: 'round' | 'floor' | 'ceil';
separator?: string;
spacer?: string;
symbols?: {};
standard?: 'iec' | 'jedec';
output?: 'array' | 'exponent' | 'object' | 'string';
fullform?: boolean;
fullforms?: any[];
exponent?: number;
roundingMethod?: 'round' | 'floor' | 'ceil';
precision?: number;
symbols?: {
iec: {
bits: string[],
bytes: string[]
},
jedec: {
bits: string[],
bytes: string[]
}
};
}

interface FileSizeOptionsArray extends FileSizeOptionsBase {
output: 'array'
}

interface FileSizeOptionsExponent extends FileSizeOptionsBase {
output: 'exponent'
}

export function filesize(arg: any, { bits, pad, base, round, locale, localeOptions, separator, spacer, symbols, standard, output, fullform, fullforms, exponent, roundingMethod, precision }?: FileSizeOptions): string | number | any[] | {
value: any;
symbol: any;
exponent: number;
unit: string;
};

export function partial({ bits, pad, base, round, locale, localeOptions, separator, spacer, symbols, standard, output, fullform, fullforms, exponent, roundingMethod, precision }?: FileSizeOptions): (arg: any) => string | number | any[] | {
value: any;
symbol: any;
exponent: number;
unit: string;
};
interface FileSizeOptionsObject extends FileSizeOptionsBase {
output: 'object'
}

interface FileSizeOptionsString extends FileSizeOptionsBase {
output: 'string'
}

interface FileSizeReturnObject {
value: string,
symbol: string,
exponent: number,
unit: string,
}

type FileSizeReturnArray = [ number, string ]

export function filesize(byteCount: number, options: FileSizeOptionsString | FileSizeOptionsBase): string
export function filesize(byteCount: number, options: FileSizeOptionsArray): FileSizeReturnArray
export function filesize(byteCount: number, options: FileSizeOptionsExponent): number
export function filesize(byteCount: number, options: FileSizeOptionsObject): FileSizeReturnObject
export function filesize(byteCount: number): string

export function partial(options: FileSizeOptionsString | FileSizeOptionsBase): (byteCount: number) => string
export function partial(options: FileSizeOptionsArray): (byteCount: number) => FileSizeReturnArray
export function partial(options: FileSizeOptionsExponent): (byteCount: number) => number
export function partial(options: FileSizeOptionsObject): (byteCount: number) => FileSizeReturnObject
export function partial(): (byteCount: number) => string

0 comments on commit c42acc0

Please sign in to comment.