UNPKG

angular-pipes

Version:
62 lines 8.45 kB
import * as tslib_1 from "tslib"; var BytesPipe_1; import { Pipe, NgModule } from '@angular/core'; import { isNumberFinite, isPositive, isInteger, toDecimal } from '../utils/utils'; let BytesPipe = BytesPipe_1 = class BytesPipe { transform(input, decimal = 0, from = 'B', to) { if (!(isNumberFinite(input) && isNumberFinite(decimal) && isInteger(decimal) && isPositive(decimal))) { return input; } let bytes = input; let unit = from; while (unit !== 'B') { bytes *= 1024; unit = BytesPipe_1.formats[unit].prev; } if (to) { const format = BytesPipe_1.formats[to]; const result = toDecimal(BytesPipe_1.calculateResult(format, bytes), decimal); return BytesPipe_1.formatResult(result, to); } for (const key in BytesPipe_1.formats) { if (BytesPipe_1.formats.hasOwnProperty(key)) { const format = BytesPipe_1.formats[key]; if (bytes < format.max) { const result = toDecimal(BytesPipe_1.calculateResult(format, bytes), decimal); return BytesPipe_1.formatResult(result, key); } } } } static formatResult(result, unit) { return `${result} ${unit}`; } static calculateResult(format, bytes) { const prev = format.prev ? BytesPipe_1.formats[format.prev] : undefined; return prev ? bytes / prev.max : bytes; } }; BytesPipe.formats = { B: { max: 1024 }, kB: { max: Math.pow(1024, 2), prev: 'B' }, KB: { max: Math.pow(1024, 2), prev: 'B' }, MB: { max: Math.pow(1024, 3), prev: 'kB' }, GB: { max: Math.pow(1024, 4), prev: 'MB' }, TB: { max: Number.MAX_SAFE_INTEGER, prev: 'GB' }, }; BytesPipe = BytesPipe_1 = tslib_1.__decorate([ Pipe({ name: 'bytes', }) ], BytesPipe); export { BytesPipe }; let NgBytesPipeModule = class NgBytesPipeModule { }; NgBytesPipeModule = tslib_1.__decorate([ NgModule({ declarations: [BytesPipe], exports: [BytesPipe], }) ], NgBytesPipeModule); export { NgBytesPipeModule }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZXMucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItcGlwZXMvIiwic291cmNlcyI6WyJtYXRoL2J5dGVzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBT2xGLElBQWEsU0FBUyxpQkFBdEIsTUFBYSxTQUFTO0lBVXBCLFNBQVMsQ0FBQyxLQUFVLEVBQUUsVUFBa0IsQ0FBQyxFQUFFLE9BQWlCLEdBQUcsRUFBRSxFQUFhO1FBQzVFLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFO1lBQ3BHLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLE9BQU8sSUFBSSxLQUFLLEdBQUcsRUFBRTtZQUNuQixLQUFLLElBQUksSUFBSSxDQUFDO1lBQ2QsSUFBSSxHQUFHLFdBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSyxDQUFDO1NBQ3RDO1FBRUQsSUFBSSxFQUFFLEVBQUU7WUFDTixNQUFNLE1BQU0sR0FBRyxXQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRXJDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxXQUFTLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUU1RSxPQUFPLFdBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQzNDO1FBRUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxXQUFTLENBQUMsT0FBTyxFQUFFO1lBQ25DLElBQUksV0FBUyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3pDLE1BQU0sTUFBTSxHQUFHLFdBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3RDLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7b0JBQ3RCLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxXQUFTLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztvQkFFNUUsT0FBTyxXQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztpQkFDNUM7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBYyxFQUFFLElBQVk7UUFDOUMsT0FBTyxHQUFHLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxNQUF3QyxFQUFFLEtBQWE7UUFDNUUsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN0RSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN6QyxDQUFDO0NBQ0YsQ0FBQTtBQWpEUSxpQkFBTyxHQUF3RDtJQUNwRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFO0lBQ2hCLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO0lBQ3pDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO0lBQ3pDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO0lBQzFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO0lBQzFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtDQUNqRCxDQUFDO0FBUlMsU0FBUztJQUhyQixJQUFJLENBQUM7UUFDSixJQUFJLEVBQUUsT0FBTztLQUNkLENBQUM7R0FDVyxTQUFTLENBa0RyQjtTQWxEWSxTQUFTO0FBd0R0QixJQUFhLGlCQUFpQixHQUE5QixNQUFhLGlCQUFpQjtDQUFHLENBQUE7QUFBcEIsaUJBQWlCO0lBSjdCLFFBQVEsQ0FBQztRQUNSLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUN6QixPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUM7S0FDckIsQ0FBQztHQUNXLGlCQUFpQixDQUFHO1NBQXBCLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0sIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGlzTnVtYmVyRmluaXRlLCBpc1Bvc2l0aXZlLCBpc0ludGVnZXIsIHRvRGVjaW1hbCB9IGZyb20gJy4uL3V0aWxzL3V0aWxzJztcclxuXHJcbmV4cG9ydCB0eXBlIEJ5dGVVbml0ID0gJ0InIHwgJ2tCJyB8ICdLQicgfCAnTUInIHwgJ0dCJyB8ICdUQic7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2J5dGVzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJ5dGVzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHN0YXRpYyBmb3JtYXRzOiB7IFtrZXk6IHN0cmluZ106IHsgbWF4OiBudW1iZXI7IHByZXY/OiBCeXRlVW5pdCB9IH0gPSB7XHJcbiAgICBCOiB7IG1heDogMTAyNCB9LFxyXG4gICAga0I6IHsgbWF4OiBNYXRoLnBvdygxMDI0LCAyKSwgcHJldjogJ0InIH0sXHJcbiAgICBLQjogeyBtYXg6IE1hdGgucG93KDEwMjQsIDIpLCBwcmV2OiAnQicgfSwgLy8gQmFja3dhcmQgY29tcGF0aWJsZVxyXG4gICAgTUI6IHsgbWF4OiBNYXRoLnBvdygxMDI0LCAzKSwgcHJldjogJ2tCJyB9LFxyXG4gICAgR0I6IHsgbWF4OiBNYXRoLnBvdygxMDI0LCA0KSwgcHJldjogJ01CJyB9LFxyXG4gICAgVEI6IHsgbWF4OiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiwgcHJldjogJ0dCJyB9LFxyXG4gIH07XHJcblxyXG4gIHRyYW5zZm9ybShpbnB1dDogYW55LCBkZWNpbWFsOiBudW1iZXIgPSAwLCBmcm9tOiBCeXRlVW5pdCA9ICdCJywgdG8/OiBCeXRlVW5pdCk6IGFueSB7XHJcbiAgICBpZiAoIShpc051bWJlckZpbml0ZShpbnB1dCkgJiYgaXNOdW1iZXJGaW5pdGUoZGVjaW1hbCkgJiYgaXNJbnRlZ2VyKGRlY2ltYWwpICYmIGlzUG9zaXRpdmUoZGVjaW1hbCkpKSB7XHJcbiAgICAgIHJldHVybiBpbnB1dDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgYnl0ZXMgPSBpbnB1dDtcclxuICAgIGxldCB1bml0ID0gZnJvbTtcclxuICAgIHdoaWxlICh1bml0ICE9PSAnQicpIHtcclxuICAgICAgYnl0ZXMgKj0gMTAyNDtcclxuICAgICAgdW5pdCA9IEJ5dGVzUGlwZS5mb3JtYXRzW3VuaXRdLnByZXYhO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0bykge1xyXG4gICAgICBjb25zdCBmb3JtYXQgPSBCeXRlc1BpcGUuZm9ybWF0c1t0b107XHJcblxyXG4gICAgICBjb25zdCByZXN1bHQgPSB0b0RlY2ltYWwoQnl0ZXNQaXBlLmNhbGN1bGF0ZVJlc3VsdChmb3JtYXQsIGJ5dGVzKSwgZGVjaW1hbCk7XHJcblxyXG4gICAgICByZXR1cm4gQnl0ZXNQaXBlLmZvcm1hdFJlc3VsdChyZXN1bHQsIHRvKTtcclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBCeXRlc1BpcGUuZm9ybWF0cykge1xyXG4gICAgICBpZiAoQnl0ZXNQaXBlLmZvcm1hdHMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IEJ5dGVzUGlwZS5mb3JtYXRzW2tleV07XHJcbiAgICAgICAgaWYgKGJ5dGVzIDwgZm9ybWF0Lm1heCkge1xyXG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gdG9EZWNpbWFsKEJ5dGVzUGlwZS5jYWxjdWxhdGVSZXN1bHQoZm9ybWF0LCBieXRlcyksIGRlY2ltYWwpO1xyXG5cclxuICAgICAgICAgIHJldHVybiBCeXRlc1BpcGUuZm9ybWF0UmVzdWx0KHJlc3VsdCwga2V5KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0YXRpYyBmb3JtYXRSZXN1bHQocmVzdWx0OiBudW1iZXIsIHVuaXQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7cmVzdWx0fSAke3VuaXR9YDtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjYWxjdWxhdGVSZXN1bHQoZm9ybWF0OiB7IG1heDogbnVtYmVyOyBwcmV2PzogQnl0ZVVuaXQgfSwgYnl0ZXM6IG51bWJlcikge1xyXG4gICAgY29uc3QgcHJldiA9IGZvcm1hdC5wcmV2ID8gQnl0ZXNQaXBlLmZvcm1hdHNbZm9ybWF0LnByZXZdIDogdW5kZWZpbmVkO1xyXG4gICAgcmV0dXJuIHByZXYgPyBieXRlcyAvIHByZXYubWF4IDogYnl0ZXM7XHJcbiAgfVxyXG59XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0J5dGVzUGlwZV0sXHJcbiAgZXhwb3J0czogW0J5dGVzUGlwZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ0J5dGVzUGlwZU1vZHVsZSB7fVxyXG4iXX0=