UNPKG

@api.global/typedserver

Version:

A TypeScript-based project for easy serving of static files with support for live reloading, compression, and typed requests.

94 lines (93 loc) 3.33 kB
import { LitElement } from './plugins.js'; import type { CSSResult, TemplateResult } from './plugins.js'; import type { IMetricsData } from './sw-dash-overview.js'; import type { ICachedResource } from './sw-dash-urls.js'; import type { IDomainStats } from './sw-dash-domains.js'; import type { IContentTypeStats } from './sw-dash-types.js'; import type { serviceworker } from '../dist_ts_interfaces/index.js'; import './sw-dash-overview.js'; import './sw-dash-urls.js'; import './sw-dash-domains.js'; import './sw-dash-types.js'; import './sw-dash-events.js'; import './sw-dash-requests.js'; import './sw-dash-table.js'; type ViewType = 'overview' | 'urls' | 'domains' | 'types' | 'events' | 'requests'; interface IResourceData { resources: ICachedResource[]; domains: IDomainStats[]; contentTypes: IContentTypeStats[]; resourceCount: number; } /** * Main SW Dashboard application shell * * Architecture: * - ONE initial HTTP seed request to /sw-dash/metrics (provides ALL data) * - HTTP heartbeat every 30s for SW health check * - Everything else via DeesComms (push from SW, requests to SW) */ export declare class SwDashApp extends LitElement { static styles: CSSResult[]; accessor currentView: ViewType; accessor metrics: IMetricsData | null; accessor lastRefresh: string; accessor isConnected: boolean; accessor resourceData: IResourceData; accessor events: serviceworker.IEventLogEntry[]; accessor eventTotalCount: number; accessor eventCountLastHour: number; accessor requestLogs: serviceworker.ITypedRequestLogEntry[]; accessor requestTotalCount: number; accessor requestStats: serviceworker.ITypedRequestStats | null; accessor requestMethods: string[]; private comms; private heartbeatInterval; private readonly HEARTBEAT_INTERVAL_MS; connectedCallback(): void; disconnectedCallback(): void; /** * Initial HTTP request to seed ALL data and wake up service worker * This is the ONE HTTP request that provides everything: * - Core metrics * - Resources, domains, content types * - Events (initial 50) * - Request logs (initial 50), stats, methods */ private loadInitialData; /** * Setup DeesComms handlers for receiving push updates from SW * All real-time updates come through here */ private setupPushListeners; /** * Heartbeat to check SW health periodically (HTTP) * This is the ONLY periodic HTTP request */ private startHeartbeat; /** * Handle "load more events" request from sw-dash-events component * Uses DeesComms to request older events from SW */ private handleLoadMoreEvents; /** * Handle "clear events" request from sw-dash-events component * Uses DeesComms to clear event log in SW */ private handleClearEvents; /** * Handle "load more requests" from sw-dash-requests component * Uses DeesComms to request older request logs from SW */ private handleLoadMoreRequests; /** * Handle "clear requests" from sw-dash-requests component * Uses DeesComms to clear request logs in SW */ private handleClearRequests; private setView; private handleSpeedtestComplete; private formatUptime; render(): TemplateResult; } export {};