import { listTasks } from "../../../service/scheduler"; import { listRegisteredTasks } from "../../../scheduler/registry"; export default defineWrappedResponseHandler(async (event) => { const query = getQuery(event); const page = query.page ? Number(query.page) : 1; const pageSize = query.pageSize ? Number(query.pageSize) : 20; const cacheKey = `scheduler:tasks:${page}:${pageSize}:${query.type ?? 'all'}:${query.enabled ?? 'all'}` const cached = await event.context.cache.get<{ list: unknown[], total: number, page: number, pageSize: number, registeredFunctions: unknown[] }>(cacheKey) if (cached) return R.success(cached) const result = await listTasks({ page, pageSize, type: query.type as string | undefined, enabled: query.enabled !== undefined ? Number(query.enabled) : undefined, }); const fullResult = { ...result, registeredFunctions: listRegisteredTasks(), } await event.context.cache.set(cacheKey, fullResult, 120) return R.success(fullResult); });