14 lines
644 B
TypeScript
14 lines
644 B
TypeScript
import type { SitemapUrlInput } from '#sitemap/types'
|
|
import { and, eq } from 'drizzle-orm';
|
|
import { explorerContentTable } from '~/db/schema';
|
|
import useDatabase from '~/composables/useDatabase';
|
|
|
|
export default defineSitemapEventHandler(() => {
|
|
const db = useDatabase();
|
|
const pages = db.select({ path: explorerContentTable.path, lastMod: explorerContentTable.timestamp }).from(explorerContentTable).where(and(eq(explorerContentTable.private, false), eq(explorerContentTable.navigable, true))).all();
|
|
|
|
return pages.map(e => ({
|
|
loc: `/explore/${e.path}`,
|
|
lastmod: e.lastMod,
|
|
})) satisfies SitemapUrlInput[];
|
|
}) |