import { Curious } from "@trycurious/node";
export default {
async fetch(request: Request, env: { CURIOUS_SECRET_KEY: string }, ctx: ExecutionContext) {
const curious = new Curious({ apiKey: env.CURIOUS_SECRET_KEY });
const userId = userIdFrom(request);
const banner = await curious.decide({
element: "upgrade_banner",
userId,
fallback: { headline: "Upgrade today", cta: "See plans" },
context: { country: request.cf?.country },
});
curious.track({ userId, name: "upgrade_banner_viewed" });
ctx.waitUntil(curious.flush());
return Response.json(banner.content);
},
};