import { toTitleCase } from './toTitleCase'; export const createSlug = ( prefix: string, name: string, id: string | number, withHost: boolean = false ): string => { name ||= ''; // pastikan id jadi string const safeId = (id ?? '').toString(); let slug = name ?.trim() .replace(new RegExp(/[^A-Za-z0-9]/, 'g'), '-') // non alphanumeric -> "-" .toLowerCase() + '-' + safeId; const splitSlug = slug.split('-'); const filterSlugFromEmptyChar = splitSlug.filter((x) => x !== ''); slug = prefix + filterSlugFromEmptyChar.join('-'); if (withHost) { const host = (process.env.NEXT_PUBLIC_SELF_HOST || '').replace(/\/+$/, ''); slug = host + slug; } return slug; }; export const getIdFromSlug = (slug: string) => { let id = slug.split('-'); return id[id.length - 1]; }; export const getNameFromSlug = (slug: string) => { let name = slug.split('-'); name.pop(); return toTitleCase(name.join(' ')); };