Cleanup
This commit is contained in:
51
apps/web/app/server-sitemap.xml/route.ts
Normal file
51
apps/web/app/server-sitemap.xml/route.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
import { invariant } from '@epic-web/invariant';
|
||||
import { allDocumentationPages, allPosts } from 'contentlayer/generated';
|
||||
import { getServerSideSitemap } from 'next-sitemap';
|
||||
import { join } from 'path';
|
||||
|
||||
import appConfig from '@/config/app.config';
|
||||
|
||||
const siteUrl = appConfig.url;
|
||||
|
||||
export async function GET() {
|
||||
const urls = getSiteUrls();
|
||||
const posts = getPostsSitemap();
|
||||
const docs = getDocsSitemap();
|
||||
|
||||
return getServerSideSitemap([...urls, ...posts, ...docs]);
|
||||
}
|
||||
|
||||
function getSiteUrls() {
|
||||
invariant(siteUrl, 'No NEXT_PUBLIC_SITE_URL found');
|
||||
|
||||
const urls = ['', 'faq', 'pricing'];
|
||||
|
||||
return urls.map((url) => {
|
||||
return {
|
||||
loc: join(siteUrl, url),
|
||||
lastmod: new Date().toISOString(),
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
function getPostsSitemap() {
|
||||
invariant(siteUrl, 'No NEXT_PUBLIC_SITE_URL found');
|
||||
|
||||
return allPosts.map((post) => {
|
||||
return {
|
||||
loc: join(siteUrl, post.url),
|
||||
lastmod: new Date().toISOString(),
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
function getDocsSitemap() {
|
||||
invariant(siteUrl, 'No NEXT_PUBLIC_SITE_URL found');
|
||||
|
||||
return allDocumentationPages.map((page) => {
|
||||
return {
|
||||
loc: join(siteUrl, page.url),
|
||||
lastmod: new Date().toISOString(),
|
||||
};
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user