1 import type { Request, Response } from "express";
2 import { LemmyHttp } from "lemmy-js-client";
3 import { getHttpBaseInternal } from "../../shared/env";
4 import { wrapClient } from "../../shared/services/HttpService";
5 import generateManifestJson from "../utils/generate-manifest-json";
6 import { setForwardedHeaders } from "../utils/set-forwarded-headers";
8 let manifest: Awaited<ReturnType<typeof generateManifestJson>> | undefined =
11 export default async (req: Request, res: Response) => {
13 const headers = setForwardedHeaders(req.headers);
14 const client = wrapClient(
15 new LemmyHttp(getHttpBaseInternal(), { fetchFunction: fetch, headers })
17 const site = await client.getSite({});
19 if (site.state === "success") {
20 manifest = await generateManifestJson(site.data);
27 res.setHeader("content-type", "application/manifest+json");