diff --git a/package.json b/package.json index 36462cc724..8d3c936212 100644 --- a/package.json +++ b/package.json @@ -91,6 +91,7 @@ "express": "4.16.2", "fast-json-patch": "^2.0.7", "file-saver": "^1.3.8", + "filesize": "^6.1.0", "font-awesome": "4.7.0", "https": "1.0.0", "js-cookie": "2.2.0", diff --git a/src/app/shared/utils/file-size-pipe.ts b/src/app/shared/utils/file-size-pipe.ts index a796edb073..2d219cdaf4 100644 --- a/src/app/shared/utils/file-size-pipe.ts +++ b/src/app/shared/utils/file-size-pipe.ts @@ -1,4 +1,5 @@ import { Pipe, PipeTransform } from '@angular/core'; +import * as fileSize from 'filesize'; /* * Convert bytes into largest possible unit. @@ -12,30 +13,7 @@ import { Pipe, PipeTransform } from '@angular/core'; @Pipe({ name: 'dsFileSize' }) export class FileSizePipe implements PipeTransform { - - private units: string[] = [ - 'bytes', - 'KiB', - 'MiB', - 'GiB', - 'TiB', - 'PiB' - ]; - transform(bytes: number = 0, precision: number = 2): string { - let result: string; - if (isNaN(parseFloat(String(bytes))) || !isFinite(bytes)) { - result = '?'; - } else { - let unit = 0; - - while (bytes >= 1024) { - bytes /= 1024; - unit++; - } - - result = bytes.toFixed(+ precision) + ' ' + this.units[unit]; - } - return result; + return fileSize(bytes, { standard: 'jedec', round: precision }); } } diff --git a/yarn.lock b/yarn.lock index 402f51a0e0..12346a8e51 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4309,6 +4309,11 @@ filesize@^3.6.1: resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== +filesize@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.1.0.tgz#e81bdaa780e2451d714d71c0d7a4f3238d37ad00" + integrity sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg== + fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"