feat(web_serviceworker): Enhance service worker subsystem: add metrics, event bus, error handling, config and caching/update improvements; make client connection & polling robust

This commit is contained in:
2025-12-04 08:52:49 +00:00
parent 9ac91fd166
commit 54bb12d6ff
13 changed files with 1994 additions and 104 deletions

View File

@@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@api.global/typedserver',
version: '6.0.1',
version: '6.1.0',
description: 'A TypeScript-based project for easy serving of static files with support for live reloading, compression, and typed requests.'
}

View File

@@ -33,8 +33,8 @@ export const addServiceWorkerRoute = (
// Set the version info
swVersionInfo = swDataFunc();
// Service worker bundle handler
typedserverInstance.addRoute('/serviceworker/*splat', 'GET', async (request: Request) => {
// Handler function for serviceworker bundle requests
const handleServiceWorkerRequest = async (request: Request): Promise<Response> => {
await loadServiceWorkerBundle();
const url = new URL(request.url);
const path = url.pathname;
@@ -58,7 +58,14 @@ export const addServiceWorkerRoute = (
}
return null;
});
};
// Service worker bundle handler - nested path
typedserverInstance.addRoute('/serviceworker/*splat', 'GET', handleServiceWorkerRequest);
// Service worker bundle handler - root level (for /serviceworker.bundle.js)
typedserverInstance.addRoute('/serviceworker.bundle.js', 'GET', handleServiceWorkerRequest);
typedserverInstance.addRoute('/serviceworker.bundle.js.map', 'GET', handleServiceWorkerRequest);
// Typed request handler for service worker
typedserverInstance.addRoute('/sw-typedrequest', 'POST', async (request: Request) => {