Skip to content

Commit

Permalink
Merge pull request #180 from abaltuta/rework-types
Browse files Browse the repository at this point in the history
Rework types to allow Parameters<typeof filesize> to function properly
  • Loading branch information
avoidwork committed Mar 21, 2024
2 parents 334d549 + af4a6ef commit 4268a4e
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>(options?: Options): (byteCount: number) => FileSizeReturnType<Options>

0 comments on commit 4268a4e

Please sign in to comment.