UNPKG

ng-speed-test

Version:

Angular library for testing internet connection speed

44 lines 5.09 kB
export class SpeedTestResultsModel { constructor(fileSize) { this.fileSize = fileSize; this.duration = 0; this.hasEnded = false; this.startTime = null; this.endTime = null; this.speedBps = 0; } get speedKbps() { return this.speedBps / 1024; } get speedMbps() { return this.speedKbps / 1024; } _update() { if (this.endTime !== null && this.startTime !== null) { const milliseconds = this.endTime - this.startTime; if (milliseconds !== 0) { this.duration = milliseconds / 1000; } const bitsLoaded = this.fileSize * 8; this.speedBps = bitsLoaded / this.duration; } } end() { if (!this.hasEnded) { this.hasEnded = true; this.endTime = Date.now(); this._update(); } } error() { if (!this.hasEnded) { this.hasEnded = true; this.endTime = null; this._update(); } } start() { this.startTime = Date.now(); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWQtdGVzdC1yZXN1bHRzLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21vZGVscy9zcGVlZC10ZXN0LXJlc3VsdHMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxPQUFPLHFCQUFxQjtJQU85QixZQUFvQixRQUFnQjtRQUFoQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBTjdCLGFBQVEsR0FBVyxDQUFDLENBQUM7UUFDckIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixjQUFTLEdBQWtCLElBQUksQ0FBQztRQUNoQyxZQUFPLEdBQWtCLElBQUksQ0FBQztRQUM5QixhQUFRLEdBQVcsQ0FBQyxDQUFDO0lBRVcsQ0FBQztJQUV4QyxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ2pDLENBQUM7SUFFTyxPQUFPO1FBQ1gsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ25ELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNuRCxJQUFJLFlBQVksS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3hDLENBQUM7WUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9DLENBQUM7SUFDTCxDQUFDO0lBRUQsR0FBRztRQUNDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25CLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25CLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSztRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU3BlZWRUZXN0UmVzdWx0cyB7XHJcbiAgICBkdXJhdGlvbjogbnVtYmVyO1xyXG4gICAgaGFzRW5kZWQ6IGJvb2xlYW47XHJcbiAgICBzdGFydFRpbWU6IG51bWJlciB8IG51bGw7XHJcbiAgICBlbmRUaW1lOiBudW1iZXIgfCBudWxsO1xyXG4gICAgc3BlZWRCcHM6IG51bWJlcjtcclxuICAgIHNwZWVkS2JwczogbnVtYmVyO1xyXG4gICAgc3BlZWRNYnBzOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTcGVlZFRlc3RSZXN1bHRzTW9kZWwgaW1wbGVtZW50cyBTcGVlZFRlc3RSZXN1bHRzIHtcclxuICAgIHB1YmxpYyBkdXJhdGlvbjogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBoYXNFbmRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHN0YXJ0VGltZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgICBwdWJsaWMgZW5kVGltZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgICBwdWJsaWMgc3BlZWRCcHM6IG51bWJlciA9IDA7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBmaWxlU2l6ZTogbnVtYmVyKSB7fVxyXG5cclxuICAgIGdldCBzcGVlZEticHMoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zcGVlZEJwcyAvIDEwMjQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHNwZWVkTWJwcygpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNwZWVkS2JwcyAvIDEwMjQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfdXBkYXRlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmVuZFRpbWUgIT09IG51bGwgJiYgdGhpcy5zdGFydFRpbWUgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgY29uc3QgbWlsbGlzZWNvbmRzID0gdGhpcy5lbmRUaW1lIC0gdGhpcy5zdGFydFRpbWU7XHJcbiAgICAgICAgICAgIGlmIChtaWxsaXNlY29uZHMgIT09IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZHVyYXRpb24gPSBtaWxsaXNlY29uZHMgLyAxMDAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGJpdHNMb2FkZWQgPSB0aGlzLmZpbGVTaXplICogODtcclxuICAgICAgICAgICAgdGhpcy5zcGVlZEJwcyA9IGJpdHNMb2FkZWQgLyB0aGlzLmR1cmF0aW9uO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBlbmQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmhhc0VuZGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFzRW5kZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmVuZFRpbWUgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICB0aGlzLl91cGRhdGUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZXJyb3IoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmhhc0VuZGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFzRW5kZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmVuZFRpbWUgPSBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLl91cGRhdGUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWUgPSBEYXRlLm5vdygpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==