diff options
Diffstat (limited to 'src/server/content/webmanifest.ts')
-rw-r--r-- | src/server/content/webmanifest.ts | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/server/content/webmanifest.ts b/src/server/content/webmanifest.ts new file mode 100644 index 0000000..6e4031e --- /dev/null +++ b/src/server/content/webmanifest.ts @@ -0,0 +1,26 @@ +import metadata from "../metadata.js" +import { contentType } from "mime-types" +import setStingRoute from "../utils/setStingRoute.js" + +setStingRoute("/app.webmanifest", "app.webmanifest", async () => ({ + $schema: "https://json.schemastore.org/web-manifest-combined.json", + name: metadata.title, + lang: metadata.language, + start_url: "/", + id: "/", scope: "/", + display: "minimal-ui", + background_color: metadata.theme, + theme_color: metadata.theme, + description: metadata.description, + icons: ["png", "svg"].flatMap(format => format == "svg" ? { + src: "/favicon.svg", + type: contentType(format), + sizes: "any", + purpose: "any maskable" + } : [192, 512, 1024].map(size => ({ + src: `/favicon.svg?format=${format}&width=${size}`, + type: contentType(format), + sizes: `${size}x${size}`, + purpose: "maskable" + }))) +})) |