@api.global/typedserver
Version:
A TypeScript-based project for easy serving of static files with support for live reloading, compression, and typed requests.
67 lines (66 loc) • 1.96 kB
TypeScript
import { LitElement } from './plugins.js';
import type { CSSResult, TemplateResult } from './plugins.js';
export interface IMetricsData {
cache: {
hits: number;
misses: number;
errors: number;
bytesServedFromCache: number;
bytesFetched: number;
averageResponseTime: number;
};
network: {
totalRequests: number;
successfulRequests: number;
failedRequests: number;
timeouts: number;
averageLatency: number;
totalBytesTransferred: number;
};
update: {
totalChecks: number;
successfulChecks: number;
failedChecks: number;
updatesFound: number;
updatesApplied: number;
lastCheckTimestamp: number;
lastUpdateTimestamp: number;
};
connection: {
connectedClients: number;
totalConnectionAttempts: number;
successfulConnections: number;
failedConnections: number;
};
speedtest: {
lastDownloadSpeedMbps: number;
lastUploadSpeedMbps: number;
lastLatencyMs: number;
lastTestTimestamp: number;
testCount: number;
isOnline: boolean;
};
startTime: number;
uptime: number;
cacheHitRate: number;
networkSuccessRate: number;
resourceCount: number;
}
/**
* Overview panel component with metrics gauges and stats
*/
export declare class SwDashOverview extends LitElement {
static styles: CSSResult[];
accessor metrics: IMetricsData | null;
accessor eventCountLastHour: number;
accessor speedtestRunning: boolean;
accessor speedtestPhase: 'idle' | 'latency' | 'download' | 'upload' | 'complete';
accessor speedtestProgress: number;
accessor speedtestElapsed: number;
private static readonly TEST_DURATION_MS;
private progressInterval;
private runSpeedtest;
private getPhaseLabel;
private formatElapsed;
render(): TemplateResult;
}