Move to TanStack Start from Next.js (#184)

This commit is contained in:
Aslam
2024-10-07 16:44:17 +07:00
committed by GitHub
parent 3a89a1c07f
commit 950ebc3dad
514 changed files with 20021 additions and 15508 deletions

22
web/app/lib/utils/slug.ts Normal file
View File

@@ -0,0 +1,22 @@
import slugify from "slugify"
export function generateUniqueSlug(
title: string,
maxLength: number = 60,
): string {
const baseSlug = slugify(title, {
lower: true,
strict: true,
})
// Web Crypto API
const randomValues = new Uint8Array(4)
crypto.getRandomValues(randomValues)
const randomSuffix = Array.from(randomValues)
.map((byte) => byte.toString(16).padStart(2, "0"))
.join("")
const truncatedSlug = baseSlug.slice(0, Math.min(maxLength, 75) - 9)
return `${truncatedSlug}-${randomSuffix}`
}