1import puppeteer from "@cloudflare/puppeteer";
2import type { AsyncWorkerEnv } from "./stack.ts";
3
4const TARGET_URL = "https://example.com";
5
6export default {
7 async fetch(request: Request, env: AsyncWorkerEnv): Promise<Response> {
8 const url = new URL(request.url);
9 if (url.pathname !== "/title") {
10 return new Response("ok");
11 }
12
13 const browser = await puppeteer.launch(env.BROWSER as any);
14 try {
15 const page = await browser.newPage();
16 await page.goto(TARGET_URL, { waitUntil: "networkidle0" });
17 const title = await page.title();
18 return Response.json({ mode: "async", title });
19 } finally {
20 await browser.close();
21 }
22 },
23};