mirror of https://github.com/kremalicious/blog.git
38 lines
920 B
TypeScript
38 lines
920 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))
|
|
}
|