Consolidate two overlapping cache systems (broken TanStack persister + per-query Redis hash + pub/sub) into one: TanStack Query as single source of truth with Redis as its persistence layer via createAsyncStoragePersister. - Replace QueryClientProvider with PersistQueryClientProvider backed by Redis - Set global query defaults (staleTime: 0, refetchInterval: 30s, gcTime: 24h) - Remove all per-widget staleTime/refetchInterval/retry/refetchOnWindowFocus overrides - Replace cached request handlers with simplified fetch-only versions - Remove all tRPC subscription procedures and useSubscription calls in favor of polling - Delete 20 cron jobs that only pre-warmed server-side cache - Simplify Redis from per-query hash to single blob per user+board
20 lines
664 B
TypeScript
20 lines
664 B
TypeScript
import { z } from "zod/v4";
|
|
|
|
import { minecraftServerStatusRequestHandler } from "@homarr/request-handler/minecraft-server-status";
|
|
|
|
import { createTRPCRouter, publicProcedure } from "../../trpc";
|
|
|
|
const serverStatusInputSchema = z.object({
|
|
domain: z.string().nonempty(),
|
|
isBedrockServer: z.boolean(),
|
|
});
|
|
export const minecraftRouter = createTRPCRouter({
|
|
getServerStatus: publicProcedure.input(serverStatusInputSchema).query(async ({ input }) => {
|
|
const innerHandler = minecraftServerStatusRequestHandler.handler({
|
|
isBedrockServer: input.isBedrockServer,
|
|
domain: input.domain,
|
|
});
|
|
return await innerHandler.getDataAsync();
|
|
}),
|
|
});
|