Skip to content

Commit

Permalink
change: rework types to allow usages like Parameters<typeof filesize>
Browse files Browse the repository at this point in the history
to function properly
  • Loading branch information
abaltuta committed Mar 18, 2024
1 parent 334d549 commit fbfc87f
Showing 1 changed file with 13 additions and 11 deletions.
24 changes: 13 additions & 11 deletions types/filesize.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,16 @@ interface FileSizeReturnObject {

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
type FileSizeOptionStringOrBase = FileSizeOptionsString | FileSizeOptionsBase;
type FileSizeOptions = FileSizeOptionsArray | FileSizeOptionsExponent | FileSizeOptionsObject | FileSizeOptionStringOrBase | undefined
type FileSizeReturnType<Options extends FileSizeOptions> =
Options extends FileSizeOptionsArray
? FileSizeReturnArray
: Options extends FileSizeOptionsExponent
? number
: Options extends FileSizeOptionsObject
? FileSizeReturnObject
: string;

export function filesize<Options extends FileSizeOptions = undefined>(byteCount: number, options?: Options): FileSizeReturnType<Options>
export function partial<Options extends FileSizeOptions = undefined>(byteCount: number, options?: Options): FileSizeReturnType<Options>

0 comments on commit fbfc87f

Please sign in to comment.