41 lines
1.3 KiB
TypeScript
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
|
|
};
|
|
};
|