All files / src fileSizeFormatter.ts

100% Statements 18/18
100% Branches 6/6
100% Functions 2/2
100% Lines 18/18

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34  1x   20x 20x 20x     20x       20x 20x 5x 5x   15x 6x 6x   9x 1x 1x     8x   20x 20x        
 
export default class FileSizeFormatter {
    private bytes: number;
    private oneKiloByte = 1024;
    private oneMegaByte = this.oneKiloByte * 1024;
    private oneGigaByte = this.oneMegaByte * 1024;
 
    constructor(bytes: number) {
        this.bytes = bytes;
    }
    public getUserFriendlyFileSize(): string {
        let suffix: string;
        let size = this.bytes;
        if (size > this.oneGigaByte) {
            size /= this.oneGigaByte;
            suffix = " GB";
        }
        else if (this.bytes > this.oneMegaByte) {
            size /= this.oneMegaByte;
            suffix = " MB";
        }
        else if (this.bytes > this.oneKiloByte) {
            size /= this.oneKiloByte;
            suffix = " kB";
        }
        else {
            suffix = " B";
        }
        size = Math.round(size);
        return size + suffix;
    }
 
}