Files
twitter-lite/src/features/research/server-functions.ts
T

23 lines
924 B
TypeScript

import { createServerFn } from "@tanstack/react-start";
import { z } from "zod";
import { startResearchInput } from "./model";
export const loadResearchStatus = createServerFn({ method: "GET" })
.validator(z.object({ id: z.uuid().optional() }).strict())
.handler(async ({ data }) => {
const { researchService } = await import("./runner.server");
return researchService().status(data.id);
});
export const startResearch = createServerFn({ method: "POST" })
.validator(startResearchInput)
.handler(async ({ data }) => {
const { researchService } = await import("./runner.server");
return researchService().start(data);
});
export const cancelResearch = createServerFn({ method: "POST" })
.validator(z.object({ id: z.string().uuid() }).strict())
.handler(async ({ data }) => {
const { researchService } = await import("./runner.server");
return researchService().cancel(data.id);
});