Files
archicratie-edition/src/pages/api/glossaire.json.ts
Archicratia bb9f55a3b5
All checks were successful
SMOKE / smoke (push) Successful in 6s
CI / build-and-anchors (push) Successful in 44s
CI / build-and-anchors (pull_request) Successful in 41s
feat(glossaire): extend taxonomy and align Astro 6 content config
2026-03-12 12:04:46 +01:00

28 lines
733 B
TypeScript

import type { APIRoute } from "astro";
import { getCollection } from "astro:content";
export const prerender = true;
const slugOf = (entry: { id: string }) => String(entry.id).replace(/\.(md|mdx)$/i, "");
export const GET: APIRoute = async () => {
const entries = await getCollection("glossaire");
const index = entries.map((e) => {
const slug = slugOf(e);
return {
slug,
term: e.data.term,
aliases: e.data.aliases ?? [],
definitionShort: e.data.definitionShort,
href: `/glossaire/${slug}/`,
};
});
return new Response(JSON.stringify(index), {
headers: {
"Content-Type": "application/json; charset=utf-8",
"Cache-Control": "public, max-age=3600",
},
});
};