import { db } from '$lib/server/db'; import { blogArticles } from '$lib/server/db/schema'; import { eq } from 'drizzle-orm'; export function slugify(title: string): string { return ( title .toLowerCase() .trim() .replace(/[^a-z0-9]+/g, '-') .replace(/^-+|-+$/g, '') || 'article' ); } export async function uniqueSlug(title: string): Promise { const base = slugify(title); let slug = base; let suffix = 2; while ( (await db.select({ id: blogArticles.id }).from(blogArticles).where(eq(blogArticles.slug, slug))) .length > 0 ) { slug = `${base}-${suffix}`; suffix += 1; } return slug; }