Files
blogflare/src/routes/admin/+page.server.ts
T

41 lines
1.3 KiB
TypeScript

import type { PageServerLoad } from './$types';
export const load: PageServerLoad = async ({ platform }) => {
const db = platform?.env?.DB;
let postCount = 0;
let totalWords = 0;
let tagCount = 0;
let categoryCount = 0;
let seriesCount = 0;
let pageCount = 0;
if (db) {
try {
const postResult = await db.prepare('SELECT COUNT(*) as count, SUM(LENGTH(content)) as totalWords FROM posts').first();
const tagResult = await db.prepare('SELECT COUNT(*) as count FROM tags').first();
const categoryResult = await db.prepare('SELECT COUNT(*) as count FROM categories').first();
const seriesResult = await db.prepare('SELECT COUNT(*) as count FROM series').first();
const pageResult = await db.prepare('SELECT COUNT(*) as count FROM pages').first();
postCount = (postResult?.count as number) || 0;
totalWords = (postResult?.totalWords as number) || 0;
tagCount = (tagResult?.count as number) || 0;
categoryCount = (categoryResult?.count as number) || 0;
seriesCount = (seriesResult?.count as number) || 0;
pageCount = (pageResult?.count as number) || 0;
} catch (err) {
console.error('Error fetching admin dashboard stats:', err);
}
}
return {
postCount,
totalWords,
tagCount,
categoryCount,
seriesCount,
pageCount
};
};