import { VercelRequest, VercelResponse } from "@vercel/node";

// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
export default (req: VercelRequest, res: VercelResponse) => {
  try {
    // some rudimentary error handling
    if (req.method !== "GET") {
      throw new Error(`Method ${req.method} not allowed.`);
    }

    // let Vercel edge and browser cache results for 5 mins
    res.setHeader("Cache-Control", "public, max-age=300, s-maxage=300, stale-while-revalidate");

    // permissive access control headers
    res.setHeader("Access-Control-Allow-Methods", "GET");
    res.setHeader("Access-Control-Allow-Origin", "*");

    // return in JSON format
    res.status(200).json({ status: "OK" });
  } catch (error) {
    console.error(error);

    // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
    res.status(400).json({ message: error.message });
  }
};