ng-speed-test
Version:
Angular library for testing internet connection speed
57 lines (56 loc) • 1.86 kB
TypeScript
import { Observable } from 'rxjs';
import { SpeedTestSettingsModel } from '../models/speed-test-settings.model';
import * as i0 from "@angular/core";
export interface SpeedTestResult {
bps: number;
kbps: number;
mbps: number;
duration: number;
}
export declare class SpeedTestService {
private readonly DEFAULT_TIMEOUT;
private readonly OFFLINE_CHECK_TIMEOUT;
constructor();
private applyCacheBuster;
/**
* Quick connectivity check before running speed test
*/
private checkConnectivity;
private downloadTest;
private validateSettings;
/**
* Get internet speed in bits per second (bps)
* Fails fast if no internet connection is available
*/
getBps(customSettings?: Partial<SpeedTestSettingsModel>): Observable<number>;
/**
* Properly merge custom settings with defaults
*/
private mergeSettings;
/**
* Get internet speed in kilobits per second (Kbps)
*/
getKbps(settings?: Partial<SpeedTestSettingsModel>): Observable<number>;
/**
* Get internet speed in megabits per second (Mbps)
*/
getMbps(settings?: Partial<SpeedTestSettingsModel>): Observable<number>;
/**
* Get comprehensive speed test results with fast failure for offline scenarios
*/
getSpeedTestResult(settings?: Partial<SpeedTestSettingsModel>): Observable<SpeedTestResult>;
/**
* Check if the browser is online with enhanced detection
*/
isOnline(): Observable<boolean>;
/**
* Monitor network connection status with enhanced detection
*/
getNetworkStatus(): Observable<{
isOnline: boolean;
effectiveType?: string;
downlink?: number;
}>;
static ɵfac: i0.ɵɵFactoryDeclaration<SpeedTestService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<SpeedTestService>;
}