UNPKG

@studiocms/blog

Version:

Add a blog to your StudioCMS project with ease!

31 lines (30 loc) 1.01 kB
import { SDKCore } from "studiocms:sdk"; import { createJsonResponse, Effect, pipe, withEffectAPI } from "studiocms/effect"; import { remapFilterSitemap } from "../utils/remapFilter.js"; const template = (entries) => `<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> ${entries.map((entry) => `<url><loc>${entry.location}</loc></url>`).join("")} </urlset>`; const GET = withEffectAPI( Effect.fn(function* (ctx) { const sdk = yield* SDKCore; const posts = pipe(yield* sdk.GET.pages(), remapFilterSitemap("studiocms/markdown", ctx)); const sitemap = template(posts); return new Response(sitemap, { status: 200, headers: { "Content-Type": "application/xml" } }); }), { cors: { methods: ["GET"], origin: "*" }, onError: async (error) => { console.error("Sitemap API Error:", error); return createJsonResponse({ error: "Something went wrong" }, { status: 500 }); } } ); export { GET };