From 1f310ef8f121a899d68a92a5e1a53e04864b21ac Mon Sep 17 00:00:00 2001 From: Juergen Kunz Date: Thu, 4 Dec 2025 21:33:02 +0000 Subject: [PATCH] refactor: Remove SW-TypedRequest controller and update related references --- ts/classes.typedserver.ts | 4 -- ts/controllers/controller.swtypedrequest.ts | 46 ------------------- ts/controllers/controller.typedrequest.ts | 13 +++++- ts/controllers/index.ts | 1 - .../classes.networkmanager.ts | 2 +- ts_web_serviceworker/classes.updatemanager.ts | 2 +- 6 files changed, 14 insertions(+), 54 deletions(-) delete mode 100644 ts/controllers/controller.swtypedrequest.ts diff --git a/ts/classes.typedserver.ts b/ts/classes.typedserver.ts index 48f0067..bace93b 100644 --- a/ts/classes.typedserver.ts +++ b/ts/classes.typedserver.ts @@ -3,7 +3,6 @@ import * as paths from './paths.js'; import * as interfaces from '../dist_ts_interfaces/index.js'; import { DevToolsController } from './controllers/controller.devtools.js'; import { TypedRequestController } from './controllers/controller.typedrequest.js'; -import { SwTypedRequestController } from './controllers/controller.swtypedrequest.js'; import { BuiltInRoutesController } from './controllers/controller.builtin.js'; export interface IServerOptions { @@ -96,7 +95,6 @@ export class TypedServer { // Decorated controllers private devToolsController: DevToolsController; private typedRequestController: TypedRequestController; - private swTypedRequestController: SwTypedRequestController; private builtInRoutesController: BuiltInRoutesController; // File server for static files @@ -222,7 +220,6 @@ export class TypedServer { } this.typedRequestController = new TypedRequestController(this.typedrouter); - this.swTypedRequestController = new SwTypedRequestController(this.typedrouter); this.builtInRoutesController = new BuiltInRoutesController({ domain: this.options.domain, @@ -242,7 +239,6 @@ export class TypedServer { plugins.smartserve.ControllerRegistry.registerInstance(this.devToolsController); } plugins.smartserve.ControllerRegistry.registerInstance(this.typedRequestController); - plugins.smartserve.ControllerRegistry.registerInstance(this.swTypedRequestController); plugins.smartserve.ControllerRegistry.registerInstance(this.builtInRoutesController); // Compile routes for fast matching diff --git a/ts/controllers/controller.swtypedrequest.ts b/ts/controllers/controller.swtypedrequest.ts deleted file mode 100644 index 5f53665..0000000 --- a/ts/controllers/controller.swtypedrequest.ts +++ /dev/null @@ -1,46 +0,0 @@ -import * as plugins from '../plugins.js'; - -/** - * SW-TypedRequest controller for service worker type-safe RPC endpoint - * This provides a separate endpoint for service worker communication - */ -@plugins.smartserve.Route('/sw-typedrequest') -export class SwTypedRequestController { - private typedRouter: plugins.typedrequest.TypedRouter; - - constructor(typedRouter: plugins.typedrequest.TypedRouter) { - this.typedRouter = typedRouter; - } - - @plugins.smartserve.Post('/') - async handleSwTypedRequest(ctx: plugins.smartserve.IRequestContext): Promise { - try { - const response = await this.typedRouter.routeAndAddResponse(ctx.body as plugins.typedrequestInterfaces.ITypedRequest); - - return new Response(plugins.smartjson.stringify(response), { - status: 200, - headers: { - 'Content-Type': 'application/json', - }, - }); - } catch (error) { - return new Response(JSON.stringify({ error: 'Invalid request' }), { - status: 400, - headers: { - 'Content-Type': 'application/json', - }, - }); - } - } - - @plugins.smartserve.Head('/') - async handleSwTypedRequestHead(): Promise { - // HEAD request for online checking from service worker - return new Response(null, { - status: 200, - headers: { - 'Content-Type': 'application/json', - }, - }); - } -} diff --git a/ts/controllers/controller.typedrequest.ts b/ts/controllers/controller.typedrequest.ts index b73cdb5..0be4819 100644 --- a/ts/controllers/controller.typedrequest.ts +++ b/ts/controllers/controller.typedrequest.ts @@ -11,7 +11,7 @@ export class TypedRequestController { this.typedRouter = typedRouter; } - @plugins.smartserve.Post('/') + @plugins.smartserve.Post('') async handleTypedRequest(ctx: plugins.smartserve.IRequestContext): Promise { try { const response = await this.typedRouter.routeAndAddResponse(ctx.body as plugins.typedrequestInterfaces.ITypedRequest); @@ -31,4 +31,15 @@ export class TypedRequestController { }); } } + + @plugins.smartserve.Head('') + async handleTypedRequestHead(): Promise { + // HEAD request for online checking from service worker + return new Response(null, { + status: 200, + headers: { + 'Content-Type': 'application/json', + }, + }); + } } diff --git a/ts/controllers/index.ts b/ts/controllers/index.ts index f2e4287..d553af1 100644 --- a/ts/controllers/index.ts +++ b/ts/controllers/index.ts @@ -1,4 +1,3 @@ export * from './controller.devtools.js'; export * from './controller.typedrequest.js'; -export * from './controller.swtypedrequest.js'; export * from './controller.builtin.js'; diff --git a/ts_web_serviceworker/classes.networkmanager.ts b/ts_web_serviceworker/classes.networkmanager.ts index 2f52b03..9493ca7 100644 --- a/ts_web_serviceworker/classes.networkmanager.ts +++ b/ts_web_serviceworker/classes.networkmanager.ts @@ -64,7 +64,7 @@ export class NetworkManager { } try { - const response = await fetch('/sw-typedrequest', { + const response = await fetch('/typedrequest', { method: 'HEAD', cache: 'no-cache' }); diff --git a/ts_web_serviceworker/classes.updatemanager.ts b/ts_web_serviceworker/classes.updatemanager.ts index 429c827..9572e45 100644 --- a/ts_web_serviceworker/classes.updatemanager.ts +++ b/ts_web_serviceworker/classes.updatemanager.ts @@ -177,7 +177,7 @@ export class UpdateManager { try { const getAppHashRequest = new plugins.typedrequest.TypedRequest< interfaces.serviceworker.IRequest_Serviceworker_Backend_VersionInfo - >('/sw-typedrequest', 'serviceworker_versionInfo'); + >('/typedrequest', 'serviceworker_versionInfo'); // Use networkManager for the request with retries and timeout const response = await getAppHashRequest.fire({});