The update simplifies accessing environment keys and role warnings in Supabase clients by moving them to new functions 'getSupabaseClientKeys' and 'getServiceRoleKey'. The redundancy in the code is reduced promoting clearer and more maintainable code. The '@epic-web/invariant' import has been removed from files as it is no longer needed.
60 lines
1.2 KiB
TypeScript
60 lines
1.2 KiB
TypeScript
import { getServerSideSitemap } from 'next-sitemap';
|
|
|
|
import { createCmsClient } from '@kit/cms';
|
|
|
|
import appConfig from '~/config/app.config';
|
|
|
|
export async function GET() {
|
|
const urls = getSiteUrls();
|
|
|
|
const items = await getAllItems();
|
|
|
|
return getServerSideSitemap([
|
|
...urls,
|
|
...items.map((path) => {
|
|
return {
|
|
loc: new URL(path, appConfig.url).href,
|
|
lastmod: new Date().toISOString(),
|
|
};
|
|
}),
|
|
]);
|
|
}
|
|
|
|
function getSiteUrls() {
|
|
const urls = [
|
|
'/',
|
|
'/faq',
|
|
'/pricing',
|
|
'/contact',
|
|
'/terms-of-service',
|
|
'/privacy-policy',
|
|
];
|
|
|
|
return urls.map((url) => {
|
|
return {
|
|
loc: new URL(url, appConfig.url).href,
|
|
lastmod: new Date().toISOString(),
|
|
};
|
|
});
|
|
}
|
|
|
|
async function getAllItems() {
|
|
const client = await createCmsClient();
|
|
|
|
const posts = client
|
|
.getContentItems({
|
|
collection: 'posts',
|
|
})
|
|
.then((response) => response.items)
|
|
.then((posts) => posts.map((post) => `/blog/${post.slug}`));
|
|
|
|
const docs = client
|
|
.getContentItems({
|
|
collection: 'documentation',
|
|
})
|
|
.then((response) => response.items)
|
|
.then((docs) => docs.map((doc) => `/docs/${doc.slug}`));
|
|
|
|
return Promise.all([posts, docs]).then((items) => items.flat());
|
|
}
|