1
mirror of https://github.com/jakejarvis/jarv.is.git synced 2025-10-23 08:04:28 -04:00

dynamic site.webmanifest

This commit is contained in:
2022-01-03 11:42:03 -05:00
parent 36e3cfa18e
commit 55d9207753
9 changed files with 72 additions and 60 deletions

35
pages/site.webmanifest.ts Normal file
View File

@@ -0,0 +1,35 @@
import * as config from "../lib/config";
import type { GetServerSideProps } from "next";
const SiteManifest = () => null;
export const getServerSideProps: GetServerSideProps = async (context) => {
const manifest = {
name: config.siteName,
short_name: config.siteDomain,
description: config.longDescription,
lang: config.siteLocale,
icons: [
{ src: "/static/favicons/android-chrome-512x512.png", sizes: "512x512", type: "image/png", purpose: "any" },
{ src: "/static/favicons/android-chrome-192x192.png", sizes: "192x192", type: "image/png", purpose: "any" },
{ src: "/static/favicons/maskable-512x512.png", sizes: "512x512", type: "image/png", purpose: "maskable" },
{ src: "/static/favicons/maskable-192x192.png", sizes: "192x192", type: "image/png", purpose: "maskable" },
],
display: "browser",
start_url: "/",
};
const { res } = context;
// https://developer.mozilla.org/en-US/docs/Web/Manifest#deploying_a_manifest
res.setHeader("content-type", "application/manifest+json");
// cache for one day
res.setHeader("cache-control", "s-maxage=86400, stale-while-revalidate");
res.write(JSON.stringify(manifest));
res.end();
return {
props: {},
};
};
export default SiteManifest;