mirror of
https://github.com/kremalicious/blog.git
synced 2024-06-28 16:48:00 +02:00
40 lines
979 B
TypeScript
40 lines
979 B
TypeScript
import type { APIRoute } from 'astro'
|
|
import { getImage } from 'astro:assets'
|
|
import config from '@config/blog.config'
|
|
import favicon from '@images/favicon.png'
|
|
|
|
const faviconPngSizes = [192, 512]
|
|
|
|
export const GET: APIRoute = async () => {
|
|
const icons = await Promise.all(
|
|
faviconPngSizes.map(async (size) => {
|
|
const image = await getImage({
|
|
src: favicon,
|
|
width: size,
|
|
height: size,
|
|
format: 'png'
|
|
})
|
|
return {
|
|
src: image.src,
|
|
type: `image/${image.options.format}`,
|
|
sizes: `${image.options.width}x${image.options.height}`
|
|
}
|
|
})
|
|
)
|
|
|
|
const manifest = {
|
|
name: config.siteTitle,
|
|
description: config.siteDescription,
|
|
start_url: '/',
|
|
display: 'standalone',
|
|
id: `${config.siteTitle}-blog`,
|
|
theme_color: '#e7eef4',
|
|
background_color: '#e7eef4',
|
|
icons
|
|
}
|
|
|
|
return new Response(JSON.stringify(manifest), {
|
|
headers: { 'content-type': 'application/json' }
|
|
})
|
|
}
|